Built motion from commit 9d5c653a.|2.5.44
[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 _0x7e16=['role','UserProfileSection','find','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','addUsers','omit','ids','removeUsers','isArray','emit','getUsers','findOne','order','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./squareProject.socket','register','sendStatus','status','undefined','limit','count','offset','set','apply','reject','then','destroy','get','SquareProjects','end','error','stack','name','map','SquareProject','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','catch','show','params','keys','length','includeAll','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x1dd2cc,_0x36ddfe){var _0x305d8e=function(_0x27df09){while(--_0x27df09){_0x1dd2cc['push'](_0x1dd2cc['shift']());}};_0x305d8e(++_0x36ddfe);}(_0x7e16,0x70));var _0x67e1=function(_0x40dd7f,_0x39aaee){_0x40dd7f=_0x40dd7f-0x0;var _0xf56b5a=_0x7e16[_0x40dd7f];return _0xf56b5a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x67e1('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x67e1('0x1'));var rp=require(_0x67e1('0x2'));var moment=require(_0x67e1('0x3'));var BPromise=require(_0x67e1('0x4'));var Mustache=require(_0x67e1('0x5'));var util=require(_0x67e1('0x6'));var path=require(_0x67e1('0x7'));var sox=require(_0x67e1('0x8'));var csv=require(_0x67e1('0x9'));var ejs=require(_0x67e1('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x67e1('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x67e1('0xc'));var toCsv=require('to-csv');var querystring=require(_0x67e1('0xd'));var Papa=require(_0x67e1('0xe'));var Redis=require(_0x67e1('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x67e1('0x10'));var as=require(_0x67e1('0x11'));var hardwareService=require(_0x67e1('0x12'));var logger=require(_0x67e1('0x13'))(_0x67e1('0x14'));var utils=require(_0x67e1('0x15'));var config=require(_0x67e1('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x67e1('0x17'))['db'];config[_0x67e1('0x18')]=_[_0x67e1('0x19')](config[_0x67e1('0x18')],{'host':_0x67e1('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x67e1('0x18')]));require(_0x67e1('0x1b'))[_0x67e1('0x1c')](socket);function respondWithStatusCode(_0x45e8a7,_0xdd0111){_0xdd0111=_0xdd0111||0xcc;return function(_0x139761){if(_0x139761){return _0x45e8a7[_0x67e1('0x1d')](_0xdd0111);}return _0x45e8a7[_0x67e1('0x1e')](_0xdd0111)['end']();};}function respondWithResult(_0x41101a,_0xf26bfc){_0xf26bfc=_0xf26bfc||0xc8;return function(_0x44dffa){if(_0x44dffa){return _0x41101a[_0x67e1('0x1e')](_0xf26bfc)['json'](_0x44dffa);}};}function respondWithFilteredResult(_0x1849ea,_0x5076c1){return function(_0x26fd18){if(_0x26fd18){var _0x49e2ce=typeof _0x5076c1['offset']===_0x67e1('0x1f')&&typeof _0x5076c1[_0x67e1('0x20')]==='undefined';var _0x29bb1a=_0x26fd18[_0x67e1('0x21')];var _0x140a2e=_0x49e2ce?0x0:_0x5076c1[_0x67e1('0x22')];var _0x14382d=_0x49e2ce?_0x26fd18[_0x67e1('0x21')]:_0x5076c1['offset']+_0x5076c1[_0x67e1('0x20')];var _0x4884bc;if(_0x14382d>=_0x29bb1a){_0x14382d=_0x29bb1a;_0x4884bc=0xc8;}else{_0x4884bc=0xce;}_0x1849ea['status'](_0x4884bc);return _0x1849ea[_0x67e1('0x23')]('Content-Range',_0x140a2e+'-'+_0x14382d+'/'+_0x29bb1a)['json'](_0x26fd18);}return null;};}function patchUpdates(_0x50d5ac){return function(_0x39b60e){try{jsonpatch[_0x67e1('0x24')](_0x39b60e,_0x50d5ac,!![]);}catch(_0x29b1c3){return BPromise[_0x67e1('0x25')](_0x29b1c3);}return _0x39b60e['save']();};}function saveUpdates(_0x54a879,_0x1cd310){return function(_0xc1edc8){if(_0xc1edc8){return _0xc1edc8['update'](_0x54a879)[_0x67e1('0x26')](function(_0x308091){return _0x308091;});}return null;};}function removeEntity(_0x42fb6f,_0x22edde){return function(_0x2d1dc4){if(_0x2d1dc4){return _0x2d1dc4[_0x67e1('0x27')]()[_0x67e1('0x26')](function(){var _0x363fcf=_0x2d1dc4[_0x67e1('0x28')]({'plain':!![]});var _0x40afdb=_0x67e1('0x29');return db['UserProfileResource'][_0x67e1('0x27')]({'where':{'type':_0x40afdb,'resourceId':_0x363fcf['id']}})['then'](function(){return _0x2d1dc4;});})[_0x67e1('0x26')](function(){_0x42fb6f['status'](0xcc)[_0x67e1('0x2a')]();});}};}function handleEntityNotFound(_0x3d27e7,_0x402b3d){return function(_0x273bf3){if(!_0x273bf3){_0x3d27e7[_0x67e1('0x1d')](0x194);}return _0x273bf3;};}function handleError(_0x5c668d,_0x500385){_0x500385=_0x500385||0x1f4;return function(_0x1e3ae2){logger[_0x67e1('0x2b')](_0x1e3ae2[_0x67e1('0x2c')]);if(_0x1e3ae2[_0x67e1('0x2d')]){delete _0x1e3ae2[_0x67e1('0x2d')];}_0x5c668d[_0x67e1('0x1e')](_0x500385)['send'](_0x1e3ae2);};}exports['index']=function(_0x5baaab,_0xb5f7ac){var _0x3142e2={},_0x493ea={},_0x18c021={'count':0x0,'rows':[]};var _0x4a4f99=_[_0x67e1('0x2e')](db[_0x67e1('0x2f')][_0x67e1('0x30')],function(_0x310af8){return{'name':_0x310af8[_0x67e1('0x31')],'type':_0x310af8[_0x67e1('0x32')][_0x67e1('0x33')]};});_0x493ea[_0x67e1('0x34')]=_[_0x67e1('0x2e')](_0x4a4f99,_0x67e1('0x2d'));_0x493ea[_0x67e1('0x35')]=_['keys'](_0x5baaab['query']);_0x493ea[_0x67e1('0x36')]=_[_0x67e1('0x37')](_0x493ea[_0x67e1('0x34')],_0x493ea[_0x67e1('0x35')]);_0x3142e2['attributes']=_[_0x67e1('0x37')](_0x493ea[_0x67e1('0x34')],qs[_0x67e1('0x38')](_0x5baaab[_0x67e1('0x35')][_0x67e1('0x38')]));_0x3142e2[_0x67e1('0x39')]=_0x3142e2[_0x67e1('0x39')]['length']?_0x3142e2[_0x67e1('0x39')]:_0x493ea[_0x67e1('0x34')];if(!_0x5baaab[_0x67e1('0x35')][_0x67e1('0x3a')](_0x67e1('0x3b'))){_0x3142e2[_0x67e1('0x20')]=qs[_0x67e1('0x20')](_0x5baaab[_0x67e1('0x35')][_0x67e1('0x20')]);_0x3142e2[_0x67e1('0x22')]=qs[_0x67e1('0x22')](_0x5baaab['query']['offset']);}_0x3142e2['order']=qs[_0x67e1('0x3c')](_0x5baaab['query']['sort']);_0x3142e2[_0x67e1('0x3d')]=qs[_0x67e1('0x36')](_[_0x67e1('0x3e')](_0x5baaab['query'],_0x493ea[_0x67e1('0x36')]),_0x4a4f99);if(_0x5baaab['query'][_0x67e1('0x3f')]){_0x3142e2['where']=_[_0x67e1('0x40')](_0x3142e2[_0x67e1('0x3d')],{'$or':_[_0x67e1('0x2e')](_0x4a4f99,function(_0x434310){if(_0x434310[_0x67e1('0x32')]!==_0x67e1('0x41')){var _0x42aa85={};_0x42aa85[_0x434310[_0x67e1('0x2d')]]={'$like':'%'+_0x5baaab[_0x67e1('0x35')][_0x67e1('0x3f')]+'%'};return _0x42aa85;}})});}_0x3142e2=_[_0x67e1('0x40')]({},_0x3142e2,_0x5baaab[_0x67e1('0x42')]);var _0x56b6b2={'where':_0x3142e2[_0x67e1('0x3d')]};return db['SquareProject'][_0x67e1('0x21')](_0x56b6b2)[_0x67e1('0x26')](function(_0x31342e){_0x18c021[_0x67e1('0x21')]=_0x31342e;if(_0x5baaab[_0x67e1('0x35')]['includeAll']){_0x3142e2[_0x67e1('0x43')]=[{'all':!![]}];}return db[_0x67e1('0x2f')][_0x67e1('0x44')](_0x3142e2);})['then'](function(_0x362b4d){_0x18c021['rows']=_0x362b4d;return _0x18c021;})[_0x67e1('0x26')](respondWithFilteredResult(_0xb5f7ac,_0x3142e2))[_0x67e1('0x45')](handleError(_0xb5f7ac,null));};exports[_0x67e1('0x46')]=function(_0x4f391d,_0xccb24f){var _0x3051c8={'raw':![],'where':{'id':_0x4f391d[_0x67e1('0x47')]['id']}},_0x1ddd44={};_0x1ddd44['model']=_['keys'](db[_0x67e1('0x2f')][_0x67e1('0x30')]);_0x1ddd44[_0x67e1('0x35')]=_[_0x67e1('0x48')](_0x4f391d['query']);_0x1ddd44[_0x67e1('0x36')]=_[_0x67e1('0x37')](_0x1ddd44[_0x67e1('0x34')],_0x1ddd44[_0x67e1('0x35')]);_0x3051c8[_0x67e1('0x39')]=_[_0x67e1('0x37')](_0x1ddd44[_0x67e1('0x34')],qs[_0x67e1('0x38')](_0x4f391d[_0x67e1('0x35')][_0x67e1('0x38')]));_0x3051c8['attributes']=_0x3051c8[_0x67e1('0x39')][_0x67e1('0x49')]?_0x3051c8[_0x67e1('0x39')]:_0x1ddd44[_0x67e1('0x34')];if(_0x4f391d[_0x67e1('0x35')][_0x67e1('0x4a')]){_0x3051c8[_0x67e1('0x43')]=[{'all':!![]}];}_0x3051c8=_[_0x67e1('0x40')]({},_0x3051c8,_0x4f391d[_0x67e1('0x42')]);return db[_0x67e1('0x2f')]['find'](_0x3051c8)['then'](handleEntityNotFound(_0xccb24f,null))[_0x67e1('0x26')](respondWithResult(_0xccb24f,null))['catch'](handleError(_0xccb24f,null));};exports[_0x67e1('0x4b')]=function(_0x2b6bac,_0x6e40a1){return db[_0x67e1('0x2f')][_0x67e1('0x4b')](_0x2b6bac['body'],{})['then'](function(_0x1fcb9d){var _0x7a98d8=_0x2b6bac[_0x67e1('0x4c')][_0x67e1('0x28')]({'plain':!![]});if(!_0x7a98d8)throw new Error(_0x67e1('0x4d'));if(_0x7a98d8[_0x67e1('0x4e')]===_0x67e1('0x4c')){var _0x43a77c=_0x1fcb9d[_0x67e1('0x28')]({'plain':!![]});var _0x30b955=_0x67e1('0x29');return db[_0x67e1('0x4f')][_0x67e1('0x50')]({'where':{'name':_0x30b955,'userProfileId':_0x7a98d8[_0x67e1('0x51')]},'raw':!![]})['then'](function(_0x57e5b4){if(_0x57e5b4&&_0x57e5b4['autoAssociation']===0x0){return db[_0x67e1('0x52')]['create']({'name':_0x43a77c['name'],'resourceId':_0x43a77c['id'],'type':_0x57e5b4[_0x67e1('0x2d')],'sectionId':_0x57e5b4['id']},{})[_0x67e1('0x26')](function(){return _0x1fcb9d;});}else{return _0x1fcb9d;}})[_0x67e1('0x45')](function(_0x597cb2){logger[_0x67e1('0x2b')](_0x67e1('0x53'),_0x597cb2);throw _0x597cb2;});}return _0x1fcb9d;})[_0x67e1('0x26')](respondWithResult(_0x6e40a1,0xc9))[_0x67e1('0x45')](handleError(_0x6e40a1,null));};exports[_0x67e1('0x54')]=function(_0xa93b85,_0x37a458){if(_0xa93b85[_0x67e1('0x55')]['id']){delete _0xa93b85[_0x67e1('0x55')]['id'];}return db['SquareProject']['find']({'where':{'id':_0xa93b85[_0x67e1('0x47')]['id']}})[_0x67e1('0x26')](handleEntityNotFound(_0x37a458,null))[_0x67e1('0x26')](saveUpdates(_0xa93b85['body'],null))[_0x67e1('0x26')](respondWithResult(_0x37a458,null))[_0x67e1('0x45')](handleError(_0x37a458,null));};exports[_0x67e1('0x27')]=function(_0x53a80e,_0x9138fc){return db[_0x67e1('0x2f')][_0x67e1('0x50')]({'where':{'id':_0x53a80e[_0x67e1('0x47')]['id']}})[_0x67e1('0x26')](handleEntityNotFound(_0x9138fc,null))['then'](removeEntity(_0x9138fc,null))[_0x67e1('0x45')](handleError(_0x9138fc,null));};exports[_0x67e1('0x56')]=function(_0x2db356,_0x5bc17b,_0x2612f3){return db[_0x67e1('0x2f')]['find']({'where':{'id':_0x2db356[_0x67e1('0x47')]['id']}})[_0x67e1('0x26')](handleEntityNotFound(_0x5bc17b,null))[_0x67e1('0x26')](function(_0x53182c){if(_0x53182c){return _0x53182c[_0x67e1('0x56')](_0x2db356[_0x67e1('0x55')]['ids'],_[_0x67e1('0x57')](_0x2db356[_0x67e1('0x55')],[_0x67e1('0x58'),'id'])||{});}})[_0x67e1('0x26')](respondWithResult(_0x5bc17b,null))[_0x67e1('0x45')](handleError(_0x5bc17b,null));};exports['removeUsers']=function(_0x420490,_0x2b364a,_0xd3285b){return db[_0x67e1('0x2f')][_0x67e1('0x50')]({'where':{'id':_0x420490[_0x67e1('0x47')]['id']}})[_0x67e1('0x26')](handleEntityNotFound(_0x2b364a,null))['then'](function(_0x39b895){if(_0x39b895){return _0x39b895[_0x67e1('0x59')](_0x420490['query'][_0x67e1('0x58')])[_0x67e1('0x26')](function(){if(_[_0x67e1('0x5a')](_0x420490['query'][_0x67e1('0x58')])){for(var _0xbc434e=0x0;_0xbc434e<_0x420490[_0x67e1('0x35')][_0x67e1('0x58')][_0x67e1('0x49')];_0xbc434e+=0x1){socket[_0x67e1('0x5b')]('userSquareProject:remove',{'UserId':Number(_0x420490[_0x67e1('0x35')][_0x67e1('0x58')][_0xbc434e]),'SquareProjectId':Number(_0x420490[_0x67e1('0x47')]['id'])});}}else{socket[_0x67e1('0x5b')]('userSquareProject:remove',{'UserId':Number(_0x420490[_0x67e1('0x35')][_0x67e1('0x58')]),'SquareProjectId':Number(_0x420490['params']['id'])});}});}})[_0x67e1('0x26')](respondWithStatusCode(_0x2b364a,null))[_0x67e1('0x45')](handleError(_0x2b364a,null));};exports[_0x67e1('0x5c')]=function(_0x418552,_0x5272c7,_0x94532c){var _0x75a978={};var _0x4acbc0={};var _0x129a66;var _0x2bd154;return db['SquareProject'][_0x67e1('0x5d')]({'where':{'id':_0x418552[_0x67e1('0x47')]['id']}})[_0x67e1('0x26')](handleEntityNotFound(_0x5272c7,null))[_0x67e1('0x26')](function(_0x4c66b6){if(_0x4c66b6){_0x129a66=_0x4c66b6;_0x4acbc0['model']=_[_0x67e1('0x48')](db['User']['rawAttributes']);_0x4acbc0[_0x67e1('0x35')]=_['keys'](_0x418552[_0x67e1('0x35')]);_0x4acbc0[_0x67e1('0x36')]=_[_0x67e1('0x37')](_0x4acbc0[_0x67e1('0x34')],_0x4acbc0['query']);_0x75a978[_0x67e1('0x39')]=_[_0x67e1('0x37')](_0x4acbc0[_0x67e1('0x34')],qs['fields'](_0x418552[_0x67e1('0x35')][_0x67e1('0x38')]));_0x75a978[_0x67e1('0x39')]=_0x75a978[_0x67e1('0x39')][_0x67e1('0x49')]?_0x75a978[_0x67e1('0x39')]:_0x4acbc0['model'];_0x75a978[_0x67e1('0x5e')]=qs['sort'](_0x418552['query'][_0x67e1('0x3c')]);_0x75a978[_0x67e1('0x3d')]=qs[_0x67e1('0x36')](_[_0x67e1('0x3e')](_0x418552[_0x67e1('0x35')],_0x4acbc0[_0x67e1('0x36')]));if(_0x418552[_0x67e1('0x35')][_0x67e1('0x3f')]){_0x75a978[_0x67e1('0x3d')]=_[_0x67e1('0x40')](_0x75a978['where'],{'$or':_[_0x67e1('0x2e')](_0x75a978['attributes'],function(_0x42f25d){var _0x38dbfa={};_0x38dbfa[_0x42f25d]={'$like':'%'+_0x418552[_0x67e1('0x35')][_0x67e1('0x3f')]+'%'};return _0x38dbfa;})});}_0x75a978=_[_0x67e1('0x40')]({},_0x75a978,_0x418552[_0x67e1('0x42')]);return _0x129a66[_0x67e1('0x5c')](_0x75a978);}})['then'](function(_0x284e47){if(_0x284e47){_0x2bd154=_0x284e47[_0x67e1('0x49')];if(!_0x418552['query'][_0x67e1('0x3a')]('nolimit')){_0x75a978[_0x67e1('0x20')]=qs[_0x67e1('0x20')](_0x418552['query'][_0x67e1('0x20')]);_0x75a978['offset']=qs['offset'](_0x418552[_0x67e1('0x35')]['offset']);}return _0x129a66[_0x67e1('0x5c')](_0x75a978);}})['then'](function(_0x79458){if(_0x79458){return _0x79458?{'count':_0x2bd154,'rows':_0x79458}:null;}})['then'](respondWithResult(_0x5272c7,null))[_0x67e1('0x45')](handleError(_0x5272c7,null));};