130f10a2d90c8b74c0a0d569d007340a8ef81023
[motion2.git] / server / api / intDeskAccount / intDeskAccount.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 _0x3162=['hasOwnProperty','sort','where','pick','filters','filter','VIRTUAL','merge','DeskAccount','include','findAll','rows','catch','intersection','includeAll','options','find','create','body','params','getConfigurations','DeskConfiguration','length','order','nolimit','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','channel','DeskField','getFields','priority','findOne','remoteUri','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','slice','lastIndexOf','%s/custom_fields','application/json','basic','headers','Authorization','format','%s:%s','base64','concat','_embedded','entries','active','test','stringify','send','Wrong\x20credentials','statusCode','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','sox','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','error','name','map','rawAttributes','fieldName','type','key','keys','query','model','attributes','fields'];(function(_0x62c958,_0x2bfdbc){var _0x57ec61=function(_0x5c0094){while(--_0x5c0094){_0x62c958['push'](_0x62c958['shift']());}};_0x57ec61(++_0x2bfdbc);}(_0x3162,0x120));var _0x2316=function(_0x5eb294,_0x5b52ba){_0x5eb294=_0x5eb294-0x0;var _0xd139fd=_0x3162[_0x5eb294];return _0xd139fd;};'use strict';var emlformat=require(_0x2316('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2316('0x1'));var rp=require(_0x2316('0x2'));var moment=require(_0x2316('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2316('0x4'));var util=require(_0x2316('0x5'));var path=require(_0x2316('0x6'));var sox=require(_0x2316('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x2316('0x8'));var crypto=require('crypto');var jsforce=require(_0x2316('0x9'));var deskjs=require(_0x2316('0xa'));var toCsv=require(_0x2316('0xb'));var querystring=require(_0x2316('0xc'));var Papa=require(_0x2316('0xd'));var Redis=require(_0x2316('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x2316('0xf'));var as=require(_0x2316('0x10'));var hardwareService=require(_0x2316('0x11'));var logger=require(_0x2316('0x12'))(_0x2316('0x13'));var utils=require(_0x2316('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x2316('0x15'));var db=require(_0x2316('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x538eda,_0x32609b){_0x32609b=_0x32609b||0xcc;return function(_0x390b64){if(_0x390b64){return _0x538eda[_0x2316('0x17')](_0x32609b);}return _0x538eda[_0x2316('0x18')](_0x32609b)[_0x2316('0x19')]();};}function respondWithResult(_0x3e430f,_0x418030){_0x418030=_0x418030||0xc8;return function(_0x31fa19){if(_0x31fa19){return _0x3e430f[_0x2316('0x18')](_0x418030)[_0x2316('0x1a')](_0x31fa19);}};}function respondWithFilteredResult(_0x484f40,_0x318a56){return function(_0x52ea1d){if(_0x52ea1d){var _0x55c7b8=typeof _0x318a56[_0x2316('0x1b')]==='undefined'&&typeof _0x318a56['limit']===_0x2316('0x1c');var _0x20067f=_0x52ea1d['count'];var _0x12bbca=_0x55c7b8?0x0:_0x318a56[_0x2316('0x1b')];var _0x4712bb=_0x55c7b8?_0x52ea1d[_0x2316('0x1d')]:_0x318a56[_0x2316('0x1b')]+_0x318a56[_0x2316('0x1e')];var _0x56df89;if(_0x4712bb>=_0x20067f){_0x4712bb=_0x20067f;_0x56df89=0xc8;}else{_0x56df89=0xce;}_0x484f40[_0x2316('0x18')](_0x56df89);return _0x484f40[_0x2316('0x1f')](_0x2316('0x20'),_0x12bbca+'-'+_0x4712bb+'/'+_0x20067f)['json'](_0x52ea1d);}return null;};}function patchUpdates(_0x1dad72){return function(_0x4734d8){try{jsonpatch[_0x2316('0x21')](_0x4734d8,_0x1dad72,!![]);}catch(_0x38f8bb){return BPromise[_0x2316('0x22')](_0x38f8bb);}return _0x4734d8[_0x2316('0x23')]();};}function saveUpdates(_0x128819,_0x45e329){return function(_0x5766c8){if(_0x5766c8){return _0x5766c8[_0x2316('0x24')](_0x128819)['then'](function(_0x334f10){return _0x334f10;});}return null;};}function removeEntity(_0x29fd55,_0x5bb526){return function(_0x8697ea){if(_0x8697ea){return _0x8697ea[_0x2316('0x25')]()[_0x2316('0x26')](function(){_0x29fd55[_0x2316('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3ca591,_0x167553){return function(_0x3dae7d){if(!_0x3dae7d){_0x3ca591[_0x2316('0x17')](0x194);}return _0x3dae7d;};}function handleError(_0x1c553d,_0x286a45){_0x286a45=_0x286a45||0x1f4;return function(_0x1ffc2e){logger[_0x2316('0x27')](_0x1ffc2e['stack']);if(_0x1ffc2e[_0x2316('0x28')]){delete _0x1ffc2e[_0x2316('0x28')];}_0x1c553d[_0x2316('0x18')](_0x286a45)['send'](_0x1ffc2e);};}exports['index']=function(_0x5eaf15,_0x267269){var _0x4bf453={},_0x282dd0={},_0x1363f3={'count':0x0,'rows':[]};var _0x1978ab=_[_0x2316('0x29')](db['DeskAccount'][_0x2316('0x2a')],function(_0x61e828){return{'name':_0x61e828[_0x2316('0x2b')],'type':_0x61e828[_0x2316('0x2c')][_0x2316('0x2d')]};});_0x282dd0['model']=_[_0x2316('0x29')](_0x1978ab,_0x2316('0x28'));_0x282dd0['query']=_[_0x2316('0x2e')](_0x5eaf15[_0x2316('0x2f')]);_0x282dd0['filters']=_['intersection'](_0x282dd0[_0x2316('0x30')],_0x282dd0['query']);_0x4bf453[_0x2316('0x31')]=_['intersection'](_0x282dd0['model'],qs[_0x2316('0x32')](_0x5eaf15['query'][_0x2316('0x32')]));_0x4bf453[_0x2316('0x31')]=_0x4bf453[_0x2316('0x31')]['length']?_0x4bf453[_0x2316('0x31')]:_0x282dd0[_0x2316('0x30')];if(!_0x5eaf15['query'][_0x2316('0x33')]('nolimit')){_0x4bf453['limit']=qs['limit'](_0x5eaf15[_0x2316('0x2f')][_0x2316('0x1e')]);_0x4bf453[_0x2316('0x1b')]=qs['offset'](_0x5eaf15['query'][_0x2316('0x1b')]);}_0x4bf453['order']=qs['sort'](_0x5eaf15[_0x2316('0x2f')][_0x2316('0x34')]);_0x4bf453[_0x2316('0x35')]=qs['filters'](_[_0x2316('0x36')](_0x5eaf15['query'],_0x282dd0[_0x2316('0x37')]),_0x1978ab);if(_0x5eaf15[_0x2316('0x2f')][_0x2316('0x38')]){_0x4bf453[_0x2316('0x35')]=_['merge'](_0x4bf453[_0x2316('0x35')],{'$or':_['map'](_0x1978ab,function(_0x391279){if(_0x391279[_0x2316('0x2c')]!==_0x2316('0x39')){var _0x3fb458={};_0x3fb458[_0x391279[_0x2316('0x28')]]={'$like':'%'+_0x5eaf15[_0x2316('0x2f')]['filter']+'%'};return _0x3fb458;}})});}_0x4bf453=_[_0x2316('0x3a')]({},_0x4bf453,_0x5eaf15['options']);var _0x26dc75={'where':_0x4bf453[_0x2316('0x35')]};return db[_0x2316('0x3b')][_0x2316('0x1d')](_0x26dc75)['then'](function(_0x2e52c2){_0x1363f3[_0x2316('0x1d')]=_0x2e52c2;if(_0x5eaf15[_0x2316('0x2f')]['includeAll']){_0x4bf453[_0x2316('0x3c')]=[{'all':!![]}];}return db['DeskAccount'][_0x2316('0x3d')](_0x4bf453);})[_0x2316('0x26')](function(_0x35f191){_0x1363f3[_0x2316('0x3e')]=_0x35f191;return _0x1363f3;})[_0x2316('0x26')](respondWithFilteredResult(_0x267269,_0x4bf453))[_0x2316('0x3f')](handleError(_0x267269,null));};exports['show']=function(_0x59f476,_0x9e651d){var _0xe70905={'raw':![],'where':{'id':_0x59f476['params']['id']}},_0x468a26={};_0x468a26[_0x2316('0x30')]=_[_0x2316('0x2e')](db[_0x2316('0x3b')][_0x2316('0x2a')]);_0x468a26[_0x2316('0x2f')]=_[_0x2316('0x2e')](_0x59f476[_0x2316('0x2f')]);_0x468a26[_0x2316('0x37')]=_[_0x2316('0x40')](_0x468a26[_0x2316('0x30')],_0x468a26['query']);_0xe70905[_0x2316('0x31')]=_[_0x2316('0x40')](_0x468a26['model'],qs[_0x2316('0x32')](_0x59f476[_0x2316('0x2f')][_0x2316('0x32')]));_0xe70905['attributes']=_0xe70905[_0x2316('0x31')]['length']?_0xe70905['attributes']:_0x468a26[_0x2316('0x30')];if(_0x59f476[_0x2316('0x2f')][_0x2316('0x41')]){_0xe70905[_0x2316('0x3c')]=[{'all':!![]}];}_0xe70905=_[_0x2316('0x3a')]({},_0xe70905,_0x59f476[_0x2316('0x42')]);return db[_0x2316('0x3b')][_0x2316('0x43')](_0xe70905)[_0x2316('0x26')](handleEntityNotFound(_0x9e651d,null))['then'](respondWithResult(_0x9e651d,null))[_0x2316('0x3f')](handleError(_0x9e651d,null));};exports[_0x2316('0x44')]=function(_0x50028b,_0x3ea289){return db[_0x2316('0x3b')][_0x2316('0x44')](_0x50028b[_0x2316('0x45')],{})[_0x2316('0x26')](respondWithResult(_0x3ea289,0xc9))[_0x2316('0x3f')](handleError(_0x3ea289,null));};exports[_0x2316('0x24')]=function(_0x1e77ff,_0x291790){if(_0x1e77ff['body']['id']){delete _0x1e77ff[_0x2316('0x45')]['id'];}return db['DeskAccount'][_0x2316('0x43')]({'where':{'id':_0x1e77ff[_0x2316('0x46')]['id']}})['then'](handleEntityNotFound(_0x291790,null))['then'](saveUpdates(_0x1e77ff[_0x2316('0x45')],null))[_0x2316('0x26')](respondWithResult(_0x291790,null))['catch'](handleError(_0x291790,null));};exports[_0x2316('0x25')]=function(_0x497d7b,_0x2481c5){return db[_0x2316('0x3b')][_0x2316('0x43')]({'where':{'id':_0x497d7b[_0x2316('0x46')]['id']}})[_0x2316('0x26')](handleEntityNotFound(_0x2481c5,null))[_0x2316('0x26')](removeEntity(_0x2481c5,null))[_0x2316('0x3f')](handleError(_0x2481c5,null));};exports[_0x2316('0x47')]=function(_0x4fd588,_0x1f6a84,_0x4e80e2){var _0x5d74fd={};var _0x30ff80={};var _0x3d8817;var _0xdfdb1c;return db[_0x2316('0x3b')]['findOne']({'where':{'id':_0x4fd588[_0x2316('0x46')]['id']}})[_0x2316('0x26')](handleEntityNotFound(_0x1f6a84,null))[_0x2316('0x26')](function(_0x33e20d){if(_0x33e20d){_0x3d8817=_0x33e20d;_0x30ff80[_0x2316('0x30')]=_[_0x2316('0x2e')](db[_0x2316('0x48')][_0x2316('0x2a')]);_0x30ff80['query']=_[_0x2316('0x2e')](_0x4fd588[_0x2316('0x2f')]);_0x30ff80['filters']=_[_0x2316('0x40')](_0x30ff80[_0x2316('0x30')],_0x30ff80['query']);_0x5d74fd[_0x2316('0x31')]=_[_0x2316('0x40')](_0x30ff80[_0x2316('0x30')],qs[_0x2316('0x32')](_0x4fd588[_0x2316('0x2f')]['fields']));_0x5d74fd['attributes']=_0x5d74fd[_0x2316('0x31')][_0x2316('0x49')]?_0x5d74fd[_0x2316('0x31')]:_0x30ff80[_0x2316('0x30')];_0x5d74fd[_0x2316('0x4a')]=qs[_0x2316('0x34')](_0x4fd588['query'][_0x2316('0x34')]);_0x5d74fd[_0x2316('0x35')]=qs[_0x2316('0x37')](_[_0x2316('0x36')](_0x4fd588[_0x2316('0x2f')],_0x30ff80[_0x2316('0x37')]));if(_0x4fd588[_0x2316('0x2f')][_0x2316('0x38')]){_0x5d74fd[_0x2316('0x35')]=_['merge'](_0x5d74fd[_0x2316('0x35')],{'$or':_['map'](_0x5d74fd[_0x2316('0x31')],function(_0x5c431b){var _0x185912={};_0x185912[_0x5c431b]={'$like':'%'+_0x4fd588[_0x2316('0x2f')][_0x2316('0x38')]+'%'};return _0x185912;})});}_0x5d74fd=_[_0x2316('0x3a')]({},_0x5d74fd,_0x4fd588[_0x2316('0x42')]);return _0x3d8817[_0x2316('0x47')](_0x5d74fd);}})[_0x2316('0x26')](function(_0x4d58b8){if(_0x4d58b8){_0xdfdb1c=_0x4d58b8['length'];if(!_0x4fd588[_0x2316('0x2f')][_0x2316('0x33')](_0x2316('0x4b'))){_0x5d74fd[_0x2316('0x1e')]=qs[_0x2316('0x1e')](_0x4fd588[_0x2316('0x2f')][_0x2316('0x1e')]);_0x5d74fd['offset']=qs[_0x2316('0x1b')](_0x4fd588[_0x2316('0x2f')]['offset']);}return _0x3d8817[_0x2316('0x47')](_0x5d74fd);}})[_0x2316('0x26')](function(_0x3c3044){if(_0x3c3044){return _0x3c3044?{'count':_0xdfdb1c,'rows':_0x3c3044}:null;}})[_0x2316('0x26')](respondWithResult(_0x1f6a84,null))[_0x2316('0x3f')](handleError(_0x1f6a84,null));};exports[_0x2316('0x4c')]=function(_0x505a35,_0x24b8ea,_0x3318f3){if(_0x505a35['body']['id']){delete _0x505a35[_0x2316('0x45')]['id'];}return db['DeskAccount']['findOne']({'where':{'id':_0x505a35[_0x2316('0x46')]['id']}})[_0x2316('0x26')](handleEntityNotFound(_0x24b8ea,null))[_0x2316('0x26')](function(_0x467f9e){if(_0x467f9e){_0x505a35[_0x2316('0x45')][_0x2316('0x4d')]=_0x467f9e['id'];_0x505a35[_0x2316('0x45')][_0x2316('0x4e')]=integrations[_0x2316('0x4f')](_0x505a35[_0x2316('0x45')]['channel'],_0x505a35[_0x2316('0x45')]['type']);_0x505a35[_0x2316('0x45')][_0x2316('0x50')]=integrations['getDescriptions'](_0x505a35[_0x2316('0x45')][_0x2316('0x51')],_0x505a35[_0x2316('0x45')]['type']);return db['DeskConfiguration'][_0x2316('0x44')](_0x505a35['body'],{'include':[{'model':db[_0x2316('0x52')],'as':'Subjects'},{'model':db[_0x2316('0x52')],'as':_0x2316('0x50')}]});}return null;})[_0x2316('0x26')](respondWithResult(_0x24b8ea,null))[_0x2316('0x3f')](handleError(_0x24b8ea,null));};exports[_0x2316('0x53')]=function(_0x488033,_0x232f23,_0x3f056a){var _0x25c0e6=[{'name':_0x2316('0x54'),'label':_0x2316('0x54'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x41d7a3='';return db[_0x2316('0x3b')][_0x2316('0x55')]({'where':{'id':_0x488033[_0x2316('0x46')]['id']},'attributes':['id',_0x2316('0x56'),_0x2316('0x57'),_0x2316('0x58'),_0x2316('0x59'),_0x2316('0x5a'),_0x2316('0x5b'),_0x2316('0x5c'),_0x2316('0x5d')]})['then'](handleEntityNotFound(_0x232f23,null))['then'](function(_0x2506b0){if(_0x2506b0){_0x41d7a3=_0x2506b0[_0x2316('0x56')];var _0x18ab24=_0x41d7a3[_0x2316('0x5e')](-0x1);if(_0x18ab24==='/'){_0x41d7a3=_0x41d7a3['substring'](0x0,_0x41d7a3[_0x2316('0x5f')](_0x18ab24));}var _0x4c3e9f={'method':'GET','uri':util['format'](_0x2316('0x60'),_0x41d7a3),'headers':{'Content-Type':_0x2316('0x61'),'Accept':_0x2316('0x61')},'json':!![]};if(_0x2506b0[_0x2316('0x57')]===_0x2316('0x62')){_0x4c3e9f[_0x2316('0x63')][_0x2316('0x64')]=util[_0x2316('0x65')]('Basic\x20%s',new Buffer(util[_0x2316('0x65')](_0x2316('0x66'),_0x2506b0[_0x2316('0x58')],_0x2506b0['password']))['toString'](_0x2316('0x67')));}return rp(_0x4c3e9f)[_0x2316('0x26')](function(_0x39814e){return _0x25c0e6[_0x2316('0x68')](_['map'](_0x39814e[_0x2316('0x69')][_0x2316('0x6a')],function(_0x3900d1){return{'id':_0x3900d1[_0x2316('0x28')],'name':_0x3900d1[_0x2316('0x28')],'type':_0x3900d1[_0x2316('0x2c')],'active':_0x3900d1[_0x2316('0x6b')],'label':_0x3900d1['label'],'custom':!![]};}));});}})[_0x2316('0x26')](function(_0x4fc064){return{'count':_0x4fc064[_0x2316('0x49')],'rows':_0x4fc064};})[_0x2316('0x26')](respondWithResult(_0x232f23,null))[_0x2316('0x3f')](function(_0xc4ccc2){var _0x15d75b=_0x488033[_0x2316('0x2f')][_0x2316('0x6c')]?0x1f4:_0xc4ccc2['statusCode']||0x1f4;logger[_0x2316('0x27')]('getFields,\x20%s,\x20%s,\x20%s',_0x2316('0x53'),_0x15d75b,JSON[_0x2316('0x6d')](_0xc4ccc2));delete _0xc4ccc2['name'];if(_0x15d75b===0x191){_0x15d75b=0x190;}_0x232f23[_0x2316('0x18')](_0x15d75b)[_0x2316('0x6e')](_0x488033[_0x2316('0x2f')][_0x2316('0x6c')]?{'message':_0x2316('0x6f'),'statusCode':_0xc4ccc2[_0x2316('0x70')]}:_0xc4ccc2);});};