c01aa2c53a718ba3b2979bb988c9a438dccf1c2a
[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 _0x512e=['model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','pick','rimraf','fast-json-patch','request-promise','bluebird','mustache','to-csv','ejs','fs-extra','squel','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','../../mysqldb','defaults','redis','localhost','./squareProject.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','update','then','destroy','get','SquareProjects','UserProfileResource','error','stack','name','map','SquareProject','rawAttributes','fieldName','type','key'];(function(_0x465ef6,_0x8adf2a){var _0x5cf599=function(_0x19d39b){while(--_0x19d39b){_0x465ef6['push'](_0x465ef6['shift']());}};_0x5cf599(++_0x8adf2a);}(_0x512e,0x1a9));var _0xe512=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x512e[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe512('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe512('0x1'));var rp=require(_0xe512('0x2'));var moment=require('moment');var BPromise=require(_0xe512('0x3'));var Mustache=require(_0xe512('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xe512('0x5'));var ejs=require(_0xe512('0x6'));var fs=require('fs');var fs_extra=require(_0xe512('0x7'));var _=require('lodash');var squel=require(_0xe512('0x8'));var crypto=require('crypto');var jsforce=require(_0xe512('0x9'));var deskjs=require(_0xe512('0xa'));var toCsv=require(_0xe512('0x5'));var querystring=require(_0xe512('0xb'));var Papa=require(_0xe512('0xc'));var Redis=require(_0xe512('0xd'));var authService=require(_0xe512('0xe'));var qs=require(_0xe512('0xf'));var as=require(_0xe512('0x10'));var hardwareService=require(_0xe512('0x11'));var logger=require(_0xe512('0x12'))(_0xe512('0x13'));var utils=require(_0xe512('0x14'));var config=require(_0xe512('0x15'));var licenseUtil=require(_0xe512('0x16'));var db=require(_0xe512('0x17'))['db'];config['redis']=_[_0xe512('0x18')](config[_0xe512('0x19')],{'host':_0xe512('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe512('0x19')]));require(_0xe512('0x1b'))[_0xe512('0x1c')](socket);function respondWithStatusCode(_0x6d47a0,_0x233cc9){_0x233cc9=_0x233cc9||0xcc;return function(_0xa2adf8){if(_0xa2adf8){return _0x6d47a0[_0xe512('0x1d')](_0x233cc9);}return _0x6d47a0[_0xe512('0x1e')](_0x233cc9)[_0xe512('0x1f')]();};}function respondWithResult(_0x1c3c5f,_0x117a4f){_0x117a4f=_0x117a4f||0xc8;return function(_0x3ba219){if(_0x3ba219){return _0x1c3c5f[_0xe512('0x1e')](_0x117a4f)[_0xe512('0x20')](_0x3ba219);}};}function respondWithFilteredResult(_0x58c658,_0x1691b2){return function(_0x23ab40){if(_0x23ab40){var _0x5226fb=typeof _0x1691b2['offset']===_0xe512('0x21')&&typeof _0x1691b2[_0xe512('0x22')]===_0xe512('0x21');var _0x4e1b5a=_0x23ab40[_0xe512('0x23')];var _0x4c29f1=_0x5226fb?0x0:_0x1691b2[_0xe512('0x24')];var _0x1bff43=_0x5226fb?_0x23ab40[_0xe512('0x23')]:_0x1691b2[_0xe512('0x24')]+_0x1691b2['limit'];var _0x525aa9;if(_0x1bff43>=_0x4e1b5a){_0x1bff43=_0x4e1b5a;_0x525aa9=0xc8;}else{_0x525aa9=0xce;}_0x58c658[_0xe512('0x1e')](_0x525aa9);return _0x58c658[_0xe512('0x25')]('Content-Range',_0x4c29f1+'-'+_0x1bff43+'/'+_0x4e1b5a)['json'](_0x23ab40);}return null;};}function patchUpdates(_0x1ab078){return function(_0xfa321d){try{jsonpatch[_0xe512('0x26')](_0xfa321d,_0x1ab078,!![]);}catch(_0x432f34){return BPromise[_0xe512('0x27')](_0x432f34);}return _0xfa321d['save']();};}function saveUpdates(_0x917491,_0x52f6ba){return function(_0x3b7f63){if(_0x3b7f63){return _0x3b7f63[_0xe512('0x28')](_0x917491)[_0xe512('0x29')](function(_0x27b127){return _0x27b127;});}return null;};}function removeEntity(_0x3e875a,_0x35e9db){return function(_0x266ffb){if(_0x266ffb){return _0x266ffb[_0xe512('0x2a')]()['then'](function(){var _0x961d5e=_0x266ffb[_0xe512('0x2b')]({'plain':!![]});var _0x3ce696=_0xe512('0x2c');return db[_0xe512('0x2d')][_0xe512('0x2a')]({'where':{'type':_0x3ce696,'resourceId':_0x961d5e['id']}})[_0xe512('0x29')](function(){return _0x266ffb;});})['then'](function(){_0x3e875a['status'](0xcc)[_0xe512('0x1f')]();});}};}function handleEntityNotFound(_0x328780,_0x31cf41){return function(_0xc120c5){if(!_0xc120c5){_0x328780['sendStatus'](0x194);}return _0xc120c5;};}function handleError(_0x3dfec2,_0x5531c7){_0x5531c7=_0x5531c7||0x1f4;return function(_0x4bd220){logger[_0xe512('0x2e')](_0x4bd220[_0xe512('0x2f')]);if(_0x4bd220['name']){delete _0x4bd220[_0xe512('0x30')];}_0x3dfec2['status'](_0x5531c7)['send'](_0x4bd220);};}exports['index']=function(_0x101e2f,_0x5455ea){var _0x2be544={},_0x5eb60a={},_0xba616d={'count':0x0,'rows':[]};var _0x221755=_[_0xe512('0x31')](db[_0xe512('0x32')][_0xe512('0x33')],function(_0x115abb){return{'name':_0x115abb[_0xe512('0x34')],'type':_0x115abb[_0xe512('0x35')][_0xe512('0x36')]};});_0x5eb60a[_0xe512('0x37')]=_[_0xe512('0x31')](_0x221755,_0xe512('0x30'));_0x5eb60a[_0xe512('0x38')]=_[_0xe512('0x39')](_0x101e2f[_0xe512('0x38')]);_0x5eb60a[_0xe512('0x3a')]=_[_0xe512('0x3b')](_0x5eb60a[_0xe512('0x37')],_0x5eb60a['query']);_0x2be544[_0xe512('0x3c')]=_[_0xe512('0x3b')](_0x5eb60a[_0xe512('0x37')],qs['fields'](_0x101e2f[_0xe512('0x38')][_0xe512('0x3d')]));_0x2be544[_0xe512('0x3c')]=_0x2be544[_0xe512('0x3c')][_0xe512('0x3e')]?_0x2be544[_0xe512('0x3c')]:_0x5eb60a[_0xe512('0x37')];if(!_0x101e2f[_0xe512('0x38')][_0xe512('0x3f')](_0xe512('0x40'))){_0x2be544[_0xe512('0x22')]=qs[_0xe512('0x22')](_0x101e2f['query'][_0xe512('0x22')]);_0x2be544[_0xe512('0x24')]=qs[_0xe512('0x24')](_0x101e2f['query'][_0xe512('0x24')]);}_0x2be544[_0xe512('0x41')]=qs['sort'](_0x101e2f['query'][_0xe512('0x42')]);_0x2be544['where']=qs['filters'](_['pick'](_0x101e2f[_0xe512('0x38')],_0x5eb60a[_0xe512('0x3a')]),_0x221755);if(_0x101e2f[_0xe512('0x38')][_0xe512('0x43')]){_0x2be544[_0xe512('0x44')]=_[_0xe512('0x45')](_0x2be544[_0xe512('0x44')],{'$or':_[_0xe512('0x31')](_0x221755,function(_0x468c82){if(_0x468c82[_0xe512('0x35')]!==_0xe512('0x46')){var _0x3a46bb={};_0x3a46bb[_0x468c82[_0xe512('0x30')]]={'$like':'%'+_0x101e2f['query']['filter']+'%'};return _0x3a46bb;}})});}_0x2be544=_['merge']({},_0x2be544,_0x101e2f[_0xe512('0x47')]);var _0x98cf0f={'where':_0x2be544[_0xe512('0x44')]};return db[_0xe512('0x32')]['count'](_0x98cf0f)[_0xe512('0x29')](function(_0x2801b2){_0xba616d[_0xe512('0x23')]=_0x2801b2;if(_0x101e2f['query'][_0xe512('0x48')]){_0x2be544['include']=[{'all':!![]}];}return db[_0xe512('0x32')][_0xe512('0x49')](_0x2be544);})[_0xe512('0x29')](function(_0x27fbf8){_0xba616d[_0xe512('0x4a')]=_0x27fbf8;return _0xba616d;})['then'](respondWithFilteredResult(_0x5455ea,_0x2be544))[_0xe512('0x4b')](handleError(_0x5455ea,null));};exports[_0xe512('0x4c')]=function(_0x522086,_0x1e9d3b){var _0x55efc0={'raw':![],'where':{'id':_0x522086['params']['id']}},_0x3f4343={};_0x3f4343[_0xe512('0x37')]=_[_0xe512('0x39')](db['SquareProject']['rawAttributes']);_0x3f4343[_0xe512('0x38')]=_[_0xe512('0x39')](_0x522086[_0xe512('0x38')]);_0x3f4343[_0xe512('0x3a')]=_['intersection'](_0x3f4343[_0xe512('0x37')],_0x3f4343[_0xe512('0x38')]);_0x55efc0[_0xe512('0x3c')]=_[_0xe512('0x3b')](_0x3f4343[_0xe512('0x37')],qs[_0xe512('0x3d')](_0x522086[_0xe512('0x38')]['fields']));_0x55efc0[_0xe512('0x3c')]=_0x55efc0[_0xe512('0x3c')]['length']?_0x55efc0[_0xe512('0x3c')]:_0x3f4343['model'];if(_0x522086[_0xe512('0x38')]['includeAll']){_0x55efc0['include']=[{'all':!![]}];}_0x55efc0=_['merge']({},_0x55efc0,_0x522086[_0xe512('0x47')]);return db[_0xe512('0x32')][_0xe512('0x4d')](_0x55efc0)[_0xe512('0x29')](handleEntityNotFound(_0x1e9d3b,null))[_0xe512('0x29')](respondWithResult(_0x1e9d3b,null))[_0xe512('0x4b')](handleError(_0x1e9d3b,null));};exports[_0xe512('0x4e')]=function(_0x356e13,_0x283057){return db['SquareProject'][_0xe512('0x4e')](_0x356e13[_0xe512('0x4f')],{})[_0xe512('0x29')](function(_0x489241){var _0xbe68ca=_0x356e13['user'][_0xe512('0x2b')]({'plain':!![]});if(!_0xbe68ca)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xbe68ca['role']===_0xe512('0x50')){var _0x5b22a8=_0x489241[_0xe512('0x2b')]({'plain':!![]});var _0x3ab9a2=_0xe512('0x2c');return db[_0xe512('0x51')][_0xe512('0x4d')]({'where':{'name':_0x3ab9a2,'userProfileId':_0xbe68ca[_0xe512('0x52')]},'raw':!![]})[_0xe512('0x29')](function(_0x2280f1){if(_0x2280f1&&_0x2280f1[_0xe512('0x53')]===0x0){return db[_0xe512('0x2d')][_0xe512('0x4e')]({'name':_0x5b22a8['name'],'resourceId':_0x5b22a8['id'],'type':_0x2280f1['name'],'sectionId':_0x2280f1['id']},{})['then'](function(){return _0x489241;});}else{return _0x489241;}})[_0xe512('0x4b')](function(_0xbd3c7c){logger[_0xe512('0x2e')](_0xe512('0x54'),_0xbd3c7c);throw _0xbd3c7c;});}return _0x489241;})[_0xe512('0x29')](respondWithResult(_0x283057,0xc9))[_0xe512('0x4b')](handleError(_0x283057,null));};exports[_0xe512('0x28')]=function(_0x34e309,_0x3562db){if(_0x34e309[_0xe512('0x4f')]['id']){delete _0x34e309[_0xe512('0x4f')]['id'];}return db[_0xe512('0x32')][_0xe512('0x4d')]({'where':{'id':_0x34e309[_0xe512('0x55')]['id']}})[_0xe512('0x29')](handleEntityNotFound(_0x3562db,null))['then'](saveUpdates(_0x34e309[_0xe512('0x4f')],null))[_0xe512('0x29')](respondWithResult(_0x3562db,null))[_0xe512('0x4b')](handleError(_0x3562db,null));};exports['destroy']=function(_0x501dac,_0x333af8){return db[_0xe512('0x32')][_0xe512('0x4d')]({'where':{'id':_0x501dac[_0xe512('0x55')]['id']}})[_0xe512('0x29')](handleEntityNotFound(_0x333af8,null))[_0xe512('0x29')](removeEntity(_0x333af8,null))['catch'](handleError(_0x333af8,null));};exports[_0xe512('0x56')]=function(_0x30ecff,_0x2674cf,_0x51358d){return db['SquareProject'][_0xe512('0x4d')]({'where':{'id':_0x30ecff[_0xe512('0x55')]['id']}})[_0xe512('0x29')](handleEntityNotFound(_0x2674cf,null))[_0xe512('0x29')](function(_0x28ac7c){if(_0x28ac7c){return _0x28ac7c['addUsers'](_0x30ecff[_0xe512('0x4f')][_0xe512('0x57')],_['omit'](_0x30ecff[_0xe512('0x4f')],['ids','id'])||{});}})[_0xe512('0x29')](respondWithResult(_0x2674cf,null))[_0xe512('0x4b')](handleError(_0x2674cf,null));};exports[_0xe512('0x58')]=function(_0x196b54,_0x4bde5b,_0x24cad9){return db[_0xe512('0x32')][_0xe512('0x4d')]({'where':{'id':_0x196b54['params']['id']}})['then'](handleEntityNotFound(_0x4bde5b,null))[_0xe512('0x29')](function(_0x5768b8){if(_0x5768b8){return _0x5768b8[_0xe512('0x58')](_0x196b54[_0xe512('0x38')]['ids'])[_0xe512('0x29')](function(){if(_[_0xe512('0x59')](_0x196b54['query'][_0xe512('0x57')])){for(var _0x31b20a=0x0;_0x31b20a<_0x196b54[_0xe512('0x38')][_0xe512('0x57')][_0xe512('0x3e')];_0x31b20a+=0x1){socket[_0xe512('0x5a')]('userSquareProject:remove',{'UserId':Number(_0x196b54[_0xe512('0x38')][_0xe512('0x57')][_0x31b20a]),'SquareProjectId':Number(_0x196b54[_0xe512('0x55')]['id'])});}}else{socket['emit'](_0xe512('0x5b'),{'UserId':Number(_0x196b54[_0xe512('0x38')]['ids']),'SquareProjectId':Number(_0x196b54[_0xe512('0x55')]['id'])});}});}})[_0xe512('0x29')](respondWithStatusCode(_0x4bde5b,null))[_0xe512('0x4b')](handleError(_0x4bde5b,null));};exports[_0xe512('0x5c')]=function(_0x33b292,_0x5ae99b,_0x15a302){var _0x2ef721={};var _0x4eb497={};var _0x13217c;var _0xac08ae;return db['SquareProject'][_0xe512('0x5d')]({'where':{'id':_0x33b292['params']['id']}})['then'](handleEntityNotFound(_0x5ae99b,null))['then'](function(_0x574992){if(_0x574992){_0x13217c=_0x574992;_0x4eb497[_0xe512('0x37')]=_[_0xe512('0x39')](db[_0xe512('0x5e')][_0xe512('0x33')]);_0x4eb497[_0xe512('0x38')]=_['keys'](_0x33b292['query']);_0x4eb497['filters']=_[_0xe512('0x3b')](_0x4eb497[_0xe512('0x37')],_0x4eb497[_0xe512('0x38')]);_0x2ef721[_0xe512('0x3c')]=_[_0xe512('0x3b')](_0x4eb497[_0xe512('0x37')],qs[_0xe512('0x3d')](_0x33b292['query'][_0xe512('0x3d')]));_0x2ef721['attributes']=_0x2ef721[_0xe512('0x3c')]['length']?_0x2ef721[_0xe512('0x3c')]:_0x4eb497[_0xe512('0x37')];_0x2ef721[_0xe512('0x41')]=qs[_0xe512('0x42')](_0x33b292['query']['sort']);_0x2ef721['where']=qs[_0xe512('0x3a')](_[_0xe512('0x5f')](_0x33b292[_0xe512('0x38')],_0x4eb497[_0xe512('0x3a')]));if(_0x33b292['query']['filter']){_0x2ef721[_0xe512('0x44')]=_[_0xe512('0x45')](_0x2ef721['where'],{'$or':_['map'](_0x2ef721[_0xe512('0x3c')],function(_0x1c4513){var _0x2e4f73={};_0x2e4f73[_0x1c4513]={'$like':'%'+_0x33b292[_0xe512('0x38')][_0xe512('0x43')]+'%'};return _0x2e4f73;})});}_0x2ef721=_[_0xe512('0x45')]({},_0x2ef721,_0x33b292[_0xe512('0x47')]);return _0x13217c[_0xe512('0x5c')](_0x2ef721);}})[_0xe512('0x29')](function(_0x2eb481){if(_0x2eb481){_0xac08ae=_0x2eb481['length'];if(!_0x33b292[_0xe512('0x38')][_0xe512('0x3f')](_0xe512('0x40'))){_0x2ef721[_0xe512('0x22')]=qs['limit'](_0x33b292[_0xe512('0x38')]['limit']);_0x2ef721['offset']=qs[_0xe512('0x24')](_0x33b292['query'][_0xe512('0x24')]);}return _0x13217c[_0xe512('0x5c')](_0x2ef721);}})[_0xe512('0x29')](function(_0x1ec948){if(_0x1ec948){return _0x1ec948?{'count':_0xac08ae,'rows':_0x1ec948}:null;}})['then'](respondWithResult(_0x5ae99b,null))[_0xe512('0x4b')](handleError(_0x5ae99b,null));};