71a803a1c98ce1cffa76d068e13faad4ec41106c
[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 _0xe204=['fields','length','hasOwnProperty','offset','order','sort','where','filters','pick','filter','VIRTUAL','merge','include','rows','catch','params','keys','rawAttributes','includeAll','options','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','error','body','addUsers','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','User','getUsers','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','defaults','redis','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','SquareProjects','UserProfileResource','stack','name','send','SquareProject','fieldName','type','model','map','query','attributes','intersection'];(function(_0x3314a3,_0x712212){var _0xc5d6a4=function(_0x34cac2){while(--_0x34cac2){_0x3314a3['push'](_0x3314a3['shift']());}};_0xc5d6a4(++_0x712212);}(_0xe204,0x196));var _0x4e20=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe204[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4e20('0x0'));var jsonpatch=require(_0x4e20('0x1'));var rp=require('request-promise');var moment=require(_0x4e20('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x4e20('0x3'));var util=require(_0x4e20('0x4'));var path=require('path');var sox=require(_0x4e20('0x5'));var csv=require(_0x4e20('0x6'));var ejs=require(_0x4e20('0x7'));var fs=require('fs');var fs_extra=require(_0x4e20('0x8'));var _=require(_0x4e20('0x9'));var squel=require('squel');var crypto=require(_0x4e20('0xa'));var jsforce=require(_0x4e20('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x4e20('0x6'));var querystring=require(_0x4e20('0xc'));var Papa=require(_0x4e20('0xd'));var Redis=require(_0x4e20('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x4e20('0xf'));var hardwareService=require(_0x4e20('0x10'));var logger=require(_0x4e20('0x11'))(_0x4e20('0x12'));var utils=require(_0x4e20('0x13'));var config=require(_0x4e20('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0x4e20('0x15')](config[_0x4e20('0x16')],{'host':_0x4e20('0x17'),'port':0x18eb});var socket=require(_0x4e20('0x18'))(new Redis(config['redis']));require(_0x4e20('0x19'))[_0x4e20('0x1a')](socket);function respondWithStatusCode(_0x44dfac,_0x56fcb9){_0x56fcb9=_0x56fcb9||0xcc;return function(_0x109d2d){if(_0x109d2d){return _0x44dfac[_0x4e20('0x1b')](_0x56fcb9);}return _0x44dfac[_0x4e20('0x1c')](_0x56fcb9)[_0x4e20('0x1d')]();};}function respondWithResult(_0x4ec530,_0x2cc981){_0x2cc981=_0x2cc981||0xc8;return function(_0x9f5a69){if(_0x9f5a69){return _0x4ec530['status'](_0x2cc981)[_0x4e20('0x1e')](_0x9f5a69);}};}function respondWithFilteredResult(_0x2c7ca4,_0x2382d3){return function(_0xea89e9){if(_0xea89e9){var _0x2a28ee=_0xea89e9[_0x4e20('0x1f')],_0x48e105=_0x2382d3['offset'],_0x31d571=_0x2382d3['offset']+_0x2382d3[_0x4e20('0x20')],_0x429018;if(_0x31d571>=_0x2a28ee){_0x31d571=_0x2a28ee;_0x429018=0xc8;}else{_0x429018=0xce;}_0x2c7ca4[_0x4e20('0x1c')](_0x429018);return _0x2c7ca4[_0x4e20('0x21')](_0x4e20('0x22'),_0x48e105+'-'+_0x31d571+'/'+_0x2a28ee)[_0x4e20('0x1e')](_0xea89e9);}return null;};}function patchUpdates(_0x557314){return function(_0x38704b){try{jsonpatch[_0x4e20('0x23')](_0x38704b,_0x557314,!![]);}catch(_0x2a4c3a){return BPromise[_0x4e20('0x24')](_0x2a4c3a);}return _0x38704b[_0x4e20('0x25')]();};}function saveUpdates(_0x229a2e,_0x2c9a3b){return function(_0x1ae0bf){if(_0x1ae0bf){return _0x1ae0bf[_0x4e20('0x26')](_0x229a2e)[_0x4e20('0x27')](function(_0x5318e0){return _0x5318e0;});}return null;};}function removeEntity(_0x9fe972,_0x413ac4){return function(_0x3e4e6a){if(_0x3e4e6a){return _0x3e4e6a[_0x4e20('0x28')]()['then'](function(){var _0x2a54b3=_0x3e4e6a['get']({'plain':!![]});var _0x4797db=_0x4e20('0x29');return db[_0x4e20('0x2a')][_0x4e20('0x28')]({'where':{'type':_0x4797db,'resourceId':_0x2a54b3['id']}})[_0x4e20('0x27')](function(){return _0x3e4e6a;});})[_0x4e20('0x27')](function(){_0x9fe972[_0x4e20('0x1c')](0xcc)[_0x4e20('0x1d')]();});}};}function handleEntityNotFound(_0xdb8ebd,_0x46786a){return function(_0x24666a){if(!_0x24666a){_0xdb8ebd['sendStatus'](0x194);}return _0x24666a;};}function handleError(_0x37d42f,_0x15e182){_0x15e182=_0x15e182||0x1f4;return function(_0x1a7893){logger['error'](_0x1a7893[_0x4e20('0x2b')]);if(_0x1a7893['name']){delete _0x1a7893[_0x4e20('0x2c')];}_0x37d42f[_0x4e20('0x1c')](_0x15e182)[_0x4e20('0x2d')](_0x1a7893);};}exports['index']=function(_0x2d9078,_0x572fa2){var _0x420745={},_0x20f782={},_0x4f238e={'count':0x0,'rows':[]};var _0x4c1285=_['map'](db[_0x4e20('0x2e')]['rawAttributes'],function(_0x578e08){return{'name':_0x578e08[_0x4e20('0x2f')],'type':_0x578e08[_0x4e20('0x30')]['key']};});_0x20f782[_0x4e20('0x31')]=_[_0x4e20('0x32')](_0x4c1285,_0x4e20('0x2c'));_0x20f782['query']=_['keys'](_0x2d9078[_0x4e20('0x33')]);_0x20f782['filters']=_['intersection'](_0x20f782[_0x4e20('0x31')],_0x20f782[_0x4e20('0x33')]);_0x420745[_0x4e20('0x34')]=_[_0x4e20('0x35')](_0x20f782[_0x4e20('0x31')],qs['fields'](_0x2d9078[_0x4e20('0x33')][_0x4e20('0x36')]));_0x420745[_0x4e20('0x34')]=_0x420745[_0x4e20('0x34')][_0x4e20('0x37')]?_0x420745['attributes']:_0x20f782[_0x4e20('0x31')];if(!_0x2d9078['query'][_0x4e20('0x38')]('nolimit')){_0x420745['limit']=qs[_0x4e20('0x20')](_0x2d9078['query'][_0x4e20('0x20')]);_0x420745[_0x4e20('0x39')]=qs['offset'](_0x2d9078[_0x4e20('0x33')][_0x4e20('0x39')]);}_0x420745[_0x4e20('0x3a')]=qs[_0x4e20('0x3b')](_0x2d9078['query'][_0x4e20('0x3b')]);_0x420745[_0x4e20('0x3c')]=qs[_0x4e20('0x3d')](_[_0x4e20('0x3e')](_0x2d9078[_0x4e20('0x33')],_0x20f782['filters']),_0x4c1285);if(_0x2d9078['query'][_0x4e20('0x3f')]){_0x420745['where']=_['merge'](_0x420745[_0x4e20('0x3c')],{'$or':_[_0x4e20('0x32')](_0x4c1285,function(_0x367bbe){if(_0x367bbe['type']!==_0x4e20('0x40')){var _0x12173f={};_0x12173f[_0x367bbe[_0x4e20('0x2c')]]={'$like':'%'+_0x2d9078[_0x4e20('0x33')][_0x4e20('0x3f')]+'%'};return _0x12173f;}})});}_0x420745=_[_0x4e20('0x41')]({},_0x420745,_0x2d9078['options']);var _0x598dc7={'where':_0x420745[_0x4e20('0x3c')]};return db['SquareProject'][_0x4e20('0x1f')](_0x598dc7)[_0x4e20('0x27')](function(_0x5f2f5f){_0x4f238e[_0x4e20('0x1f')]=_0x5f2f5f;if(_0x2d9078[_0x4e20('0x33')]['includeAll']){_0x420745[_0x4e20('0x42')]=[{'all':!![]}];}return db['SquareProject']['findAll'](_0x420745);})[_0x4e20('0x27')](function(_0x1d10bb){_0x4f238e[_0x4e20('0x43')]=_0x1d10bb;return _0x4f238e;})[_0x4e20('0x27')](respondWithFilteredResult(_0x572fa2,_0x420745))[_0x4e20('0x44')](handleError(_0x572fa2,null));};exports['show']=function(_0x18d4f8,_0xbc840e){var _0x1cfe35={'raw':![],'where':{'id':_0x18d4f8[_0x4e20('0x45')]['id']}},_0x3658e7={};_0x3658e7[_0x4e20('0x31')]=_[_0x4e20('0x46')](db[_0x4e20('0x2e')][_0x4e20('0x47')]);_0x3658e7[_0x4e20('0x33')]=_[_0x4e20('0x46')](_0x18d4f8['query']);_0x3658e7[_0x4e20('0x3d')]=_['intersection'](_0x3658e7['model'],_0x3658e7['query']);_0x1cfe35[_0x4e20('0x34')]=_[_0x4e20('0x35')](_0x3658e7[_0x4e20('0x31')],qs[_0x4e20('0x36')](_0x18d4f8[_0x4e20('0x33')][_0x4e20('0x36')]));_0x1cfe35[_0x4e20('0x34')]=_0x1cfe35[_0x4e20('0x34')][_0x4e20('0x37')]?_0x1cfe35[_0x4e20('0x34')]:_0x3658e7['model'];if(_0x18d4f8[_0x4e20('0x33')][_0x4e20('0x48')]){_0x1cfe35[_0x4e20('0x42')]=[{'all':!![]}];}_0x1cfe35=_[_0x4e20('0x41')]({},_0x1cfe35,_0x18d4f8[_0x4e20('0x49')]);return db[_0x4e20('0x2e')][_0x4e20('0x4a')](_0x1cfe35)['then'](handleEntityNotFound(_0xbc840e,null))['then'](respondWithResult(_0xbc840e,null))['catch'](handleError(_0xbc840e,null));};exports['create']=function(_0x175fca,_0x2240a6){return db['SquareProject'][_0x4e20('0x4b')](_0x175fca['body'],{})[_0x4e20('0x27')](function(_0x302df5){var _0x225d5c=_0x175fca[_0x4e20('0x4c')][_0x4e20('0x4d')]({'plain':!![]});if(!_0x225d5c)throw new Error(_0x4e20('0x4e'));if(_0x225d5c[_0x4e20('0x4f')]===_0x4e20('0x4c')){var _0x5c341a=_0x302df5[_0x4e20('0x4d')]({'plain':!![]});var _0x379d3b='SquareProjects';return db['UserProfileSection']['find']({'where':{'name':_0x379d3b,'userProfileId':_0x225d5c[_0x4e20('0x50')]},'raw':!![]})[_0x4e20('0x27')](function(_0x99144c){if(_0x99144c&&_0x99144c['autoAssociation']===0x0){return db[_0x4e20('0x2a')][_0x4e20('0x4b')]({'name':_0x5c341a[_0x4e20('0x2c')],'resourceId':_0x5c341a['id'],'type':_0x99144c[_0x4e20('0x2c')],'sectionId':_0x99144c['id']},{})[_0x4e20('0x27')](function(){return _0x302df5;});}else{return _0x302df5;}})[_0x4e20('0x44')](function(_0x1a4271){logger[_0x4e20('0x51')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1a4271);throw _0x1a4271;});}return _0x302df5;})[_0x4e20('0x27')](respondWithResult(_0x2240a6,0xc9))[_0x4e20('0x44')](handleError(_0x2240a6,null));};exports[_0x4e20('0x26')]=function(_0x427443,_0x538529){if(_0x427443[_0x4e20('0x52')]['id']){delete _0x427443[_0x4e20('0x52')]['id'];}return db[_0x4e20('0x2e')][_0x4e20('0x4a')]({'where':{'id':_0x427443['params']['id']}})[_0x4e20('0x27')](handleEntityNotFound(_0x538529,null))[_0x4e20('0x27')](saveUpdates(_0x427443[_0x4e20('0x52')],null))[_0x4e20('0x27')](respondWithResult(_0x538529,null))[_0x4e20('0x44')](handleError(_0x538529,null));};exports[_0x4e20('0x28')]=function(_0x175ba6,_0x2070c2){return db['SquareProject'][_0x4e20('0x4a')]({'where':{'id':_0x175ba6[_0x4e20('0x45')]['id']}})[_0x4e20('0x27')](handleEntityNotFound(_0x2070c2,null))[_0x4e20('0x27')](removeEntity(_0x2070c2,null))[_0x4e20('0x44')](handleError(_0x2070c2,null));};exports[_0x4e20('0x53')]=function(_0x5fb475,_0x2e6724,_0x1e4c44){return db['SquareProject'][_0x4e20('0x4a')]({'where':{'id':_0x5fb475[_0x4e20('0x45')]['id']}})[_0x4e20('0x27')](handleEntityNotFound(_0x2e6724,null))['then'](function(_0x38300e){if(_0x38300e){return _0x38300e[_0x4e20('0x53')](_0x5fb475[_0x4e20('0x52')][_0x4e20('0x54')],_[_0x4e20('0x55')](_0x5fb475['body'],['ids','id'])||{});}})['then'](respondWithResult(_0x2e6724,null))[_0x4e20('0x44')](handleError(_0x2e6724,null));};exports[_0x4e20('0x56')]=function(_0x3c5c55,_0x5acb49,_0x5878e4){return db[_0x4e20('0x2e')][_0x4e20('0x4a')]({'where':{'id':_0x3c5c55[_0x4e20('0x45')]['id']}})[_0x4e20('0x27')](handleEntityNotFound(_0x5acb49,null))[_0x4e20('0x27')](function(_0x21980a){if(_0x21980a){return _0x21980a[_0x4e20('0x56')](_0x3c5c55[_0x4e20('0x33')][_0x4e20('0x54')])[_0x4e20('0x27')](function(){if(_[_0x4e20('0x57')](_0x3c5c55['query']['ids'])){for(var _0x1b53bf=0x0;_0x1b53bf<_0x3c5c55[_0x4e20('0x33')]['ids'][_0x4e20('0x37')];_0x1b53bf+=0x1){socket[_0x4e20('0x58')](_0x4e20('0x59'),{'UserId':Number(_0x3c5c55[_0x4e20('0x33')][_0x4e20('0x54')][_0x1b53bf]),'SquareProjectId':Number(_0x3c5c55[_0x4e20('0x45')]['id'])});}}else{socket['emit'](_0x4e20('0x59'),{'UserId':Number(_0x3c5c55[_0x4e20('0x33')][_0x4e20('0x54')]),'SquareProjectId':Number(_0x3c5c55[_0x4e20('0x45')]['id'])});}});}})['then'](respondWithStatusCode(_0x5acb49,null))[_0x4e20('0x44')](handleError(_0x5acb49,null));};exports['getUsers']=function(_0x5bfe84,_0x4e3b74,_0x271604){var _0x16ec52={};var _0x54e52f={};var _0x4c4800;var _0x28edb7;return db[_0x4e20('0x2e')]['findOne']({'where':{'id':_0x5bfe84[_0x4e20('0x45')]['id']}})[_0x4e20('0x27')](handleEntityNotFound(_0x4e3b74,null))['then'](function(_0x410ae0){if(_0x410ae0){_0x4c4800=_0x410ae0;_0x54e52f[_0x4e20('0x31')]=_['keys'](db[_0x4e20('0x5a')]['rawAttributes']);_0x54e52f['query']=_[_0x4e20('0x46')](_0x5bfe84[_0x4e20('0x33')]);_0x54e52f[_0x4e20('0x3d')]=_['intersection'](_0x54e52f[_0x4e20('0x31')],_0x54e52f[_0x4e20('0x33')]);_0x16ec52['attributes']=_[_0x4e20('0x35')](_0x54e52f[_0x4e20('0x31')],qs[_0x4e20('0x36')](_0x5bfe84['query']['fields']));_0x16ec52[_0x4e20('0x34')]=_0x16ec52[_0x4e20('0x34')]['length']?_0x16ec52['attributes']:_0x54e52f['model'];_0x16ec52['order']=qs[_0x4e20('0x3b')](_0x5bfe84[_0x4e20('0x33')]['sort']);_0x16ec52[_0x4e20('0x3c')]=qs[_0x4e20('0x3d')](_[_0x4e20('0x3e')](_0x5bfe84[_0x4e20('0x33')],_0x54e52f['filters']));if(_0x5bfe84[_0x4e20('0x33')][_0x4e20('0x3f')]){_0x16ec52[_0x4e20('0x3c')]=_[_0x4e20('0x41')](_0x16ec52['where'],{'$or':_[_0x4e20('0x32')](_0x16ec52[_0x4e20('0x34')],function(_0x46a8c6){var _0x3b2ea4={};_0x3b2ea4[_0x46a8c6]={'$like':'%'+_0x5bfe84[_0x4e20('0x33')][_0x4e20('0x3f')]+'%'};return _0x3b2ea4;})});}_0x16ec52=_[_0x4e20('0x41')]({},_0x16ec52,_0x5bfe84[_0x4e20('0x49')]);return _0x4c4800[_0x4e20('0x5b')](_0x16ec52);}})[_0x4e20('0x27')](function(_0x349bb2){if(_0x349bb2){_0x28edb7=_0x349bb2[_0x4e20('0x37')];if(!_0x5bfe84[_0x4e20('0x33')]['hasOwnProperty']('nolimit')){_0x16ec52['limit']=qs[_0x4e20('0x20')](_0x5bfe84[_0x4e20('0x33')][_0x4e20('0x20')]);_0x16ec52[_0x4e20('0x39')]=qs[_0x4e20('0x39')](_0x5bfe84[_0x4e20('0x33')]['offset']);}return _0x4c4800['getUsers'](_0x16ec52);}})[_0x4e20('0x27')](function(_0x2ad87a){if(_0x2ad87a){return _0x2ad87a?{'count':_0x28edb7,'rows':_0x2ad87a}:null;}})[_0x4e20('0x27')](respondWithResult(_0x4e3b74,null))['catch'](handleError(_0x4e3b74,null));};