Built motion from commit ddca4d0d.|2.5.47
[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 _0x2524=['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','findOne','User','order','options','getUsers','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','register','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','save','update','destroy','then','get','SquareProjects','UserProfileResource','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','SquareProject','include','rows','catch','show','params','includeAll','find','create','body','user'];(function(_0x1d69e9,_0x182ba1){var _0x774217=function(_0x16f4ee){while(--_0x16f4ee){_0x1d69e9['push'](_0x1d69e9['shift']());}};_0x774217(++_0x182ba1);}(_0x2524,0x135));var _0x4252=function(_0xcf3361,_0x4887e2){_0xcf3361=_0xcf3361-0x0;var _0x1a9bc7=_0x2524[_0xcf3361];return _0x1a9bc7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4252('0x0'));var zipdir=require(_0x4252('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4252('0x2'));var moment=require(_0x4252('0x3'));var BPromise=require(_0x4252('0x4'));var Mustache=require(_0x4252('0x5'));var util=require(_0x4252('0x6'));var path=require(_0x4252('0x7'));var sox=require(_0x4252('0x8'));var csv=require(_0x4252('0x9'));var ejs=require(_0x4252('0xa'));var fs=require('fs');var fs_extra=require(_0x4252('0xb'));var _=require('lodash');var squel=require(_0x4252('0xc'));var crypto=require(_0x4252('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x4252('0xe'));var toCsv=require(_0x4252('0x9'));var querystring=require(_0x4252('0xf'));var Papa=require(_0x4252('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4252('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4252('0x12'));var logger=require(_0x4252('0x13'))(_0x4252('0x14'));var utils=require('../../config/utils');var config=require(_0x4252('0x15'));var licenseUtil=require(_0x4252('0x16'));var db=require(_0x4252('0x17'))['db'];config['redis']=_[_0x4252('0x18')](config[_0x4252('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4252('0x19')]));require('./squareProject.socket')[_0x4252('0x1a')](socket);function respondWithStatusCode(_0x486789,_0x1e6017){_0x1e6017=_0x1e6017||0xcc;return function(_0x243acb){if(_0x243acb){return _0x486789[_0x4252('0x1b')](_0x1e6017);}return _0x486789['status'](_0x1e6017)['end']();};}function respondWithResult(_0xd93813,_0x35e93f){_0x35e93f=_0x35e93f||0xc8;return function(_0x3592ac){if(_0x3592ac){return _0xd93813[_0x4252('0x1c')](_0x35e93f)[_0x4252('0x1d')](_0x3592ac);}};}function respondWithFilteredResult(_0x34cf1c,_0x2c13d8){return function(_0xb14d1a){if(_0xb14d1a){var _0xf9ff50=typeof _0x2c13d8[_0x4252('0x1e')]===_0x4252('0x1f')&&typeof _0x2c13d8[_0x4252('0x20')]==='undefined';var _0x2c3908=_0xb14d1a[_0x4252('0x21')];var _0x5ec3ee=_0xf9ff50?0x0:_0x2c13d8[_0x4252('0x1e')];var _0x473177=_0xf9ff50?_0xb14d1a[_0x4252('0x21')]:_0x2c13d8['offset']+_0x2c13d8['limit'];var _0x3a71ed;if(_0x473177>=_0x2c3908){_0x473177=_0x2c3908;_0x3a71ed=0xc8;}else{_0x3a71ed=0xce;}_0x34cf1c['status'](_0x3a71ed);return _0x34cf1c['set'](_0x4252('0x22'),_0x5ec3ee+'-'+_0x473177+'/'+_0x2c3908)[_0x4252('0x1d')](_0xb14d1a);}return null;};}function patchUpdates(_0x21b0c4){return function(_0x26a72c){try{jsonpatch[_0x4252('0x23')](_0x26a72c,_0x21b0c4,!![]);}catch(_0x654283){return BPromise['reject'](_0x654283);}return _0x26a72c[_0x4252('0x24')]();};}function saveUpdates(_0x44cae8,_0x21f99c){return function(_0x478e39){if(_0x478e39){return _0x478e39[_0x4252('0x25')](_0x44cae8)['then'](function(_0x5bf491){return _0x5bf491;});}return null;};}function removeEntity(_0x5e7632,_0xae22f7){return function(_0x802bd8){if(_0x802bd8){return _0x802bd8[_0x4252('0x26')]()[_0x4252('0x27')](function(){var _0xbf05b9=_0x802bd8[_0x4252('0x28')]({'plain':!![]});var _0x1c784c=_0x4252('0x29');return db[_0x4252('0x2a')]['destroy']({'where':{'type':_0x1c784c,'resourceId':_0xbf05b9['id']}})[_0x4252('0x27')](function(){return _0x802bd8;});})['then'](function(){_0x5e7632[_0x4252('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x31e5b8,_0x1ed02c){return function(_0x65d705){if(!_0x65d705){_0x31e5b8[_0x4252('0x1b')](0x194);}return _0x65d705;};}function handleError(_0xb373ad,_0x5470fe){_0x5470fe=_0x5470fe||0x1f4;return function(_0x4560ef){logger[_0x4252('0x2b')](_0x4560ef[_0x4252('0x2c')]);if(_0x4560ef['name']){delete _0x4560ef[_0x4252('0x2d')];}_0xb373ad['status'](_0x5470fe)[_0x4252('0x2e')](_0x4560ef);};}exports['index']=function(_0x42d26d,_0x3b9896){var _0x156e2b={},_0x41772f={},_0xd3efc1={'count':0x0,'rows':[]};var _0x7d1243=_[_0x4252('0x2f')](db['SquareProject'][_0x4252('0x30')],function(_0xd0ec22){return{'name':_0xd0ec22[_0x4252('0x31')],'type':_0xd0ec22[_0x4252('0x32')][_0x4252('0x33')]};});_0x41772f[_0x4252('0x34')]=_['map'](_0x7d1243,_0x4252('0x2d'));_0x41772f[_0x4252('0x35')]=_[_0x4252('0x36')](_0x42d26d['query']);_0x41772f[_0x4252('0x37')]=_[_0x4252('0x38')](_0x41772f[_0x4252('0x34')],_0x41772f[_0x4252('0x35')]);_0x156e2b['attributes']=_['intersection'](_0x41772f[_0x4252('0x34')],qs[_0x4252('0x39')](_0x42d26d[_0x4252('0x35')]['fields']));_0x156e2b['attributes']=_0x156e2b[_0x4252('0x3a')][_0x4252('0x3b')]?_0x156e2b[_0x4252('0x3a')]:_0x41772f[_0x4252('0x34')];if(!_0x42d26d[_0x4252('0x35')][_0x4252('0x3c')](_0x4252('0x3d'))){_0x156e2b[_0x4252('0x20')]=qs[_0x4252('0x20')](_0x42d26d[_0x4252('0x35')]['limit']);_0x156e2b[_0x4252('0x1e')]=qs['offset'](_0x42d26d[_0x4252('0x35')][_0x4252('0x1e')]);}_0x156e2b['order']=qs[_0x4252('0x3e')](_0x42d26d[_0x4252('0x35')][_0x4252('0x3e')]);_0x156e2b[_0x4252('0x3f')]=qs[_0x4252('0x37')](_[_0x4252('0x40')](_0x42d26d[_0x4252('0x35')],_0x41772f[_0x4252('0x37')]),_0x7d1243);if(_0x42d26d[_0x4252('0x35')][_0x4252('0x41')]){_0x156e2b['where']=_['merge'](_0x156e2b['where'],{'$or':_[_0x4252('0x2f')](_0x7d1243,function(_0x1180b6){if(_0x1180b6[_0x4252('0x32')]!==_0x4252('0x42')){var _0x37e8b2={};_0x37e8b2[_0x1180b6[_0x4252('0x2d')]]={'$like':'%'+_0x42d26d[_0x4252('0x35')][_0x4252('0x41')]+'%'};return _0x37e8b2;}})});}_0x156e2b=_[_0x4252('0x43')]({},_0x156e2b,_0x42d26d['options']);var _0x4af3c7={'where':_0x156e2b[_0x4252('0x3f')]};return db[_0x4252('0x44')][_0x4252('0x21')](_0x4af3c7)[_0x4252('0x27')](function(_0x5d9f5f){_0xd3efc1[_0x4252('0x21')]=_0x5d9f5f;if(_0x42d26d[_0x4252('0x35')]['includeAll']){_0x156e2b[_0x4252('0x45')]=[{'all':!![]}];}return db[_0x4252('0x44')]['findAll'](_0x156e2b);})['then'](function(_0x1e8b07){_0xd3efc1[_0x4252('0x46')]=_0x1e8b07;return _0xd3efc1;})[_0x4252('0x27')](respondWithFilteredResult(_0x3b9896,_0x156e2b))[_0x4252('0x47')](handleError(_0x3b9896,null));};exports[_0x4252('0x48')]=function(_0x4e9c81,_0x2922e4){var _0x4ebfbb={'raw':![],'where':{'id':_0x4e9c81[_0x4252('0x49')]['id']}},_0x5f4e87={};_0x5f4e87[_0x4252('0x34')]=_['keys'](db[_0x4252('0x44')][_0x4252('0x30')]);_0x5f4e87['query']=_[_0x4252('0x36')](_0x4e9c81[_0x4252('0x35')]);_0x5f4e87[_0x4252('0x37')]=_[_0x4252('0x38')](_0x5f4e87[_0x4252('0x34')],_0x5f4e87['query']);_0x4ebfbb[_0x4252('0x3a')]=_[_0x4252('0x38')](_0x5f4e87[_0x4252('0x34')],qs[_0x4252('0x39')](_0x4e9c81[_0x4252('0x35')][_0x4252('0x39')]));_0x4ebfbb[_0x4252('0x3a')]=_0x4ebfbb[_0x4252('0x3a')][_0x4252('0x3b')]?_0x4ebfbb[_0x4252('0x3a')]:_0x5f4e87['model'];if(_0x4e9c81['query'][_0x4252('0x4a')]){_0x4ebfbb[_0x4252('0x45')]=[{'all':!![]}];}_0x4ebfbb=_[_0x4252('0x43')]({},_0x4ebfbb,_0x4e9c81['options']);return db['SquareProject'][_0x4252('0x4b')](_0x4ebfbb)[_0x4252('0x27')](handleEntityNotFound(_0x2922e4,null))['then'](respondWithResult(_0x2922e4,null))[_0x4252('0x47')](handleError(_0x2922e4,null));};exports[_0x4252('0x4c')]=function(_0x5dc30e,_0x1622b8){return db[_0x4252('0x44')][_0x4252('0x4c')](_0x5dc30e[_0x4252('0x4d')],{})['then'](function(_0x4f9130){var _0x1df93f=_0x5dc30e[_0x4252('0x4e')][_0x4252('0x28')]({'plain':!![]});if(!_0x1df93f)throw new Error(_0x4252('0x4f'));if(_0x1df93f[_0x4252('0x50')]==='user'){var _0x19ebca=_0x4f9130['get']({'plain':!![]});var _0x226967='SquareProjects';return db[_0x4252('0x51')][_0x4252('0x4b')]({'where':{'name':_0x226967,'userProfileId':_0x1df93f[_0x4252('0x52')]},'raw':!![]})[_0x4252('0x27')](function(_0x5187a3){if(_0x5187a3&&_0x5187a3[_0x4252('0x53')]===0x0){return db[_0x4252('0x2a')]['create']({'name':_0x19ebca['name'],'resourceId':_0x19ebca['id'],'type':_0x5187a3[_0x4252('0x2d')],'sectionId':_0x5187a3['id']},{})[_0x4252('0x27')](function(){return _0x4f9130;});}else{return _0x4f9130;}})[_0x4252('0x47')](function(_0x5d5b05){logger['error'](_0x4252('0x54'),_0x5d5b05);throw _0x5d5b05;});}return _0x4f9130;})[_0x4252('0x27')](respondWithResult(_0x1622b8,0xc9))[_0x4252('0x47')](handleError(_0x1622b8,null));};exports[_0x4252('0x25')]=function(_0x42b212,_0x6b614e){if(_0x42b212['body']['id']){delete _0x42b212[_0x4252('0x4d')]['id'];}return db[_0x4252('0x44')][_0x4252('0x4b')]({'where':{'id':_0x42b212[_0x4252('0x49')]['id']}})[_0x4252('0x27')](handleEntityNotFound(_0x6b614e,null))[_0x4252('0x27')](saveUpdates(_0x42b212[_0x4252('0x4d')],null))[_0x4252('0x27')](respondWithResult(_0x6b614e,null))['catch'](handleError(_0x6b614e,null));};exports[_0x4252('0x26')]=function(_0x395337,_0x56bbff){return db[_0x4252('0x44')]['find']({'where':{'id':_0x395337['params']['id']}})[_0x4252('0x27')](handleEntityNotFound(_0x56bbff,null))[_0x4252('0x27')](removeEntity(_0x56bbff,null))[_0x4252('0x47')](handleError(_0x56bbff,null));};exports[_0x4252('0x55')]=function(_0x527214,_0x130a09,_0x196584){return db[_0x4252('0x44')][_0x4252('0x4b')]({'where':{'id':_0x527214[_0x4252('0x49')]['id']}})[_0x4252('0x27')](handleEntityNotFound(_0x130a09,null))[_0x4252('0x27')](function(_0x4754c9){if(_0x4754c9){return _0x4754c9[_0x4252('0x55')](_0x527214[_0x4252('0x4d')]['ids'],_[_0x4252('0x56')](_0x527214['body'],[_0x4252('0x57'),'id'])||{});}})['then'](respondWithResult(_0x130a09,null))[_0x4252('0x47')](handleError(_0x130a09,null));};exports['removeUsers']=function(_0x2af462,_0xc2b3f4,_0x5502be){return db[_0x4252('0x44')][_0x4252('0x4b')]({'where':{'id':_0x2af462[_0x4252('0x49')]['id']}})['then'](handleEntityNotFound(_0xc2b3f4,null))[_0x4252('0x27')](function(_0x7f69e1){if(_0x7f69e1){return _0x7f69e1[_0x4252('0x58')](_0x2af462[_0x4252('0x35')]['ids'])[_0x4252('0x27')](function(){if(_[_0x4252('0x59')](_0x2af462[_0x4252('0x35')]['ids'])){for(var _0x8b8b8e=0x0;_0x8b8b8e<_0x2af462[_0x4252('0x35')][_0x4252('0x57')][_0x4252('0x3b')];_0x8b8b8e+=0x1){socket[_0x4252('0x5a')]('userSquareProject:remove',{'UserId':Number(_0x2af462['query'][_0x4252('0x57')][_0x8b8b8e]),'SquareProjectId':Number(_0x2af462[_0x4252('0x49')]['id'])});}}else{socket[_0x4252('0x5a')](_0x4252('0x5b'),{'UserId':Number(_0x2af462['query'][_0x4252('0x57')]),'SquareProjectId':Number(_0x2af462[_0x4252('0x49')]['id'])});}});}})[_0x4252('0x27')](respondWithStatusCode(_0xc2b3f4,null))[_0x4252('0x47')](handleError(_0xc2b3f4,null));};exports['getUsers']=function(_0x325f06,_0x14e812,_0x3149d0){var _0x5941d1={};var _0xf7c3c={};var _0x162763;var _0x285c68;return db[_0x4252('0x44')][_0x4252('0x5c')]({'where':{'id':_0x325f06['params']['id']}})['then'](handleEntityNotFound(_0x14e812,null))[_0x4252('0x27')](function(_0xd8b9c0){if(_0xd8b9c0){_0x162763=_0xd8b9c0;_0xf7c3c['model']=_[_0x4252('0x36')](db[_0x4252('0x5d')]['rawAttributes']);_0xf7c3c[_0x4252('0x35')]=_[_0x4252('0x36')](_0x325f06['query']);_0xf7c3c[_0x4252('0x37')]=_[_0x4252('0x38')](_0xf7c3c['model'],_0xf7c3c[_0x4252('0x35')]);_0x5941d1[_0x4252('0x3a')]=_[_0x4252('0x38')](_0xf7c3c[_0x4252('0x34')],qs[_0x4252('0x39')](_0x325f06[_0x4252('0x35')]['fields']));_0x5941d1['attributes']=_0x5941d1['attributes']['length']?_0x5941d1[_0x4252('0x3a')]:_0xf7c3c['model'];_0x5941d1[_0x4252('0x5e')]=qs[_0x4252('0x3e')](_0x325f06[_0x4252('0x35')][_0x4252('0x3e')]);_0x5941d1[_0x4252('0x3f')]=qs[_0x4252('0x37')](_[_0x4252('0x40')](_0x325f06['query'],_0xf7c3c[_0x4252('0x37')]));if(_0x325f06['query'][_0x4252('0x41')]){_0x5941d1['where']=_[_0x4252('0x43')](_0x5941d1[_0x4252('0x3f')],{'$or':_[_0x4252('0x2f')](_0x5941d1[_0x4252('0x3a')],function(_0x4227a7){var _0x59ef06={};_0x59ef06[_0x4227a7]={'$like':'%'+_0x325f06[_0x4252('0x35')][_0x4252('0x41')]+'%'};return _0x59ef06;})});}_0x5941d1=_[_0x4252('0x43')]({},_0x5941d1,_0x325f06[_0x4252('0x5f')]);return _0x162763[_0x4252('0x60')](_0x5941d1);}})[_0x4252('0x27')](function(_0x32fa18){if(_0x32fa18){_0x285c68=_0x32fa18['length'];if(!_0x325f06[_0x4252('0x35')][_0x4252('0x3c')]('nolimit')){_0x5941d1[_0x4252('0x20')]=qs[_0x4252('0x20')](_0x325f06['query'][_0x4252('0x20')]);_0x5941d1[_0x4252('0x1e')]=qs[_0x4252('0x1e')](_0x325f06[_0x4252('0x35')][_0x4252('0x1e')]);}return _0x162763[_0x4252('0x60')](_0x5941d1);}})['then'](function(_0x34b7e0){if(_0x34b7e0){return _0x34b7e0?{'count':_0x285c68,'rows':_0x34b7e0}:null;}})[_0x4252('0x27')](respondWithResult(_0x14e812,null))[_0x4252('0x47')](handleError(_0x14e812,null));};