Built motion from commit 753c950e.|2.5.42
[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 _0x3752=['name','send','index','map','SquareProject','rawAttributes','fieldName','key','query','intersection','model','fields','attributes','nolimit','order','sort','where','pick','filter','merge','type','options','includeAll','include','params','keys','filters','length','find','catch','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','omit','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','User','hasOwnProperty','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','save','update','then','destroy','SquareProjects','UserProfileResource','error','stack'];(function(_0xce0e61,_0x3b5571){var _0x1e5c06=function(_0x1a66a1){while(--_0x1a66a1){_0xce0e61['push'](_0xce0e61['shift']());}};_0x1e5c06(++_0x3b5571);}(_0x3752,0x1b5));var _0x2375=function(_0x1eccef,_0x1181d4){_0x1eccef=_0x1eccef-0x0;var _0x51c6f2=_0x3752[_0x1eccef];return _0x51c6f2;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2375('0x0'));var jsonpatch=require(_0x2375('0x1'));var rp=require(_0x2375('0x2'));var moment=require(_0x2375('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2375('0x4'));var util=require(_0x2375('0x5'));var path=require(_0x2375('0x6'));var sox=require(_0x2375('0x7'));var csv=require('to-csv');var ejs=require(_0x2375('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x2375('0x9'));var jsforce=require(_0x2375('0xa'));var deskjs=require(_0x2375('0xb'));var toCsv=require(_0x2375('0xc'));var querystring=require('querystring');var Papa=require(_0x2375('0xd'));var Redis=require(_0x2375('0xe'));var authService=require(_0x2375('0xf'));var qs=require(_0x2375('0x10'));var as=require(_0x2375('0x11'));var hardwareService=require(_0x2375('0x12'));var logger=require(_0x2375('0x13'))(_0x2375('0x14'));var utils=require(_0x2375('0x15'));var config=require(_0x2375('0x16'));var licenseUtil=require(_0x2375('0x17'));var db=require('../../mysqldb')['db'];config[_0x2375('0x18')]=_['defaults'](config[_0x2375('0x18')],{'host':_0x2375('0x19'),'port':0x18eb});var socket=require(_0x2375('0x1a'))(new Redis(config[_0x2375('0x18')]));require(_0x2375('0x1b'))[_0x2375('0x1c')](socket);function respondWithStatusCode(_0xc9e3db,_0x4c2653){_0x4c2653=_0x4c2653||0xcc;return function(_0x2f5023){if(_0x2f5023){return _0xc9e3db[_0x2375('0x1d')](_0x4c2653);}return _0xc9e3db[_0x2375('0x1e')](_0x4c2653)[_0x2375('0x1f')]();};}function respondWithResult(_0x2b9d9a,_0x375341){_0x375341=_0x375341||0xc8;return function(_0x4362f5){if(_0x4362f5){return _0x2b9d9a[_0x2375('0x1e')](_0x375341)['json'](_0x4362f5);}};}function respondWithFilteredResult(_0x3d229e,_0x156901){return function(_0x306003){if(_0x306003){var _0x5980d2=typeof _0x156901[_0x2375('0x20')]===_0x2375('0x21')&&typeof _0x156901[_0x2375('0x22')]===_0x2375('0x21');var _0x30c62b=_0x306003[_0x2375('0x23')];var _0x5f300e=_0x5980d2?0x0:_0x156901['offset'];var _0x4ccbd3=_0x5980d2?_0x306003[_0x2375('0x23')]:_0x156901[_0x2375('0x20')]+_0x156901[_0x2375('0x22')];var _0x205ef7;if(_0x4ccbd3>=_0x30c62b){_0x4ccbd3=_0x30c62b;_0x205ef7=0xc8;}else{_0x205ef7=0xce;}_0x3d229e['status'](_0x205ef7);return _0x3d229e[_0x2375('0x24')]('Content-Range',_0x5f300e+'-'+_0x4ccbd3+'/'+_0x30c62b)[_0x2375('0x25')](_0x306003);}return null;};}function patchUpdates(_0x559665){return function(_0xbf3211){try{jsonpatch[_0x2375('0x26')](_0xbf3211,_0x559665,!![]);}catch(_0x4b425f){return BPromise[_0x2375('0x27')](_0x4b425f);}return _0xbf3211[_0x2375('0x28')]();};}function saveUpdates(_0x567b3d,_0x5ea47a){return function(_0x10692b){if(_0x10692b){return _0x10692b[_0x2375('0x29')](_0x567b3d)[_0x2375('0x2a')](function(_0x5e090b){return _0x5e090b;});}return null;};}function removeEntity(_0x402fc2,_0xffb5ae){return function(_0x22a8a3){if(_0x22a8a3){return _0x22a8a3[_0x2375('0x2b')]()[_0x2375('0x2a')](function(){var _0xa41149=_0x22a8a3['get']({'plain':!![]});var _0x36b506=_0x2375('0x2c');return db[_0x2375('0x2d')][_0x2375('0x2b')]({'where':{'type':_0x36b506,'resourceId':_0xa41149['id']}})[_0x2375('0x2a')](function(){return _0x22a8a3;});})[_0x2375('0x2a')](function(){_0x402fc2['status'](0xcc)[_0x2375('0x1f')]();});}};}function handleEntityNotFound(_0x189b69,_0x5a8b51){return function(_0x1e5e27){if(!_0x1e5e27){_0x189b69[_0x2375('0x1d')](0x194);}return _0x1e5e27;};}function handleError(_0x29c071,_0x36f5a3){_0x36f5a3=_0x36f5a3||0x1f4;return function(_0x3a573d){logger[_0x2375('0x2e')](_0x3a573d[_0x2375('0x2f')]);if(_0x3a573d[_0x2375('0x30')]){delete _0x3a573d[_0x2375('0x30')];}_0x29c071[_0x2375('0x1e')](_0x36f5a3)[_0x2375('0x31')](_0x3a573d);};}exports[_0x2375('0x32')]=function(_0x4b8de6,_0x5a78c9){var _0x190199={},_0x2ae7b9={},_0x4dab9c={'count':0x0,'rows':[]};var _0x36ea8b=_[_0x2375('0x33')](db[_0x2375('0x34')][_0x2375('0x35')],function(_0x546322){return{'name':_0x546322[_0x2375('0x36')],'type':_0x546322['type'][_0x2375('0x37')]};});_0x2ae7b9['model']=_[_0x2375('0x33')](_0x36ea8b,_0x2375('0x30'));_0x2ae7b9[_0x2375('0x38')]=_['keys'](_0x4b8de6[_0x2375('0x38')]);_0x2ae7b9['filters']=_[_0x2375('0x39')](_0x2ae7b9[_0x2375('0x3a')],_0x2ae7b9[_0x2375('0x38')]);_0x190199['attributes']=_[_0x2375('0x39')](_0x2ae7b9['model'],qs[_0x2375('0x3b')](_0x4b8de6[_0x2375('0x38')][_0x2375('0x3b')]));_0x190199[_0x2375('0x3c')]=_0x190199[_0x2375('0x3c')]['length']?_0x190199[_0x2375('0x3c')]:_0x2ae7b9[_0x2375('0x3a')];if(!_0x4b8de6[_0x2375('0x38')]['hasOwnProperty'](_0x2375('0x3d'))){_0x190199['limit']=qs[_0x2375('0x22')](_0x4b8de6[_0x2375('0x38')][_0x2375('0x22')]);_0x190199['offset']=qs[_0x2375('0x20')](_0x4b8de6[_0x2375('0x38')][_0x2375('0x20')]);}_0x190199[_0x2375('0x3e')]=qs[_0x2375('0x3f')](_0x4b8de6['query'][_0x2375('0x3f')]);_0x190199[_0x2375('0x40')]=qs['filters'](_[_0x2375('0x41')](_0x4b8de6[_0x2375('0x38')],_0x2ae7b9['filters']),_0x36ea8b);if(_0x4b8de6[_0x2375('0x38')][_0x2375('0x42')]){_0x190199[_0x2375('0x40')]=_[_0x2375('0x43')](_0x190199[_0x2375('0x40')],{'$or':_[_0x2375('0x33')](_0x36ea8b,function(_0xa7dafb){if(_0xa7dafb[_0x2375('0x44')]!=='VIRTUAL'){var _0x5f3fd4={};_0x5f3fd4[_0xa7dafb[_0x2375('0x30')]]={'$like':'%'+_0x4b8de6[_0x2375('0x38')]['filter']+'%'};return _0x5f3fd4;}})});}_0x190199=_[_0x2375('0x43')]({},_0x190199,_0x4b8de6[_0x2375('0x45')]);var _0x2ec81d={'where':_0x190199[_0x2375('0x40')]};return db[_0x2375('0x34')][_0x2375('0x23')](_0x2ec81d)['then'](function(_0x1aae20){_0x4dab9c[_0x2375('0x23')]=_0x1aae20;if(_0x4b8de6['query'][_0x2375('0x46')]){_0x190199[_0x2375('0x47')]=[{'all':!![]}];}return db[_0x2375('0x34')]['findAll'](_0x190199);})[_0x2375('0x2a')](function(_0x355bbd){_0x4dab9c['rows']=_0x355bbd;return _0x4dab9c;})[_0x2375('0x2a')](respondWithFilteredResult(_0x5a78c9,_0x190199))['catch'](handleError(_0x5a78c9,null));};exports['show']=function(_0x4f6def,_0x3a91b6){var _0x4c7bcf={'raw':![],'where':{'id':_0x4f6def[_0x2375('0x48')]['id']}},_0x343f3b={};_0x343f3b[_0x2375('0x3a')]=_[_0x2375('0x49')](db['SquareProject'][_0x2375('0x35')]);_0x343f3b[_0x2375('0x38')]=_['keys'](_0x4f6def[_0x2375('0x38')]);_0x343f3b[_0x2375('0x4a')]=_['intersection'](_0x343f3b[_0x2375('0x3a')],_0x343f3b[_0x2375('0x38')]);_0x4c7bcf[_0x2375('0x3c')]=_[_0x2375('0x39')](_0x343f3b[_0x2375('0x3a')],qs['fields'](_0x4f6def['query'][_0x2375('0x3b')]));_0x4c7bcf['attributes']=_0x4c7bcf['attributes'][_0x2375('0x4b')]?_0x4c7bcf[_0x2375('0x3c')]:_0x343f3b['model'];if(_0x4f6def['query'][_0x2375('0x46')]){_0x4c7bcf[_0x2375('0x47')]=[{'all':!![]}];}_0x4c7bcf=_[_0x2375('0x43')]({},_0x4c7bcf,_0x4f6def[_0x2375('0x45')]);return db[_0x2375('0x34')][_0x2375('0x4c')](_0x4c7bcf)['then'](handleEntityNotFound(_0x3a91b6,null))[_0x2375('0x2a')](respondWithResult(_0x3a91b6,null))[_0x2375('0x4d')](handleError(_0x3a91b6,null));};exports[_0x2375('0x4e')]=function(_0x2bb389,_0x52e090){return db[_0x2375('0x34')][_0x2375('0x4e')](_0x2bb389[_0x2375('0x4f')],{})[_0x2375('0x2a')](function(_0x34dc62){var _0x15a650=_0x2bb389[_0x2375('0x50')][_0x2375('0x51')]({'plain':!![]});if(!_0x15a650)throw new Error(_0x2375('0x52'));if(_0x15a650[_0x2375('0x53')]===_0x2375('0x50')){var _0x19cf55=_0x34dc62[_0x2375('0x51')]({'plain':!![]});var _0x16985a=_0x2375('0x2c');return db['UserProfileSection'][_0x2375('0x4c')]({'where':{'name':_0x16985a,'userProfileId':_0x15a650[_0x2375('0x54')]},'raw':!![]})[_0x2375('0x2a')](function(_0x6491e6){if(_0x6491e6&&_0x6491e6[_0x2375('0x55')]===0x0){return db['UserProfileResource'][_0x2375('0x4e')]({'name':_0x19cf55['name'],'resourceId':_0x19cf55['id'],'type':_0x6491e6['name'],'sectionId':_0x6491e6['id']},{})['then'](function(){return _0x34dc62;});}else{return _0x34dc62;}})[_0x2375('0x4d')](function(_0x1b897a){logger[_0x2375('0x2e')](_0x2375('0x56'),_0x1b897a);throw _0x1b897a;});}return _0x34dc62;})[_0x2375('0x2a')](respondWithResult(_0x52e090,0xc9))[_0x2375('0x4d')](handleError(_0x52e090,null));};exports[_0x2375('0x29')]=function(_0x1b4ce7,_0x3fae01){if(_0x1b4ce7['body']['id']){delete _0x1b4ce7['body']['id'];}return db[_0x2375('0x34')][_0x2375('0x4c')]({'where':{'id':_0x1b4ce7['params']['id']}})['then'](handleEntityNotFound(_0x3fae01,null))[_0x2375('0x2a')](saveUpdates(_0x1b4ce7[_0x2375('0x4f')],null))[_0x2375('0x2a')](respondWithResult(_0x3fae01,null))['catch'](handleError(_0x3fae01,null));};exports['destroy']=function(_0x620439,_0x48e097){return db['SquareProject'][_0x2375('0x4c')]({'where':{'id':_0x620439[_0x2375('0x48')]['id']}})['then'](handleEntityNotFound(_0x48e097,null))['then'](removeEntity(_0x48e097,null))[_0x2375('0x4d')](handleError(_0x48e097,null));};exports[_0x2375('0x57')]=function(_0x57514e,_0x1ab5a5,_0x5a39ca){return db[_0x2375('0x34')][_0x2375('0x4c')]({'where':{'id':_0x57514e['params']['id']}})[_0x2375('0x2a')](handleEntityNotFound(_0x1ab5a5,null))[_0x2375('0x2a')](function(_0x19dd07){if(_0x19dd07){return _0x19dd07[_0x2375('0x57')](_0x57514e[_0x2375('0x4f')]['ids'],_[_0x2375('0x58')](_0x57514e[_0x2375('0x4f')],[_0x2375('0x59'),'id'])||{});}})[_0x2375('0x2a')](respondWithResult(_0x1ab5a5,null))[_0x2375('0x4d')](handleError(_0x1ab5a5,null));};exports['removeUsers']=function(_0x1a13bd,_0x138490,_0x150054){return db[_0x2375('0x34')][_0x2375('0x4c')]({'where':{'id':_0x1a13bd[_0x2375('0x48')]['id']}})[_0x2375('0x2a')](handleEntityNotFound(_0x138490,null))[_0x2375('0x2a')](function(_0x50a6e2){if(_0x50a6e2){return _0x50a6e2[_0x2375('0x5a')](_0x1a13bd[_0x2375('0x38')]['ids'])[_0x2375('0x2a')](function(){if(_[_0x2375('0x5b')](_0x1a13bd[_0x2375('0x38')][_0x2375('0x59')])){for(var _0x398731=0x0;_0x398731<_0x1a13bd[_0x2375('0x38')][_0x2375('0x59')][_0x2375('0x4b')];_0x398731+=0x1){socket[_0x2375('0x5c')](_0x2375('0x5d'),{'UserId':Number(_0x1a13bd[_0x2375('0x38')]['ids'][_0x398731]),'SquareProjectId':Number(_0x1a13bd[_0x2375('0x48')]['id'])});}}else{socket[_0x2375('0x5c')](_0x2375('0x5d'),{'UserId':Number(_0x1a13bd['query']['ids']),'SquareProjectId':Number(_0x1a13bd[_0x2375('0x48')]['id'])});}});}})['then'](respondWithStatusCode(_0x138490,null))[_0x2375('0x4d')](handleError(_0x138490,null));};exports[_0x2375('0x5e')]=function(_0x131abd,_0x37b7aa,_0xea41a3){var _0x214a11={};var _0x1ea2db={};var _0x4970e4;var _0x46fdb5;return db['SquareProject']['findOne']({'where':{'id':_0x131abd[_0x2375('0x48')]['id']}})[_0x2375('0x2a')](handleEntityNotFound(_0x37b7aa,null))[_0x2375('0x2a')](function(_0x2efbf8){if(_0x2efbf8){_0x4970e4=_0x2efbf8;_0x1ea2db['model']=_[_0x2375('0x49')](db[_0x2375('0x5f')][_0x2375('0x35')]);_0x1ea2db[_0x2375('0x38')]=_[_0x2375('0x49')](_0x131abd[_0x2375('0x38')]);_0x1ea2db['filters']=_[_0x2375('0x39')](_0x1ea2db[_0x2375('0x3a')],_0x1ea2db[_0x2375('0x38')]);_0x214a11[_0x2375('0x3c')]=_[_0x2375('0x39')](_0x1ea2db[_0x2375('0x3a')],qs[_0x2375('0x3b')](_0x131abd[_0x2375('0x38')][_0x2375('0x3b')]));_0x214a11[_0x2375('0x3c')]=_0x214a11['attributes']['length']?_0x214a11[_0x2375('0x3c')]:_0x1ea2db[_0x2375('0x3a')];_0x214a11[_0x2375('0x3e')]=qs[_0x2375('0x3f')](_0x131abd[_0x2375('0x38')][_0x2375('0x3f')]);_0x214a11[_0x2375('0x40')]=qs[_0x2375('0x4a')](_[_0x2375('0x41')](_0x131abd[_0x2375('0x38')],_0x1ea2db[_0x2375('0x4a')]));if(_0x131abd[_0x2375('0x38')]['filter']){_0x214a11[_0x2375('0x40')]=_[_0x2375('0x43')](_0x214a11['where'],{'$or':_[_0x2375('0x33')](_0x214a11[_0x2375('0x3c')],function(_0x222100){var _0x5643b7={};_0x5643b7[_0x222100]={'$like':'%'+_0x131abd[_0x2375('0x38')][_0x2375('0x42')]+'%'};return _0x5643b7;})});}_0x214a11=_[_0x2375('0x43')]({},_0x214a11,_0x131abd[_0x2375('0x45')]);return _0x4970e4[_0x2375('0x5e')](_0x214a11);}})[_0x2375('0x2a')](function(_0x4be641){if(_0x4be641){_0x46fdb5=_0x4be641['length'];if(!_0x131abd[_0x2375('0x38')][_0x2375('0x60')]('nolimit')){_0x214a11['limit']=qs[_0x2375('0x22')](_0x131abd[_0x2375('0x38')][_0x2375('0x22')]);_0x214a11[_0x2375('0x20')]=qs[_0x2375('0x20')](_0x131abd[_0x2375('0x38')][_0x2375('0x20')]);}return _0x4970e4[_0x2375('0x5e')](_0x214a11);}})['then'](function(_0x16b1e5){if(_0x16b1e5){return _0x16b1e5?{'count':_0x46fdb5,'rows':_0x16b1e5}:null;}})['then'](respondWithResult(_0x37b7aa,null))['catch'](handleError(_0x37b7aa,null));};