ee13964d5d345e75c827da31866b3574b0185c82
[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 _0x7c61=['to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','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','defaults','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','reject','save','update','then','get','SquareProjects','UserProfileResource','destroy','error','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','omit','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','order','rimraf','request-promise','bluebird','mustache','util','path','sox'];(function(_0x20cb2c,_0x44872d){var _0x26e9cf=function(_0xd2d330){while(--_0xd2d330){_0x20cb2c['push'](_0x20cb2c['shift']());}};_0x26e9cf(++_0x44872d);}(_0x7c61,0xc5));var _0x17c6=function(_0x2b27f2,_0x389720){_0x2b27f2=_0x2b27f2-0x0;var _0x374dbf=_0x7c61[_0x2b27f2];return _0x374dbf;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x17c6('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x17c6('0x1'));var moment=require('moment');var BPromise=require(_0x17c6('0x2'));var Mustache=require(_0x17c6('0x3'));var util=require(_0x17c6('0x4'));var path=require(_0x17c6('0x5'));var sox=require(_0x17c6('0x6'));var csv=require(_0x17c6('0x7'));var ejs=require(_0x17c6('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0x17c6('0x9'));var crypto=require(_0x17c6('0xa'));var jsforce=require(_0x17c6('0xb'));var deskjs=require(_0x17c6('0xc'));var toCsv=require(_0x17c6('0x7'));var querystring=require(_0x17c6('0xd'));var Papa=require(_0x17c6('0xe'));var Redis=require(_0x17c6('0xf'));var authService=require(_0x17c6('0x10'));var qs=require(_0x17c6('0x11'));var as=require(_0x17c6('0x12'));var hardwareService=require(_0x17c6('0x13'));var logger=require(_0x17c6('0x14'))(_0x17c6('0x15'));var utils=require(_0x17c6('0x16'));var config=require(_0x17c6('0x17'));var licenseUtil=require(_0x17c6('0x18'));var db=require('../../mysqldb')['db'];config[_0x17c6('0x19')]=_[_0x17c6('0x1a')](config[_0x17c6('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0x17c6('0x1b'))(new Redis(config[_0x17c6('0x19')]));require(_0x17c6('0x1c'))[_0x17c6('0x1d')](socket);function respondWithStatusCode(_0x58f26a,_0x302288){_0x302288=_0x302288||0xcc;return function(_0x5396fb){if(_0x5396fb){return _0x58f26a[_0x17c6('0x1e')](_0x302288);}return _0x58f26a[_0x17c6('0x1f')](_0x302288)[_0x17c6('0x20')]();};}function respondWithResult(_0x43981b,_0x363170){_0x363170=_0x363170||0xc8;return function(_0x1fc082){if(_0x1fc082){return _0x43981b[_0x17c6('0x1f')](_0x363170)[_0x17c6('0x21')](_0x1fc082);}};}function respondWithFilteredResult(_0x2cd2d2,_0x228e5a){return function(_0x564c7c){if(_0x564c7c){var _0x51b1af=_0x564c7c[_0x17c6('0x22')],_0x1c7e6b=_0x228e5a[_0x17c6('0x23')],_0x19a632=_0x228e5a[_0x17c6('0x23')]+_0x228e5a[_0x17c6('0x24')],_0x1b272d;if(_0x19a632>=_0x51b1af){_0x19a632=_0x51b1af;_0x1b272d=0xc8;}else{_0x1b272d=0xce;}_0x2cd2d2[_0x17c6('0x1f')](_0x1b272d);return _0x2cd2d2[_0x17c6('0x25')](_0x17c6('0x26'),_0x1c7e6b+'-'+_0x19a632+'/'+_0x51b1af)[_0x17c6('0x21')](_0x564c7c);}return null;};}function patchUpdates(_0x345bac){return function(_0x2c4cb5){try{jsonpatch['apply'](_0x2c4cb5,_0x345bac,!![]);}catch(_0x1aac84){return BPromise[_0x17c6('0x27')](_0x1aac84);}return _0x2c4cb5[_0x17c6('0x28')]();};}function saveUpdates(_0x3e9974,_0x5731b5){return function(_0x52b055){if(_0x52b055){return _0x52b055[_0x17c6('0x29')](_0x3e9974)[_0x17c6('0x2a')](function(_0x4eb096){return _0x4eb096;});}return null;};}function removeEntity(_0x4d61f4,_0x56497c){return function(_0x233685){if(_0x233685){return _0x233685['destroy']()['then'](function(){var _0x262132=_0x233685[_0x17c6('0x2b')]({'plain':!![]});var _0x2859a9=_0x17c6('0x2c');return db[_0x17c6('0x2d')][_0x17c6('0x2e')]({'where':{'type':_0x2859a9,'resourceId':_0x262132['id']}})[_0x17c6('0x2a')](function(){return _0x233685;});})[_0x17c6('0x2a')](function(){_0x4d61f4[_0x17c6('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4455c8,_0x56d924){return function(_0x27a68a){if(!_0x27a68a){_0x4455c8[_0x17c6('0x1e')](0x194);}return _0x27a68a;};}function handleError(_0x4664ba,_0x10ec12){_0x10ec12=_0x10ec12||0x1f4;return function(_0x4dd6a2){logger[_0x17c6('0x2f')](_0x4dd6a2[_0x17c6('0x30')]);if(_0x4dd6a2['name']){delete _0x4dd6a2[_0x17c6('0x31')];}_0x4664ba['status'](_0x10ec12)[_0x17c6('0x32')](_0x4dd6a2);};}exports[_0x17c6('0x33')]=function(_0x5d1420,_0x3f80ac){var _0x57ea04={},_0x5cf63a={},_0x1eb8ac={'count':0x0,'rows':[]};var _0x3d2c17=_[_0x17c6('0x34')](db[_0x17c6('0x35')][_0x17c6('0x36')],function(_0x621a1){return{'name':_0x621a1[_0x17c6('0x37')],'type':_0x621a1[_0x17c6('0x38')][_0x17c6('0x39')]};});_0x5cf63a[_0x17c6('0x3a')]=_[_0x17c6('0x34')](_0x3d2c17,_0x17c6('0x31'));_0x5cf63a['query']=_[_0x17c6('0x3b')](_0x5d1420[_0x17c6('0x3c')]);_0x5cf63a[_0x17c6('0x3d')]=_[_0x17c6('0x3e')](_0x5cf63a['model'],_0x5cf63a[_0x17c6('0x3c')]);_0x57ea04[_0x17c6('0x3f')]=_[_0x17c6('0x3e')](_0x5cf63a[_0x17c6('0x3a')],qs[_0x17c6('0x40')](_0x5d1420['query']['fields']));_0x57ea04[_0x17c6('0x3f')]=_0x57ea04['attributes'][_0x17c6('0x41')]?_0x57ea04[_0x17c6('0x3f')]:_0x5cf63a[_0x17c6('0x3a')];if(!_0x5d1420['query'][_0x17c6('0x42')](_0x17c6('0x43'))){_0x57ea04[_0x17c6('0x24')]=qs[_0x17c6('0x24')](_0x5d1420[_0x17c6('0x3c')][_0x17c6('0x24')]);_0x57ea04['offset']=qs[_0x17c6('0x23')](_0x5d1420['query'][_0x17c6('0x23')]);}_0x57ea04['order']=qs[_0x17c6('0x44')](_0x5d1420[_0x17c6('0x3c')][_0x17c6('0x44')]);_0x57ea04[_0x17c6('0x45')]=qs[_0x17c6('0x3d')](_[_0x17c6('0x46')](_0x5d1420['query'],_0x5cf63a[_0x17c6('0x3d')]),_0x3d2c17);if(_0x5d1420[_0x17c6('0x3c')][_0x17c6('0x47')]){_0x57ea04[_0x17c6('0x45')]=_[_0x17c6('0x48')](_0x57ea04[_0x17c6('0x45')],{'$or':_[_0x17c6('0x34')](_0x3d2c17,function(_0x142a4e){if(_0x142a4e[_0x17c6('0x38')]!=='VIRTUAL'){var _0xb7b459={};_0xb7b459[_0x142a4e['name']]={'$like':'%'+_0x5d1420['query'][_0x17c6('0x47')]+'%'};return _0xb7b459;}})});}_0x57ea04=_['merge']({},_0x57ea04,_0x5d1420[_0x17c6('0x49')]);var _0x491d21={'where':_0x57ea04[_0x17c6('0x45')]};return db[_0x17c6('0x35')][_0x17c6('0x22')](_0x491d21)['then'](function(_0x1061ea){_0x1eb8ac['count']=_0x1061ea;if(_0x5d1420[_0x17c6('0x3c')][_0x17c6('0x4a')]){_0x57ea04[_0x17c6('0x4b')]=[{'all':!![]}];}return db[_0x17c6('0x35')][_0x17c6('0x4c')](_0x57ea04);})[_0x17c6('0x2a')](function(_0x2c2789){_0x1eb8ac[_0x17c6('0x4d')]=_0x2c2789;return _0x1eb8ac;})[_0x17c6('0x2a')](respondWithFilteredResult(_0x3f80ac,_0x57ea04))[_0x17c6('0x4e')](handleError(_0x3f80ac,null));};exports[_0x17c6('0x4f')]=function(_0x468614,_0xa79647){var _0x19159b={'raw':![],'where':{'id':_0x468614[_0x17c6('0x50')]['id']}},_0x3ff789={};_0x3ff789['model']=_[_0x17c6('0x3b')](db[_0x17c6('0x35')][_0x17c6('0x36')]);_0x3ff789[_0x17c6('0x3c')]=_[_0x17c6('0x3b')](_0x468614['query']);_0x3ff789[_0x17c6('0x3d')]=_[_0x17c6('0x3e')](_0x3ff789['model'],_0x3ff789['query']);_0x19159b[_0x17c6('0x3f')]=_[_0x17c6('0x3e')](_0x3ff789[_0x17c6('0x3a')],qs[_0x17c6('0x40')](_0x468614[_0x17c6('0x3c')][_0x17c6('0x40')]));_0x19159b[_0x17c6('0x3f')]=_0x19159b[_0x17c6('0x3f')][_0x17c6('0x41')]?_0x19159b[_0x17c6('0x3f')]:_0x3ff789[_0x17c6('0x3a')];if(_0x468614[_0x17c6('0x3c')]['includeAll']){_0x19159b[_0x17c6('0x4b')]=[{'all':!![]}];}_0x19159b=_[_0x17c6('0x48')]({},_0x19159b,_0x468614[_0x17c6('0x49')]);return db[_0x17c6('0x35')][_0x17c6('0x51')](_0x19159b)[_0x17c6('0x2a')](handleEntityNotFound(_0xa79647,null))['then'](respondWithResult(_0xa79647,null))[_0x17c6('0x4e')](handleError(_0xa79647,null));};exports[_0x17c6('0x52')]=function(_0x891ac6,_0x5536d4){return db[_0x17c6('0x35')][_0x17c6('0x52')](_0x891ac6[_0x17c6('0x53')],{})[_0x17c6('0x2a')](function(_0x45993c){var _0x5ae3b6=_0x891ac6[_0x17c6('0x54')]['get']({'plain':!![]});if(!_0x5ae3b6)throw new Error(_0x17c6('0x55'));if(_0x5ae3b6[_0x17c6('0x56')]==='user'){var _0x49306c=_0x45993c[_0x17c6('0x2b')]({'plain':!![]});var _0x29b8fc=_0x17c6('0x2c');return db[_0x17c6('0x57')][_0x17c6('0x51')]({'where':{'name':_0x29b8fc,'userProfileId':_0x5ae3b6[_0x17c6('0x58')]},'raw':!![]})[_0x17c6('0x2a')](function(_0x4446f5){if(_0x4446f5&&_0x4446f5[_0x17c6('0x59')]===0x0){return db['UserProfileResource'][_0x17c6('0x52')]({'name':_0x49306c[_0x17c6('0x31')],'resourceId':_0x49306c['id'],'type':_0x4446f5['name'],'sectionId':_0x4446f5['id']},{})[_0x17c6('0x2a')](function(){return _0x45993c;});}else{return _0x45993c;}})[_0x17c6('0x4e')](function(_0x578a91){logger['error'](_0x17c6('0x5a'),_0x578a91);throw _0x578a91;});}return _0x45993c;})[_0x17c6('0x2a')](respondWithResult(_0x5536d4,0xc9))[_0x17c6('0x4e')](handleError(_0x5536d4,null));};exports[_0x17c6('0x29')]=function(_0x1eee4f,_0x673af5){if(_0x1eee4f[_0x17c6('0x53')]['id']){delete _0x1eee4f['body']['id'];}return db[_0x17c6('0x35')]['find']({'where':{'id':_0x1eee4f[_0x17c6('0x50')]['id']}})[_0x17c6('0x2a')](handleEntityNotFound(_0x673af5,null))[_0x17c6('0x2a')](saveUpdates(_0x1eee4f[_0x17c6('0x53')],null))[_0x17c6('0x2a')](respondWithResult(_0x673af5,null))[_0x17c6('0x4e')](handleError(_0x673af5,null));};exports[_0x17c6('0x2e')]=function(_0x120e09,_0x1be41a){return db['SquareProject'][_0x17c6('0x51')]({'where':{'id':_0x120e09[_0x17c6('0x50')]['id']}})[_0x17c6('0x2a')](handleEntityNotFound(_0x1be41a,null))[_0x17c6('0x2a')](removeEntity(_0x1be41a,null))['catch'](handleError(_0x1be41a,null));};exports[_0x17c6('0x5b')]=function(_0x32cb75,_0x3fdfd6,_0x32cdbc){return db[_0x17c6('0x35')]['find']({'where':{'id':_0x32cb75[_0x17c6('0x50')]['id']}})[_0x17c6('0x2a')](handleEntityNotFound(_0x3fdfd6,null))['then'](function(_0x52e367){if(_0x52e367){return _0x52e367[_0x17c6('0x5b')](_0x32cb75[_0x17c6('0x53')]['ids'],_[_0x17c6('0x5c')](_0x32cb75[_0x17c6('0x53')],[_0x17c6('0x5d'),'id'])||{});}})[_0x17c6('0x2a')](respondWithResult(_0x3fdfd6,null))[_0x17c6('0x4e')](handleError(_0x3fdfd6,null));};exports[_0x17c6('0x5e')]=function(_0x3d8b38,_0x1fd767,_0x4863f2){return db['SquareProject'][_0x17c6('0x51')]({'where':{'id':_0x3d8b38[_0x17c6('0x50')]['id']}})['then'](handleEntityNotFound(_0x1fd767,null))[_0x17c6('0x2a')](function(_0x384e41){if(_0x384e41){return _0x384e41[_0x17c6('0x5e')](_0x3d8b38[_0x17c6('0x3c')][_0x17c6('0x5d')])[_0x17c6('0x2a')](function(){if(_[_0x17c6('0x5f')](_0x3d8b38[_0x17c6('0x3c')][_0x17c6('0x5d')])){for(var _0x364c4a=0x0;_0x364c4a<_0x3d8b38[_0x17c6('0x3c')][_0x17c6('0x5d')][_0x17c6('0x41')];_0x364c4a+=0x1){socket[_0x17c6('0x60')](_0x17c6('0x61'),{'UserId':Number(_0x3d8b38['query'][_0x17c6('0x5d')][_0x364c4a]),'SquareProjectId':Number(_0x3d8b38[_0x17c6('0x50')]['id'])});}}else{socket['emit']('userSquareProject:remove',{'UserId':Number(_0x3d8b38[_0x17c6('0x3c')][_0x17c6('0x5d')]),'SquareProjectId':Number(_0x3d8b38['params']['id'])});}});}})[_0x17c6('0x2a')](respondWithStatusCode(_0x1fd767,null))[_0x17c6('0x4e')](handleError(_0x1fd767,null));};exports[_0x17c6('0x62')]=function(_0x278041,_0x452156,_0x2e53b2){var _0x26a8bd={};var _0x240bea={};var _0x2572ec;var _0x3cbb65;return db[_0x17c6('0x35')][_0x17c6('0x63')]({'where':{'id':_0x278041[_0x17c6('0x50')]['id']}})[_0x17c6('0x2a')](handleEntityNotFound(_0x452156,null))[_0x17c6('0x2a')](function(_0xad6695){if(_0xad6695){_0x2572ec=_0xad6695;_0x240bea['model']=_[_0x17c6('0x3b')](db[_0x17c6('0x64')][_0x17c6('0x36')]);_0x240bea['query']=_[_0x17c6('0x3b')](_0x278041[_0x17c6('0x3c')]);_0x240bea[_0x17c6('0x3d')]=_[_0x17c6('0x3e')](_0x240bea[_0x17c6('0x3a')],_0x240bea[_0x17c6('0x3c')]);_0x26a8bd['attributes']=_[_0x17c6('0x3e')](_0x240bea[_0x17c6('0x3a')],qs[_0x17c6('0x40')](_0x278041[_0x17c6('0x3c')][_0x17c6('0x40')]));_0x26a8bd[_0x17c6('0x3f')]=_0x26a8bd[_0x17c6('0x3f')][_0x17c6('0x41')]?_0x26a8bd[_0x17c6('0x3f')]:_0x240bea[_0x17c6('0x3a')];_0x26a8bd[_0x17c6('0x65')]=qs[_0x17c6('0x44')](_0x278041[_0x17c6('0x3c')][_0x17c6('0x44')]);_0x26a8bd[_0x17c6('0x45')]=qs[_0x17c6('0x3d')](_['pick'](_0x278041[_0x17c6('0x3c')],_0x240bea['filters']));if(_0x278041['query'][_0x17c6('0x47')]){_0x26a8bd[_0x17c6('0x45')]=_[_0x17c6('0x48')](_0x26a8bd['where'],{'$or':_[_0x17c6('0x34')](_0x26a8bd[_0x17c6('0x3f')],function(_0x16e4ef){var _0x146191={};_0x146191[_0x16e4ef]={'$like':'%'+_0x278041[_0x17c6('0x3c')][_0x17c6('0x47')]+'%'};return _0x146191;})});}_0x26a8bd=_[_0x17c6('0x48')]({},_0x26a8bd,_0x278041[_0x17c6('0x49')]);return _0x2572ec[_0x17c6('0x62')](_0x26a8bd);}})[_0x17c6('0x2a')](function(_0x3af98e){if(_0x3af98e){_0x3cbb65=_0x3af98e[_0x17c6('0x41')];if(!_0x278041[_0x17c6('0x3c')]['hasOwnProperty']('nolimit')){_0x26a8bd['limit']=qs[_0x17c6('0x24')](_0x278041[_0x17c6('0x3c')][_0x17c6('0x24')]);_0x26a8bd[_0x17c6('0x23')]=qs[_0x17c6('0x23')](_0x278041['query'][_0x17c6('0x23')]);}return _0x2572ec['getUsers'](_0x26a8bd);}})['then'](function(_0x10bac3){if(_0x10bac3){return _0x10bac3?{'count':_0x3cbb65,'rows':_0x10bac3}:null;}})[_0x17c6('0x2a')](respondWithResult(_0x452156,null))[_0x17c6('0x4e')](handleError(_0x452156,null));};