Built motion from commit e6806ed6.|2.6.0
[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 _0x76e4=['SquareProject','includeAll','include','rows','show','params','length','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','getUsers','findOne','User','pick','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','register','status','end','offset','limit','undefined','count','set','Content-Range','json','reject','save','destroy','then','get','SquareProjects','UserProfileResource','sendStatus','stack','name','index','map','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options'];(function(_0x466841,_0x111ac9){var _0x42a94d=function(_0x2a2169){while(--_0x2a2169){_0x466841['push'](_0x466841['shift']());}};_0x42a94d(++_0x111ac9);}(_0x76e4,0x7f));var _0x476e=function(_0x43ff37,_0x27b37a){_0x43ff37=_0x43ff37-0x0;var _0x2001d9=_0x76e4[_0x43ff37];return _0x2001d9;};'use strict';var emlformat=require(_0x476e('0x0'));var rimraf=require(_0x476e('0x1'));var zipdir=require(_0x476e('0x2'));var jsonpatch=require(_0x476e('0x3'));var rp=require(_0x476e('0x4'));var moment=require(_0x476e('0x5'));var BPromise=require(_0x476e('0x6'));var Mustache=require(_0x476e('0x7'));var util=require(_0x476e('0x8'));var path=require(_0x476e('0x9'));var sox=require(_0x476e('0xa'));var csv=require(_0x476e('0xb'));var ejs=require(_0x476e('0xc'));var fs=require('fs');var fs_extra=require(_0x476e('0xd'));var _=require(_0x476e('0xe'));var squel=require(_0x476e('0xf'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x476e('0x10'));var toCsv=require(_0x476e('0xb'));var querystring=require(_0x476e('0x11'));var Papa=require(_0x476e('0x12'));var Redis=require(_0x476e('0x13'));var authService=require(_0x476e('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x476e('0x15'));var hardwareService=require(_0x476e('0x16'));var logger=require(_0x476e('0x17'))('api');var utils=require('../../config/utils');var config=require(_0x476e('0x18'));var licenseUtil=require(_0x476e('0x19'));var db=require(_0x476e('0x1a'))['db'];config[_0x476e('0x1b')]=_[_0x476e('0x1c')](config[_0x476e('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x476e('0x1d'))(new Redis(config['redis']));require('./squareProject.socket')[_0x476e('0x1e')](socket);function respondWithStatusCode(_0x140dfd,_0x341de9){_0x341de9=_0x341de9||0xcc;return function(_0x436d2c){if(_0x436d2c){return _0x140dfd['sendStatus'](_0x341de9);}return _0x140dfd[_0x476e('0x1f')](_0x341de9)[_0x476e('0x20')]();};}function respondWithResult(_0xac1e70,_0x40ff3f){_0x40ff3f=_0x40ff3f||0xc8;return function(_0x578e92){if(_0x578e92){return _0xac1e70[_0x476e('0x1f')](_0x40ff3f)['json'](_0x578e92);}};}function respondWithFilteredResult(_0x587316,_0x296444){return function(_0x4cf478){if(_0x4cf478){var _0x51cfd7=typeof _0x296444[_0x476e('0x21')]==='undefined'&&typeof _0x296444[_0x476e('0x22')]===_0x476e('0x23');var _0x4ac782=_0x4cf478['count'];var _0x404a32=_0x51cfd7?0x0:_0x296444[_0x476e('0x21')];var _0x5f4584=_0x51cfd7?_0x4cf478[_0x476e('0x24')]:_0x296444['offset']+_0x296444[_0x476e('0x22')];var _0x15bf43;if(_0x5f4584>=_0x4ac782){_0x5f4584=_0x4ac782;_0x15bf43=0xc8;}else{_0x15bf43=0xce;}_0x587316[_0x476e('0x1f')](_0x15bf43);return _0x587316[_0x476e('0x25')](_0x476e('0x26'),_0x404a32+'-'+_0x5f4584+'/'+_0x4ac782)[_0x476e('0x27')](_0x4cf478);}return null;};}function patchUpdates(_0x2046b3){return function(_0x200d17){try{jsonpatch['apply'](_0x200d17,_0x2046b3,!![]);}catch(_0x4b7d51){return BPromise[_0x476e('0x28')](_0x4b7d51);}return _0x200d17[_0x476e('0x29')]();};}function saveUpdates(_0x2a68c1,_0x2792b4){return function(_0x3adf9f){if(_0x3adf9f){return _0x3adf9f['update'](_0x2a68c1)['then'](function(_0x172d5c){return _0x172d5c;});}return null;};}function removeEntity(_0x26bf68,_0x5aff53){return function(_0x1a24c4){if(_0x1a24c4){return _0x1a24c4[_0x476e('0x2a')]()[_0x476e('0x2b')](function(){var _0x1bf0ce=_0x1a24c4[_0x476e('0x2c')]({'plain':!![]});var _0x24d212=_0x476e('0x2d');return db[_0x476e('0x2e')][_0x476e('0x2a')]({'where':{'type':_0x24d212,'resourceId':_0x1bf0ce['id']}})[_0x476e('0x2b')](function(){return _0x1a24c4;});})['then'](function(){_0x26bf68['status'](0xcc)[_0x476e('0x20')]();});}};}function handleEntityNotFound(_0x26cd5d,_0x5864fc){return function(_0xfadb86){if(!_0xfadb86){_0x26cd5d[_0x476e('0x2f')](0x194);}return _0xfadb86;};}function handleError(_0x5be146,_0x511d07){_0x511d07=_0x511d07||0x1f4;return function(_0x3134c9){logger['error'](_0x3134c9[_0x476e('0x30')]);if(_0x3134c9[_0x476e('0x31')]){delete _0x3134c9['name'];}_0x5be146['status'](_0x511d07)['send'](_0x3134c9);};}exports[_0x476e('0x32')]=function(_0x34ba14,_0x869f39){var _0x250770={},_0x4b1b4b={},_0xb5e652={'count':0x0,'rows':[]};var _0x4a6614=_[_0x476e('0x33')](db['SquareProject'][_0x476e('0x34')],function(_0x546aa9){return{'name':_0x546aa9[_0x476e('0x35')],'type':_0x546aa9[_0x476e('0x36')]['key']};});_0x4b1b4b[_0x476e('0x37')]=_[_0x476e('0x33')](_0x4a6614,_0x476e('0x31'));_0x4b1b4b[_0x476e('0x38')]=_[_0x476e('0x39')](_0x34ba14[_0x476e('0x38')]);_0x4b1b4b[_0x476e('0x3a')]=_['intersection'](_0x4b1b4b[_0x476e('0x37')],_0x4b1b4b[_0x476e('0x38')]);_0x250770[_0x476e('0x3b')]=_[_0x476e('0x3c')](_0x4b1b4b['model'],qs['fields'](_0x34ba14[_0x476e('0x38')][_0x476e('0x3d')]));_0x250770['attributes']=_0x250770['attributes']['length']?_0x250770[_0x476e('0x3b')]:_0x4b1b4b[_0x476e('0x37')];if(!_0x34ba14['query'][_0x476e('0x3e')](_0x476e('0x3f'))){_0x250770['limit']=qs[_0x476e('0x22')](_0x34ba14[_0x476e('0x38')]['limit']);_0x250770[_0x476e('0x21')]=qs[_0x476e('0x21')](_0x34ba14[_0x476e('0x38')]['offset']);}_0x250770[_0x476e('0x40')]=qs[_0x476e('0x41')](_0x34ba14[_0x476e('0x38')][_0x476e('0x41')]);_0x250770[_0x476e('0x42')]=qs[_0x476e('0x3a')](_['pick'](_0x34ba14[_0x476e('0x38')],_0x4b1b4b[_0x476e('0x3a')]),_0x4a6614);if(_0x34ba14[_0x476e('0x38')][_0x476e('0x43')]){_0x250770[_0x476e('0x42')]=_[_0x476e('0x44')](_0x250770[_0x476e('0x42')],{'$or':_['map'](_0x4a6614,function(_0x52a04e){if(_0x52a04e[_0x476e('0x36')]!==_0x476e('0x45')){var _0x48b87f={};_0x48b87f[_0x52a04e['name']]={'$like':'%'+_0x34ba14[_0x476e('0x38')][_0x476e('0x43')]+'%'};return _0x48b87f;}})});}_0x250770=_['merge']({},_0x250770,_0x34ba14[_0x476e('0x46')]);var _0x2e4cce={'where':_0x250770[_0x476e('0x42')]};return db[_0x476e('0x47')][_0x476e('0x24')](_0x2e4cce)['then'](function(_0x165745){_0xb5e652[_0x476e('0x24')]=_0x165745;if(_0x34ba14[_0x476e('0x38')][_0x476e('0x48')]){_0x250770[_0x476e('0x49')]=[{'all':!![]}];}return db[_0x476e('0x47')]['findAll'](_0x250770);})[_0x476e('0x2b')](function(_0x2d40fa){_0xb5e652[_0x476e('0x4a')]=_0x2d40fa;return _0xb5e652;})[_0x476e('0x2b')](respondWithFilteredResult(_0x869f39,_0x250770))['catch'](handleError(_0x869f39,null));};exports[_0x476e('0x4b')]=function(_0x3bdfd3,_0x255176){var _0xf7023d={'raw':![],'where':{'id':_0x3bdfd3[_0x476e('0x4c')]['id']}},_0x2c8c9c={};_0x2c8c9c[_0x476e('0x37')]=_['keys'](db['SquareProject'][_0x476e('0x34')]);_0x2c8c9c['query']=_[_0x476e('0x39')](_0x3bdfd3[_0x476e('0x38')]);_0x2c8c9c[_0x476e('0x3a')]=_[_0x476e('0x3c')](_0x2c8c9c[_0x476e('0x37')],_0x2c8c9c[_0x476e('0x38')]);_0xf7023d['attributes']=_[_0x476e('0x3c')](_0x2c8c9c[_0x476e('0x37')],qs['fields'](_0x3bdfd3[_0x476e('0x38')][_0x476e('0x3d')]));_0xf7023d[_0x476e('0x3b')]=_0xf7023d[_0x476e('0x3b')][_0x476e('0x4d')]?_0xf7023d['attributes']:_0x2c8c9c[_0x476e('0x37')];if(_0x3bdfd3[_0x476e('0x38')][_0x476e('0x48')]){_0xf7023d[_0x476e('0x49')]=[{'all':!![]}];}_0xf7023d=_[_0x476e('0x44')]({},_0xf7023d,_0x3bdfd3['options']);return db[_0x476e('0x47')][_0x476e('0x4e')](_0xf7023d)[_0x476e('0x2b')](handleEntityNotFound(_0x255176,null))[_0x476e('0x2b')](respondWithResult(_0x255176,null))[_0x476e('0x4f')](handleError(_0x255176,null));};exports[_0x476e('0x50')]=function(_0xc60fe9,_0x4622f0){return db['SquareProject'][_0x476e('0x50')](_0xc60fe9[_0x476e('0x51')],{})['then'](function(_0x9a9c8e){var _0x1e3679=_0xc60fe9[_0x476e('0x52')][_0x476e('0x2c')]({'plain':!![]});if(!_0x1e3679)throw new Error(_0x476e('0x53'));if(_0x1e3679[_0x476e('0x54')]===_0x476e('0x52')){var _0x4a7f84=_0x9a9c8e['get']({'plain':!![]});var _0x931c53=_0x476e('0x2d');return db['UserProfileSection']['find']({'where':{'name':_0x931c53,'userProfileId':_0x1e3679[_0x476e('0x55')]},'raw':!![]})[_0x476e('0x2b')](function(_0x387a30){if(_0x387a30&&_0x387a30[_0x476e('0x56')]===0x0){return db[_0x476e('0x2e')][_0x476e('0x50')]({'name':_0x4a7f84['name'],'resourceId':_0x4a7f84['id'],'type':_0x387a30[_0x476e('0x31')],'sectionId':_0x387a30['id']},{})[_0x476e('0x2b')](function(){return _0x9a9c8e;});}else{return _0x9a9c8e;}})[_0x476e('0x4f')](function(_0x25798a){logger[_0x476e('0x57')](_0x476e('0x58'),_0x25798a);throw _0x25798a;});}return _0x9a9c8e;})[_0x476e('0x2b')](respondWithResult(_0x4622f0,0xc9))[_0x476e('0x4f')](handleError(_0x4622f0,null));};exports['update']=function(_0x1a9199,_0x24cc95){if(_0x1a9199[_0x476e('0x51')]['id']){delete _0x1a9199[_0x476e('0x51')]['id'];}return db[_0x476e('0x47')][_0x476e('0x4e')]({'where':{'id':_0x1a9199[_0x476e('0x4c')]['id']}})[_0x476e('0x2b')](handleEntityNotFound(_0x24cc95,null))[_0x476e('0x2b')](saveUpdates(_0x1a9199[_0x476e('0x51')],null))[_0x476e('0x2b')](respondWithResult(_0x24cc95,null))[_0x476e('0x4f')](handleError(_0x24cc95,null));};exports[_0x476e('0x2a')]=function(_0x2ce88b,_0x2c6c25){return db[_0x476e('0x47')][_0x476e('0x4e')]({'where':{'id':_0x2ce88b[_0x476e('0x4c')]['id']}})[_0x476e('0x2b')](handleEntityNotFound(_0x2c6c25,null))[_0x476e('0x2b')](removeEntity(_0x2c6c25,null))[_0x476e('0x4f')](handleError(_0x2c6c25,null));};exports['addUsers']=function(_0x4cb03f,_0x43684d,_0x466f8f){return db[_0x476e('0x47')]['find']({'where':{'id':_0x4cb03f[_0x476e('0x4c')]['id']}})['then'](handleEntityNotFound(_0x43684d,null))[_0x476e('0x2b')](function(_0x484193){if(_0x484193){return _0x484193['addUsers'](_0x4cb03f[_0x476e('0x51')][_0x476e('0x59')],_[_0x476e('0x5a')](_0x4cb03f[_0x476e('0x51')],['ids','id'])||{});}})[_0x476e('0x2b')](respondWithResult(_0x43684d,null))['catch'](handleError(_0x43684d,null));};exports[_0x476e('0x5b')]=function(_0x2daec6,_0x4038fa,_0x5c51a2){return db[_0x476e('0x47')]['find']({'where':{'id':_0x2daec6[_0x476e('0x4c')]['id']}})[_0x476e('0x2b')](handleEntityNotFound(_0x4038fa,null))[_0x476e('0x2b')](function(_0x397454){if(_0x397454){return _0x397454[_0x476e('0x5b')](_0x2daec6['query']['ids'])[_0x476e('0x2b')](function(){if(_[_0x476e('0x5c')](_0x2daec6['query'][_0x476e('0x59')])){for(var _0x39fc2a=0x0;_0x39fc2a<_0x2daec6[_0x476e('0x38')][_0x476e('0x59')][_0x476e('0x4d')];_0x39fc2a+=0x1){socket[_0x476e('0x5d')](_0x476e('0x5e'),{'UserId':Number(_0x2daec6['query']['ids'][_0x39fc2a]),'SquareProjectId':Number(_0x2daec6[_0x476e('0x4c')]['id'])});}}else{socket[_0x476e('0x5d')](_0x476e('0x5e'),{'UserId':Number(_0x2daec6[_0x476e('0x38')][_0x476e('0x59')]),'SquareProjectId':Number(_0x2daec6[_0x476e('0x4c')]['id'])});}});}})[_0x476e('0x2b')](respondWithStatusCode(_0x4038fa,null))[_0x476e('0x4f')](handleError(_0x4038fa,null));};exports[_0x476e('0x5f')]=function(_0x4e46f7,_0x21e4b2,_0x967eb9){var _0x5e8252={};var _0x441637={};var _0x649d5;var _0x12917e;return db[_0x476e('0x47')][_0x476e('0x60')]({'where':{'id':_0x4e46f7[_0x476e('0x4c')]['id']}})[_0x476e('0x2b')](handleEntityNotFound(_0x21e4b2,null))['then'](function(_0x23bec5){if(_0x23bec5){_0x649d5=_0x23bec5;_0x441637[_0x476e('0x37')]=_[_0x476e('0x39')](db[_0x476e('0x61')][_0x476e('0x34')]);_0x441637[_0x476e('0x38')]=_[_0x476e('0x39')](_0x4e46f7['query']);_0x441637['filters']=_[_0x476e('0x3c')](_0x441637[_0x476e('0x37')],_0x441637[_0x476e('0x38')]);_0x5e8252[_0x476e('0x3b')]=_['intersection'](_0x441637[_0x476e('0x37')],qs[_0x476e('0x3d')](_0x4e46f7[_0x476e('0x38')][_0x476e('0x3d')]));_0x5e8252['attributes']=_0x5e8252[_0x476e('0x3b')][_0x476e('0x4d')]?_0x5e8252[_0x476e('0x3b')]:_0x441637['model'];_0x5e8252['order']=qs['sort'](_0x4e46f7[_0x476e('0x38')][_0x476e('0x41')]);_0x5e8252[_0x476e('0x42')]=qs['filters'](_[_0x476e('0x62')](_0x4e46f7[_0x476e('0x38')],_0x441637[_0x476e('0x3a')]));if(_0x4e46f7[_0x476e('0x38')][_0x476e('0x43')]){_0x5e8252[_0x476e('0x42')]=_['merge'](_0x5e8252['where'],{'$or':_[_0x476e('0x33')](_0x5e8252['attributes'],function(_0x50fe72){var _0x4a9af1={};_0x4a9af1[_0x50fe72]={'$like':'%'+_0x4e46f7['query'][_0x476e('0x43')]+'%'};return _0x4a9af1;})});}_0x5e8252=_[_0x476e('0x44')]({},_0x5e8252,_0x4e46f7[_0x476e('0x46')]);return _0x649d5[_0x476e('0x5f')](_0x5e8252);}})[_0x476e('0x2b')](function(_0x1fa3eb){if(_0x1fa3eb){_0x12917e=_0x1fa3eb['length'];if(!_0x4e46f7[_0x476e('0x38')][_0x476e('0x3e')](_0x476e('0x3f'))){_0x5e8252[_0x476e('0x22')]=qs[_0x476e('0x22')](_0x4e46f7['query'][_0x476e('0x22')]);_0x5e8252['offset']=qs['offset'](_0x4e46f7[_0x476e('0x38')][_0x476e('0x21')]);}return _0x649d5[_0x476e('0x5f')](_0x5e8252);}})[_0x476e('0x2b')](function(_0x15e192){if(_0x15e192){return _0x15e192?{'count':_0x12917e,'rows':_0x15e192}:null;}})['then'](respondWithResult(_0x21e4b2,null))[_0x476e('0x4f')](handleError(_0x21e4b2,null));};