Built motion from commit 85328c08.|2.5.50
[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 _0x67d9=['query','keys','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','type','VIRTUAL','options','findAll','params','rawAttributes','includeAll','find','catch','create','body','role','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addUsers','ids','removeUsers','isArray','emit','userSquareProject:remove','getUsers','User','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','defaults','socket.io-emitter','redis','./squareProject.socket','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','get','SquareProjects','sendStatus','stack','name','send','index','map','SquareProject','fieldName'];(function(_0x47702f,_0x1f5009){var _0x47dd73=function(_0x14c8ab){while(--_0x14c8ab){_0x47702f['push'](_0x47702f['shift']());}};_0x47dd73(++_0x1f5009);}(_0x67d9,0xe4));var _0x967d=function(_0x4f4cfb,_0x2cdef0){_0x4f4cfb=_0x4f4cfb-0x0;var _0x59f7a1=_0x67d9[_0x4f4cfb];return _0x59f7a1;};'use strict';var emlformat=require(_0x967d('0x0'));var rimraf=require(_0x967d('0x1'));var zipdir=require(_0x967d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x967d('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x967d('0x4'));var util=require(_0x967d('0x5'));var path=require(_0x967d('0x6'));var sox=require(_0x967d('0x7'));var csv=require(_0x967d('0x8'));var ejs=require(_0x967d('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x967d('0xa'));var squel=require(_0x967d('0xb'));var crypto=require('crypto');var jsforce=require(_0x967d('0xc'));var deskjs=require(_0x967d('0xd'));var toCsv=require('to-csv');var querystring=require(_0x967d('0xe'));var Papa=require(_0x967d('0xf'));var Redis=require(_0x967d('0x10'));var authService=require(_0x967d('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x967d('0x12'));var hardwareService=require(_0x967d('0x13'));var logger=require(_0x967d('0x14'))('api');var utils=require(_0x967d('0x15'));var config=require(_0x967d('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x967d('0x17'))['db'];config['redis']=_[_0x967d('0x18')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x967d('0x19'))(new Redis(config[_0x967d('0x1a')]));require(_0x967d('0x1b'))['register'](socket);function respondWithStatusCode(_0x11ff2d,_0x53bc85){_0x53bc85=_0x53bc85||0xcc;return function(_0x379663){if(_0x379663){return _0x11ff2d['sendStatus'](_0x53bc85);}return _0x11ff2d[_0x967d('0x1c')](_0x53bc85)[_0x967d('0x1d')]();};}function respondWithResult(_0x6a8229,_0x14fd32){_0x14fd32=_0x14fd32||0xc8;return function(_0x3de09f){if(_0x3de09f){return _0x6a8229[_0x967d('0x1c')](_0x14fd32)[_0x967d('0x1e')](_0x3de09f);}};}function respondWithFilteredResult(_0x440c90,_0x236c4c){return function(_0x1813c3){if(_0x1813c3){var _0x3e3600=typeof _0x236c4c[_0x967d('0x1f')]===_0x967d('0x20')&&typeof _0x236c4c[_0x967d('0x21')]==='undefined';var _0x530f2a=_0x1813c3[_0x967d('0x22')];var _0x3af024=_0x3e3600?0x0:_0x236c4c[_0x967d('0x1f')];var _0x3246df=_0x3e3600?_0x1813c3['count']:_0x236c4c['offset']+_0x236c4c[_0x967d('0x21')];var _0x3265ac;if(_0x3246df>=_0x530f2a){_0x3246df=_0x530f2a;_0x3265ac=0xc8;}else{_0x3265ac=0xce;}_0x440c90[_0x967d('0x1c')](_0x3265ac);return _0x440c90[_0x967d('0x23')](_0x967d('0x24'),_0x3af024+'-'+_0x3246df+'/'+_0x530f2a)['json'](_0x1813c3);}return null;};}function patchUpdates(_0x519af2){return function(_0x259062){try{jsonpatch[_0x967d('0x25')](_0x259062,_0x519af2,!![]);}catch(_0xb2b093){return BPromise['reject'](_0xb2b093);}return _0x259062[_0x967d('0x26')]();};}function saveUpdates(_0xd3d067,_0x48e05a){return function(_0xdc77b0){if(_0xdc77b0){return _0xdc77b0['update'](_0xd3d067)[_0x967d('0x27')](function(_0x5e6355){return _0x5e6355;});}return null;};}function removeEntity(_0x119058,_0xf17aa){return function(_0x2b0578){if(_0x2b0578){return _0x2b0578[_0x967d('0x28')]()[_0x967d('0x27')](function(){var _0x2b1f73=_0x2b0578[_0x967d('0x29')]({'plain':!![]});var _0x1dc49d=_0x967d('0x2a');return db['UserProfileResource'][_0x967d('0x28')]({'where':{'type':_0x1dc49d,'resourceId':_0x2b1f73['id']}})[_0x967d('0x27')](function(){return _0x2b0578;});})[_0x967d('0x27')](function(){_0x119058[_0x967d('0x1c')](0xcc)[_0x967d('0x1d')]();});}};}function handleEntityNotFound(_0x40e90a,_0x2abcba){return function(_0x44d2d0){if(!_0x44d2d0){_0x40e90a[_0x967d('0x2b')](0x194);}return _0x44d2d0;};}function handleError(_0x3a9294,_0x299c92){_0x299c92=_0x299c92||0x1f4;return function(_0x1912c8){logger['error'](_0x1912c8[_0x967d('0x2c')]);if(_0x1912c8['name']){delete _0x1912c8[_0x967d('0x2d')];}_0x3a9294['status'](_0x299c92)[_0x967d('0x2e')](_0x1912c8);};}exports[_0x967d('0x2f')]=function(_0x1f1b21,_0x2d8658){var _0x1b8456={},_0x381a92={},_0x1b44fe={'count':0x0,'rows':[]};var _0x3a12c6=_[_0x967d('0x30')](db[_0x967d('0x31')]['rawAttributes'],function(_0x46f833){return{'name':_0x46f833[_0x967d('0x32')],'type':_0x46f833['type']['key']};});_0x381a92['model']=_['map'](_0x3a12c6,'name');_0x381a92[_0x967d('0x33')]=_[_0x967d('0x34')](_0x1f1b21[_0x967d('0x33')]);_0x381a92['filters']=_['intersection'](_0x381a92[_0x967d('0x35')],_0x381a92[_0x967d('0x33')]);_0x1b8456[_0x967d('0x36')]=_[_0x967d('0x37')](_0x381a92[_0x967d('0x35')],qs[_0x967d('0x38')](_0x1f1b21[_0x967d('0x33')][_0x967d('0x38')]));_0x1b8456['attributes']=_0x1b8456[_0x967d('0x36')][_0x967d('0x39')]?_0x1b8456['attributes']:_0x381a92[_0x967d('0x35')];if(!_0x1f1b21['query'][_0x967d('0x3a')](_0x967d('0x3b'))){_0x1b8456[_0x967d('0x21')]=qs['limit'](_0x1f1b21[_0x967d('0x33')][_0x967d('0x21')]);_0x1b8456['offset']=qs[_0x967d('0x1f')](_0x1f1b21['query'][_0x967d('0x1f')]);}_0x1b8456[_0x967d('0x3c')]=qs[_0x967d('0x3d')](_0x1f1b21[_0x967d('0x33')][_0x967d('0x3d')]);_0x1b8456['where']=qs[_0x967d('0x3e')](_[_0x967d('0x3f')](_0x1f1b21[_0x967d('0x33')],_0x381a92[_0x967d('0x3e')]),_0x3a12c6);if(_0x1f1b21[_0x967d('0x33')][_0x967d('0x40')]){_0x1b8456[_0x967d('0x41')]=_[_0x967d('0x42')](_0x1b8456['where'],{'$or':_['map'](_0x3a12c6,function(_0x92ddf1){if(_0x92ddf1[_0x967d('0x43')]!==_0x967d('0x44')){var _0x438f16={};_0x438f16[_0x92ddf1[_0x967d('0x2d')]]={'$like':'%'+_0x1f1b21[_0x967d('0x33')][_0x967d('0x40')]+'%'};return _0x438f16;}})});}_0x1b8456=_[_0x967d('0x42')]({},_0x1b8456,_0x1f1b21[_0x967d('0x45')]);var _0x5523a0={'where':_0x1b8456[_0x967d('0x41')]};return db[_0x967d('0x31')][_0x967d('0x22')](_0x5523a0)[_0x967d('0x27')](function(_0x3d026b){_0x1b44fe[_0x967d('0x22')]=_0x3d026b;if(_0x1f1b21[_0x967d('0x33')]['includeAll']){_0x1b8456['include']=[{'all':!![]}];}return db[_0x967d('0x31')][_0x967d('0x46')](_0x1b8456);})['then'](function(_0x33f5d1){_0x1b44fe['rows']=_0x33f5d1;return _0x1b44fe;})[_0x967d('0x27')](respondWithFilteredResult(_0x2d8658,_0x1b8456))['catch'](handleError(_0x2d8658,null));};exports['show']=function(_0x1fc08b,_0x13abd5){var _0x259c16={'raw':![],'where':{'id':_0x1fc08b[_0x967d('0x47')]['id']}},_0x2abb52={};_0x2abb52[_0x967d('0x35')]=_[_0x967d('0x34')](db[_0x967d('0x31')][_0x967d('0x48')]);_0x2abb52[_0x967d('0x33')]=_[_0x967d('0x34')](_0x1fc08b['query']);_0x2abb52[_0x967d('0x3e')]=_[_0x967d('0x37')](_0x2abb52[_0x967d('0x35')],_0x2abb52[_0x967d('0x33')]);_0x259c16['attributes']=_[_0x967d('0x37')](_0x2abb52[_0x967d('0x35')],qs['fields'](_0x1fc08b['query'][_0x967d('0x38')]));_0x259c16[_0x967d('0x36')]=_0x259c16['attributes'][_0x967d('0x39')]?_0x259c16[_0x967d('0x36')]:_0x2abb52[_0x967d('0x35')];if(_0x1fc08b['query'][_0x967d('0x49')]){_0x259c16['include']=[{'all':!![]}];}_0x259c16=_[_0x967d('0x42')]({},_0x259c16,_0x1fc08b[_0x967d('0x45')]);return db[_0x967d('0x31')][_0x967d('0x4a')](_0x259c16)['then'](handleEntityNotFound(_0x13abd5,null))['then'](respondWithResult(_0x13abd5,null))[_0x967d('0x4b')](handleError(_0x13abd5,null));};exports[_0x967d('0x4c')]=function(_0x117f01,_0x28fcc3){return db[_0x967d('0x31')][_0x967d('0x4c')](_0x117f01[_0x967d('0x4d')],{})[_0x967d('0x27')](function(_0x52dbd2){var _0x1d40db=_0x117f01['user']['get']({'plain':!![]});if(!_0x1d40db)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1d40db[_0x967d('0x4e')]===_0x967d('0x4f')){var _0x50a25b=_0x52dbd2['get']({'plain':!![]});var _0x37bb91='SquareProjects';return db[_0x967d('0x50')][_0x967d('0x4a')]({'where':{'name':_0x37bb91,'userProfileId':_0x1d40db[_0x967d('0x51')]},'raw':!![]})[_0x967d('0x27')](function(_0xd4686){if(_0xd4686&&_0xd4686[_0x967d('0x52')]===0x0){return db['UserProfileResource'][_0x967d('0x4c')]({'name':_0x50a25b[_0x967d('0x2d')],'resourceId':_0x50a25b['id'],'type':_0xd4686[_0x967d('0x2d')],'sectionId':_0xd4686['id']},{})['then'](function(){return _0x52dbd2;});}else{return _0x52dbd2;}})[_0x967d('0x4b')](function(_0x2cb801){logger[_0x967d('0x53')](_0x967d('0x54'),_0x2cb801);throw _0x2cb801;});}return _0x52dbd2;})[_0x967d('0x27')](respondWithResult(_0x28fcc3,0xc9))[_0x967d('0x4b')](handleError(_0x28fcc3,null));};exports['update']=function(_0x553b06,_0xd469e2){if(_0x553b06[_0x967d('0x4d')]['id']){delete _0x553b06[_0x967d('0x4d')]['id'];}return db[_0x967d('0x31')][_0x967d('0x4a')]({'where':{'id':_0x553b06[_0x967d('0x47')]['id']}})[_0x967d('0x27')](handleEntityNotFound(_0xd469e2,null))[_0x967d('0x27')](saveUpdates(_0x553b06[_0x967d('0x4d')],null))[_0x967d('0x27')](respondWithResult(_0xd469e2,null))[_0x967d('0x4b')](handleError(_0xd469e2,null));};exports[_0x967d('0x28')]=function(_0x53b9b7,_0x596554){return db[_0x967d('0x31')]['find']({'where':{'id':_0x53b9b7['params']['id']}})[_0x967d('0x27')](handleEntityNotFound(_0x596554,null))[_0x967d('0x27')](removeEntity(_0x596554,null))['catch'](handleError(_0x596554,null));};exports[_0x967d('0x55')]=function(_0x5b9e84,_0x3421e9,_0x3ba3e7){return db[_0x967d('0x31')][_0x967d('0x4a')]({'where':{'id':_0x5b9e84[_0x967d('0x47')]['id']}})[_0x967d('0x27')](handleEntityNotFound(_0x3421e9,null))[_0x967d('0x27')](function(_0x37ff15){if(_0x37ff15){return _0x37ff15[_0x967d('0x55')](_0x5b9e84[_0x967d('0x4d')][_0x967d('0x56')],_['omit'](_0x5b9e84['body'],[_0x967d('0x56'),'id'])||{});}})[_0x967d('0x27')](respondWithResult(_0x3421e9,null))[_0x967d('0x4b')](handleError(_0x3421e9,null));};exports[_0x967d('0x57')]=function(_0x69a896,_0x3c648d,_0xabcf81){return db['SquareProject'][_0x967d('0x4a')]({'where':{'id':_0x69a896[_0x967d('0x47')]['id']}})[_0x967d('0x27')](handleEntityNotFound(_0x3c648d,null))[_0x967d('0x27')](function(_0x478484){if(_0x478484){return _0x478484[_0x967d('0x57')](_0x69a896[_0x967d('0x33')][_0x967d('0x56')])[_0x967d('0x27')](function(){if(_[_0x967d('0x58')](_0x69a896['query'][_0x967d('0x56')])){for(var _0x58e79c=0x0;_0x58e79c<_0x69a896[_0x967d('0x33')][_0x967d('0x56')][_0x967d('0x39')];_0x58e79c+=0x1){socket[_0x967d('0x59')](_0x967d('0x5a'),{'UserId':Number(_0x69a896['query'][_0x967d('0x56')][_0x58e79c]),'SquareProjectId':Number(_0x69a896[_0x967d('0x47')]['id'])});}}else{socket[_0x967d('0x59')](_0x967d('0x5a'),{'UserId':Number(_0x69a896['query']['ids']),'SquareProjectId':Number(_0x69a896['params']['id'])});}});}})[_0x967d('0x27')](respondWithStatusCode(_0x3c648d,null))[_0x967d('0x4b')](handleError(_0x3c648d,null));};exports[_0x967d('0x5b')]=function(_0x3967a6,_0x5e6f3e,_0x18eea6){var _0x1c166c={};var _0x224e5d={};var _0x3d0ffe;var _0x4a93fa;return db[_0x967d('0x31')]['findOne']({'where':{'id':_0x3967a6['params']['id']}})[_0x967d('0x27')](handleEntityNotFound(_0x5e6f3e,null))['then'](function(_0x206a4f){if(_0x206a4f){_0x3d0ffe=_0x206a4f;_0x224e5d[_0x967d('0x35')]=_[_0x967d('0x34')](db[_0x967d('0x5c')][_0x967d('0x48')]);_0x224e5d['query']=_['keys'](_0x3967a6[_0x967d('0x33')]);_0x224e5d[_0x967d('0x3e')]=_[_0x967d('0x37')](_0x224e5d[_0x967d('0x35')],_0x224e5d['query']);_0x1c166c[_0x967d('0x36')]=_[_0x967d('0x37')](_0x224e5d['model'],qs[_0x967d('0x38')](_0x3967a6['query'][_0x967d('0x38')]));_0x1c166c[_0x967d('0x36')]=_0x1c166c[_0x967d('0x36')][_0x967d('0x39')]?_0x1c166c[_0x967d('0x36')]:_0x224e5d[_0x967d('0x35')];_0x1c166c[_0x967d('0x3c')]=qs[_0x967d('0x3d')](_0x3967a6[_0x967d('0x33')]['sort']);_0x1c166c[_0x967d('0x41')]=qs[_0x967d('0x3e')](_['pick'](_0x3967a6[_0x967d('0x33')],_0x224e5d[_0x967d('0x3e')]));if(_0x3967a6[_0x967d('0x33')]['filter']){_0x1c166c[_0x967d('0x41')]=_[_0x967d('0x42')](_0x1c166c['where'],{'$or':_[_0x967d('0x30')](_0x1c166c[_0x967d('0x36')],function(_0x3a5b50){var _0x11d1d9={};_0x11d1d9[_0x3a5b50]={'$like':'%'+_0x3967a6['query'][_0x967d('0x40')]+'%'};return _0x11d1d9;})});}_0x1c166c=_[_0x967d('0x42')]({},_0x1c166c,_0x3967a6[_0x967d('0x45')]);return _0x3d0ffe[_0x967d('0x5b')](_0x1c166c);}})['then'](function(_0x4ebf96){if(_0x4ebf96){_0x4a93fa=_0x4ebf96[_0x967d('0x39')];if(!_0x3967a6['query'][_0x967d('0x3a')](_0x967d('0x3b'))){_0x1c166c[_0x967d('0x21')]=qs['limit'](_0x3967a6[_0x967d('0x33')]['limit']);_0x1c166c[_0x967d('0x1f')]=qs[_0x967d('0x1f')](_0x3967a6[_0x967d('0x33')][_0x967d('0x1f')]);}return _0x3d0ffe[_0x967d('0x5b')](_0x1c166c);}})['then'](function(_0x3553e5){if(_0x3553e5){return _0x3553e5?{'count':_0x4a93fa,'rows':_0x3553e5}:null;}})['then'](respondWithResult(_0x5e6f3e,null))[_0x967d('0x4b')](handleError(_0x5e6f3e,null));};