Built motion from commit (unavailable).|2.5.25
[motion2.git] / server / api / squareProject / squareProject.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xca16=['include','findAll','catch','show','params','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','SquareProjects','UserProfileSection','find','userProfileId','autoAssociation','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','html-pdf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','redis','defaults','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','count','offset','limit','set','save','then','get','UserProfileResource','error','stack','name','send','SquareProject','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','type','VIRTUAL','options'];(function(_0x2845b3,_0x36a350){var _0x2ee22f=function(_0xaa49af){while(--_0xaa49af){_0x2845b3['push'](_0x2845b3['shift']());}};_0x2ee22f(++_0x36a350);}(_0xca16,0xd2));var _0x6ca1=function(_0x17f933,_0x1f718b){_0x17f933=_0x17f933-0x0;var _0x4067d6=_0xca16[_0x17f933];return _0x4067d6;};'use strict';var pdf=require(_0x6ca1('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6ca1('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6ca1('0x2'));var moment=require(_0x6ca1('0x3'));var BPromise=require(_0x6ca1('0x4'));var Mustache=require(_0x6ca1('0x5'));var util=require(_0x6ca1('0x6'));var path=require(_0x6ca1('0x7'));var sox=require(_0x6ca1('0x8'));var csv=require(_0x6ca1('0x9'));var ejs=require(_0x6ca1('0xa'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x6ca1('0xb'));var jsforce=require(_0x6ca1('0xc'));var deskjs=require(_0x6ca1('0xd'));var toCsv=require(_0x6ca1('0x9'));var querystring=require(_0x6ca1('0xe'));var Papa=require(_0x6ca1('0xf'));var Redis=require(_0x6ca1('0x10'));var authService=require(_0x6ca1('0x11'));var qs=require(_0x6ca1('0x12'));var as=require(_0x6ca1('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6ca1('0x14'))(_0x6ca1('0x15'));var utils=require(_0x6ca1('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x6ca1('0x17'));var db=require('../../mysqldb')['db'];config[_0x6ca1('0x18')]=_[_0x6ca1('0x19')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x6ca1('0x1a'))(new Redis(config[_0x6ca1('0x18')]));require(_0x6ca1('0x1b'))[_0x6ca1('0x1c')](socket);function respondWithStatusCode(_0x18780c,_0x1ad9be){_0x1ad9be=_0x1ad9be||0xcc;return function(_0x51ae64){if(_0x51ae64){return _0x18780c[_0x6ca1('0x1d')](_0x1ad9be);}return _0x18780c[_0x6ca1('0x1e')](_0x1ad9be)[_0x6ca1('0x1f')]();};}function respondWithResult(_0x39068e,_0x4941f9){_0x4941f9=_0x4941f9||0xc8;return function(_0x1a742c){if(_0x1a742c){return _0x39068e[_0x6ca1('0x1e')](_0x4941f9)[_0x6ca1('0x20')](_0x1a742c);}};}function respondWithFilteredResult(_0x314761,_0x483068){return function(_0x110738){if(_0x110738){var _0x2d7664=_0x110738[_0x6ca1('0x21')],_0x3035d0=_0x483068[_0x6ca1('0x22')],_0xd8925e=_0x483068[_0x6ca1('0x22')]+_0x483068[_0x6ca1('0x23')],_0x5735e5;if(_0xd8925e>=_0x2d7664){_0xd8925e=_0x2d7664;_0x5735e5=0xc8;}else{_0x5735e5=0xce;}_0x314761[_0x6ca1('0x1e')](_0x5735e5);return _0x314761[_0x6ca1('0x24')]('Content-Range',_0x3035d0+'-'+_0xd8925e+'/'+_0x2d7664)['json'](_0x110738);}return null;};}function patchUpdates(_0x2d8602){return function(_0x4c56b8){try{jsonpatch['apply'](_0x4c56b8,_0x2d8602,!![]);}catch(_0x43a26b){return BPromise['reject'](_0x43a26b);}return _0x4c56b8[_0x6ca1('0x25')]();};}function saveUpdates(_0x303d15,_0x3318d5){return function(_0x2b4dfe){if(_0x2b4dfe){return _0x2b4dfe['update'](_0x303d15)[_0x6ca1('0x26')](function(_0x5e8ae0){return _0x5e8ae0;});}return null;};}function removeEntity(_0x335fdc,_0x5057c8){return function(_0x5a0c4c){if(_0x5a0c4c){return _0x5a0c4c['destroy']()[_0x6ca1('0x26')](function(){var _0x2a4844=_0x5a0c4c[_0x6ca1('0x27')]({'plain':!![]});var _0x36a9ac='SquareProjects';return db[_0x6ca1('0x28')]['destroy']({'where':{'type':_0x36a9ac,'resourceId':_0x2a4844['id']}})[_0x6ca1('0x26')](function(){return _0x5a0c4c;});})['then'](function(){_0x335fdc[_0x6ca1('0x1e')](0xcc)[_0x6ca1('0x1f')]();});}};}function handleEntityNotFound(_0x428dfb,_0x220f73){return function(_0x18e8bc){if(!_0x18e8bc){_0x428dfb[_0x6ca1('0x1d')](0x194);}return _0x18e8bc;};}function handleError(_0xec82ac,_0x210b54){_0x210b54=_0x210b54||0x1f4;return function(_0xfc581f){logger[_0x6ca1('0x29')](_0xfc581f[_0x6ca1('0x2a')]);if(_0xfc581f[_0x6ca1('0x2b')]){delete _0xfc581f[_0x6ca1('0x2b')];}_0xec82ac[_0x6ca1('0x1e')](_0x210b54)[_0x6ca1('0x2c')](_0xfc581f);};}exports['index']=function(_0x174d3c,_0x5a6d2d){var _0x41cc66={},_0xa4513d={},_0x293ec6={'count':0x0,'rows':[]};var _0x4394c4=_['map'](db[_0x6ca1('0x2d')][_0x6ca1('0x2e')],function(_0x2ff300){return{'name':_0x2ff300[_0x6ca1('0x2f')],'type':_0x2ff300['type'][_0x6ca1('0x30')]};});_0xa4513d[_0x6ca1('0x31')]=_['map'](_0x4394c4,'name');_0xa4513d['query']=_[_0x6ca1('0x32')](_0x174d3c[_0x6ca1('0x33')]);_0xa4513d[_0x6ca1('0x34')]=_[_0x6ca1('0x35')](_0xa4513d[_0x6ca1('0x31')],_0xa4513d[_0x6ca1('0x33')]);_0x41cc66[_0x6ca1('0x36')]=_[_0x6ca1('0x35')](_0xa4513d['model'],qs[_0x6ca1('0x37')](_0x174d3c[_0x6ca1('0x33')][_0x6ca1('0x37')]));_0x41cc66[_0x6ca1('0x36')]=_0x41cc66[_0x6ca1('0x36')][_0x6ca1('0x38')]?_0x41cc66[_0x6ca1('0x36')]:_0xa4513d[_0x6ca1('0x31')];if(!_0x174d3c['query'][_0x6ca1('0x39')](_0x6ca1('0x3a'))){_0x41cc66[_0x6ca1('0x23')]=qs['limit'](_0x174d3c[_0x6ca1('0x33')][_0x6ca1('0x23')]);_0x41cc66[_0x6ca1('0x22')]=qs['offset'](_0x174d3c[_0x6ca1('0x33')][_0x6ca1('0x22')]);}_0x41cc66[_0x6ca1('0x3b')]=qs['sort'](_0x174d3c[_0x6ca1('0x33')][_0x6ca1('0x3c')]);_0x41cc66[_0x6ca1('0x3d')]=qs[_0x6ca1('0x34')](_[_0x6ca1('0x3e')](_0x174d3c['query'],_0xa4513d[_0x6ca1('0x34')]),_0x4394c4);if(_0x174d3c[_0x6ca1('0x33')][_0x6ca1('0x3f')]){_0x41cc66[_0x6ca1('0x3d')]=_[_0x6ca1('0x40')](_0x41cc66[_0x6ca1('0x3d')],{'$or':_[_0x6ca1('0x41')](_0x4394c4,function(_0x18a597){if(_0x18a597[_0x6ca1('0x42')]!==_0x6ca1('0x43')){var _0x473904={};_0x473904[_0x18a597['name']]={'$like':'%'+_0x174d3c[_0x6ca1('0x33')][_0x6ca1('0x3f')]+'%'};return _0x473904;}})});}_0x41cc66=_[_0x6ca1('0x40')]({},_0x41cc66,_0x174d3c[_0x6ca1('0x44')]);var _0x1675d7={'where':_0x41cc66[_0x6ca1('0x3d')]};return db[_0x6ca1('0x2d')][_0x6ca1('0x21')](_0x1675d7)[_0x6ca1('0x26')](function(_0x368ac4){_0x293ec6[_0x6ca1('0x21')]=_0x368ac4;if(_0x174d3c[_0x6ca1('0x33')]['includeAll']){_0x41cc66[_0x6ca1('0x45')]=[{'all':!![]}];}return db[_0x6ca1('0x2d')][_0x6ca1('0x46')](_0x41cc66);})[_0x6ca1('0x26')](function(_0x5660dd){_0x293ec6['rows']=_0x5660dd;return _0x293ec6;})['then'](respondWithFilteredResult(_0x5a6d2d,_0x41cc66))[_0x6ca1('0x47')](handleError(_0x5a6d2d,null));};exports[_0x6ca1('0x48')]=function(_0x1ef9f5,_0x3b9372){var _0x3c09a9={'raw':![],'where':{'id':_0x1ef9f5[_0x6ca1('0x49')]['id']}},_0x31783e={};_0x31783e[_0x6ca1('0x31')]=_[_0x6ca1('0x32')](db[_0x6ca1('0x2d')]['rawAttributes']);_0x31783e[_0x6ca1('0x33')]=_[_0x6ca1('0x32')](_0x1ef9f5[_0x6ca1('0x33')]);_0x31783e[_0x6ca1('0x34')]=_[_0x6ca1('0x35')](_0x31783e[_0x6ca1('0x31')],_0x31783e[_0x6ca1('0x33')]);_0x3c09a9[_0x6ca1('0x36')]=_[_0x6ca1('0x35')](_0x31783e[_0x6ca1('0x31')],qs[_0x6ca1('0x37')](_0x1ef9f5[_0x6ca1('0x33')][_0x6ca1('0x37')]));_0x3c09a9[_0x6ca1('0x36')]=_0x3c09a9['attributes'][_0x6ca1('0x38')]?_0x3c09a9[_0x6ca1('0x36')]:_0x31783e['model'];if(_0x1ef9f5['query'][_0x6ca1('0x4a')]){_0x3c09a9[_0x6ca1('0x45')]=[{'all':!![]}];}_0x3c09a9=_[_0x6ca1('0x40')]({},_0x3c09a9,_0x1ef9f5[_0x6ca1('0x44')]);return db[_0x6ca1('0x2d')]['find'](_0x3c09a9)[_0x6ca1('0x26')](handleEntityNotFound(_0x3b9372,null))['then'](respondWithResult(_0x3b9372,null))[_0x6ca1('0x47')](handleError(_0x3b9372,null));};exports[_0x6ca1('0x4b')]=function(_0x122e94,_0x1fdc72){return db[_0x6ca1('0x2d')][_0x6ca1('0x4b')](_0x122e94[_0x6ca1('0x4c')],{})[_0x6ca1('0x26')](function(_0x3169f4){var _0x302e6a=_0x122e94[_0x6ca1('0x4d')]['get']({'plain':!![]});if(!_0x302e6a)throw new Error(_0x6ca1('0x4e'));if(_0x302e6a['role']===_0x6ca1('0x4d')){var _0x1d26c0=_0x3169f4[_0x6ca1('0x27')]({'plain':!![]});var _0x1c8c9b=_0x6ca1('0x4f');return db[_0x6ca1('0x50')][_0x6ca1('0x51')]({'where':{'name':_0x1c8c9b,'userProfileId':_0x302e6a[_0x6ca1('0x52')]},'raw':!![]})[_0x6ca1('0x26')](function(_0x4e4214){if(_0x4e4214&&_0x4e4214[_0x6ca1('0x53')]===0x0){return db[_0x6ca1('0x28')][_0x6ca1('0x4b')]({'name':_0x1d26c0[_0x6ca1('0x2b')],'resourceId':_0x1d26c0['id'],'type':_0x4e4214['name'],'sectionId':_0x4e4214['id']},{})[_0x6ca1('0x26')](function(){return _0x3169f4;});}else{return _0x3169f4;}})[_0x6ca1('0x47')](function(_0x2c3948){logger[_0x6ca1('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2c3948);throw _0x2c3948;});}return _0x3169f4;})[_0x6ca1('0x26')](respondWithResult(_0x1fdc72,0xc9))['catch'](handleError(_0x1fdc72,null));};exports['update']=function(_0x50cf3a,_0x19292d){if(_0x50cf3a['body']['id']){delete _0x50cf3a[_0x6ca1('0x4c')]['id'];}return db[_0x6ca1('0x2d')][_0x6ca1('0x51')]({'where':{'id':_0x50cf3a[_0x6ca1('0x49')]['id']}})[_0x6ca1('0x26')](handleEntityNotFound(_0x19292d,null))[_0x6ca1('0x26')](saveUpdates(_0x50cf3a[_0x6ca1('0x4c')],null))[_0x6ca1('0x26')](respondWithResult(_0x19292d,null))[_0x6ca1('0x47')](handleError(_0x19292d,null));};exports['destroy']=function(_0x2186f5,_0x51635d){return db[_0x6ca1('0x2d')][_0x6ca1('0x51')]({'where':{'id':_0x2186f5['params']['id']}})[_0x6ca1('0x26')](handleEntityNotFound(_0x51635d,null))[_0x6ca1('0x26')](removeEntity(_0x51635d,null))['catch'](handleError(_0x51635d,null));};exports[_0x6ca1('0x54')]=function(_0xc9beb0,_0x4e4017,_0x1f70f5){return db[_0x6ca1('0x2d')][_0x6ca1('0x51')]({'where':{'id':_0xc9beb0['params']['id']}})[_0x6ca1('0x26')](handleEntityNotFound(_0x4e4017,null))['then'](function(_0x1019ee){if(_0x1019ee){return _0x1019ee[_0x6ca1('0x54')](_0xc9beb0[_0x6ca1('0x4c')][_0x6ca1('0x55')],_['omit'](_0xc9beb0['body'],[_0x6ca1('0x55'),'id'])||{});}})[_0x6ca1('0x26')](respondWithResult(_0x4e4017,null))[_0x6ca1('0x47')](handleError(_0x4e4017,null));};exports[_0x6ca1('0x56')]=function(_0x542d12,_0x197860,_0x415178){return db[_0x6ca1('0x2d')]['find']({'where':{'id':_0x542d12['params']['id']}})[_0x6ca1('0x26')](handleEntityNotFound(_0x197860,null))['then'](function(_0x2c3fdc){if(_0x2c3fdc){return _0x2c3fdc['removeUsers'](_0x542d12['query'][_0x6ca1('0x55')])[_0x6ca1('0x26')](function(){if(_[_0x6ca1('0x57')](_0x542d12[_0x6ca1('0x33')][_0x6ca1('0x55')])){for(var _0x19dd22=0x0;_0x19dd22<_0x542d12['query'][_0x6ca1('0x55')][_0x6ca1('0x38')];_0x19dd22+=0x1){socket[_0x6ca1('0x58')](_0x6ca1('0x59'),{'UserId':Number(_0x542d12[_0x6ca1('0x33')][_0x6ca1('0x55')][_0x19dd22]),'SquareProjectId':Number(_0x542d12[_0x6ca1('0x49')]['id'])});}}else{socket['emit'](_0x6ca1('0x59'),{'UserId':Number(_0x542d12['query'][_0x6ca1('0x55')]),'SquareProjectId':Number(_0x542d12[_0x6ca1('0x49')]['id'])});}});}})[_0x6ca1('0x26')](respondWithStatusCode(_0x197860,null))[_0x6ca1('0x47')](handleError(_0x197860,null));};exports[_0x6ca1('0x5a')]=function(_0x5400c2,_0xff078a,_0x312caa){var _0x5835d0={};var _0x1c1656={};var _0x5f5d3c;var _0x4ec563;return db[_0x6ca1('0x2d')][_0x6ca1('0x5b')]({'where':{'id':_0x5400c2[_0x6ca1('0x49')]['id']}})[_0x6ca1('0x26')](handleEntityNotFound(_0xff078a,null))['then'](function(_0x50f5cf){if(_0x50f5cf){_0x5f5d3c=_0x50f5cf;_0x1c1656[_0x6ca1('0x31')]=_[_0x6ca1('0x32')](db[_0x6ca1('0x5c')]['rawAttributes']);_0x1c1656[_0x6ca1('0x33')]=_[_0x6ca1('0x32')](_0x5400c2[_0x6ca1('0x33')]);_0x1c1656['filters']=_[_0x6ca1('0x35')](_0x1c1656[_0x6ca1('0x31')],_0x1c1656[_0x6ca1('0x33')]);_0x5835d0['attributes']=_[_0x6ca1('0x35')](_0x1c1656[_0x6ca1('0x31')],qs[_0x6ca1('0x37')](_0x5400c2[_0x6ca1('0x33')]['fields']));_0x5835d0[_0x6ca1('0x36')]=_0x5835d0[_0x6ca1('0x36')]['length']?_0x5835d0[_0x6ca1('0x36')]:_0x1c1656['model'];_0x5835d0[_0x6ca1('0x3b')]=qs[_0x6ca1('0x3c')](_0x5400c2[_0x6ca1('0x33')][_0x6ca1('0x3c')]);_0x5835d0[_0x6ca1('0x3d')]=qs[_0x6ca1('0x34')](_[_0x6ca1('0x3e')](_0x5400c2[_0x6ca1('0x33')],_0x1c1656[_0x6ca1('0x34')]));if(_0x5400c2['query'][_0x6ca1('0x3f')]){_0x5835d0[_0x6ca1('0x3d')]=_['merge'](_0x5835d0[_0x6ca1('0x3d')],{'$or':_[_0x6ca1('0x41')](_0x5835d0[_0x6ca1('0x36')],function(_0x247e9a){var _0x46b7b6={};_0x46b7b6[_0x247e9a]={'$like':'%'+_0x5400c2[_0x6ca1('0x33')]['filter']+'%'};return _0x46b7b6;})});}_0x5835d0=_['merge']({},_0x5835d0,_0x5400c2[_0x6ca1('0x44')]);return _0x5f5d3c['getUsers'](_0x5835d0);}})[_0x6ca1('0x26')](function(_0x5e4f74){if(_0x5e4f74){_0x4ec563=_0x5e4f74[_0x6ca1('0x38')];if(!_0x5400c2['query'][_0x6ca1('0x39')](_0x6ca1('0x3a'))){_0x5835d0[_0x6ca1('0x23')]=qs[_0x6ca1('0x23')](_0x5400c2['query'][_0x6ca1('0x23')]);_0x5835d0[_0x6ca1('0x22')]=qs[_0x6ca1('0x22')](_0x5400c2[_0x6ca1('0x33')]['offset']);}return _0x5f5d3c[_0x6ca1('0x5a')](_0x5835d0);}})[_0x6ca1('0x26')](function(_0x310a30){if(_0x310a30){return _0x310a30?{'count':_0x4ec563,'rows':_0x310a30}:null;}})[_0x6ca1('0x26')](respondWithResult(_0xff078a,null))['catch'](handleError(_0xff078a,null));};