2678e263a2c6abe074b9d4b41a47d302ab89ebed
[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 _0x2a88=['slice','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','toString','concat','_embedded','entries','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','limit','apply','reject','save','update','destroy','then','error','stack','name','send','map','DeskAccount','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','options','count','includeAll','include','rows','catch','show','params','length','find','create','body','findOne','DeskConfiguration','pick','getConfigurations','addConfiguration','AccountId','Subjects','channel','DeskField','getFields','priority','remoteUri','authType','username','password','consumerSecret','token'];(function(_0x57b3df,_0x445081){var _0x206656=function(_0x16aeb3){while(--_0x16aeb3){_0x57b3df['push'](_0x57b3df['shift']());}};_0x206656(++_0x445081);}(_0x2a88,0x159));var _0x82a8=function(_0x59ad64,_0x55af42){_0x59ad64=_0x59ad64-0x0;var _0x46311e=_0x2a88[_0x59ad64];return _0x46311e;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x82a8('0x0'));var moment=require(_0x82a8('0x1'));var BPromise=require(_0x82a8('0x2'));var Mustache=require(_0x82a8('0x3'));var util=require(_0x82a8('0x4'));var path=require(_0x82a8('0x5'));var sox=require('sox');var csv=require(_0x82a8('0x6'));var ejs=require(_0x82a8('0x7'));var fs=require('fs');var fs_extra=require(_0x82a8('0x8'));var _=require(_0x82a8('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x82a8('0xa'));var deskjs=require(_0x82a8('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x82a8('0xc'));var Redis=require(_0x82a8('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x82a8('0xe'));var as=require(_0x82a8('0xf'));var hardwareService=require(_0x82a8('0x10'));var logger=require(_0x82a8('0x11'))(_0x82a8('0x12'));var utils=require(_0x82a8('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x82a8('0x14'))['db'];var integrations=require(_0x82a8('0x15'));function respondWithStatusCode(_0x52e3cc,_0x314e87){_0x314e87=_0x314e87||0xcc;return function(_0x2d2ee1){if(_0x2d2ee1){return _0x52e3cc[_0x82a8('0x16')](_0x314e87);}return _0x52e3cc['status'](_0x314e87)[_0x82a8('0x17')]();};}function respondWithResult(_0x1e9d18,_0x3b34c4){_0x3b34c4=_0x3b34c4||0xc8;return function(_0x40fd02){if(_0x40fd02){return _0x1e9d18[_0x82a8('0x18')](_0x3b34c4)[_0x82a8('0x19')](_0x40fd02);}};}function respondWithFilteredResult(_0x1bd71,_0x31c46d){return function(_0x174ee4){if(_0x174ee4){var _0xdf9228=typeof _0x31c46d[_0x82a8('0x1a')]==='undefined'&&typeof _0x31c46d['limit']===_0x82a8('0x1b');var _0x32b754=_0x174ee4['count'];var _0xc59ce5=_0xdf9228?0x0:_0x31c46d[_0x82a8('0x1a')];var _0x4ceba8=_0xdf9228?_0x174ee4['count']:_0x31c46d[_0x82a8('0x1a')]+_0x31c46d[_0x82a8('0x1c')];var _0x4c0e8c;if(_0x4ceba8>=_0x32b754){_0x4ceba8=_0x32b754;_0x4c0e8c=0xc8;}else{_0x4c0e8c=0xce;}_0x1bd71[_0x82a8('0x18')](_0x4c0e8c);return _0x1bd71['set']('Content-Range',_0xc59ce5+'-'+_0x4ceba8+'/'+_0x32b754)[_0x82a8('0x19')](_0x174ee4);}return null;};}function patchUpdates(_0x5cde8e){return function(_0x2af09b){try{jsonpatch[_0x82a8('0x1d')](_0x2af09b,_0x5cde8e,!![]);}catch(_0x11a155){return BPromise[_0x82a8('0x1e')](_0x11a155);}return _0x2af09b[_0x82a8('0x1f')]();};}function saveUpdates(_0x13439e,_0x26b481){return function(_0x5ccbe2){if(_0x5ccbe2){return _0x5ccbe2[_0x82a8('0x20')](_0x13439e)['then'](function(_0x150eb9){return _0x150eb9;});}return null;};}function removeEntity(_0x403dae,_0x1a72b2){return function(_0x1890d2){if(_0x1890d2){return _0x1890d2[_0x82a8('0x21')]()[_0x82a8('0x22')](function(){_0x403dae[_0x82a8('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x509074,_0x3e670e){return function(_0x1cd73c){if(!_0x1cd73c){_0x509074['sendStatus'](0x194);}return _0x1cd73c;};}function handleError(_0x264543,_0x32b107){_0x32b107=_0x32b107||0x1f4;return function(_0x4aafab){logger[_0x82a8('0x23')](_0x4aafab[_0x82a8('0x24')]);if(_0x4aafab[_0x82a8('0x25')]){delete _0x4aafab[_0x82a8('0x25')];}_0x264543[_0x82a8('0x18')](_0x32b107)[_0x82a8('0x26')](_0x4aafab);};}exports['index']=function(_0x871f8c,_0xe93020){var _0x345618={},_0x9c7e72={},_0x3f637a={'count':0x0,'rows':[]};var _0x2c1d7c=_[_0x82a8('0x27')](db[_0x82a8('0x28')][_0x82a8('0x29')],function(_0x2b2cbf){return{'name':_0x2b2cbf[_0x82a8('0x2a')],'type':_0x2b2cbf[_0x82a8('0x2b')]['key']};});_0x9c7e72[_0x82a8('0x2c')]=_[_0x82a8('0x27')](_0x2c1d7c,'name');_0x9c7e72[_0x82a8('0x2d')]=_[_0x82a8('0x2e')](_0x871f8c[_0x82a8('0x2d')]);_0x9c7e72[_0x82a8('0x2f')]=_[_0x82a8('0x30')](_0x9c7e72[_0x82a8('0x2c')],_0x9c7e72[_0x82a8('0x2d')]);_0x345618['attributes']=_[_0x82a8('0x30')](_0x9c7e72[_0x82a8('0x2c')],qs[_0x82a8('0x31')](_0x871f8c[_0x82a8('0x2d')][_0x82a8('0x31')]));_0x345618[_0x82a8('0x32')]=_0x345618['attributes']['length']?_0x345618[_0x82a8('0x32')]:_0x9c7e72[_0x82a8('0x2c')];if(!_0x871f8c[_0x82a8('0x2d')][_0x82a8('0x33')](_0x82a8('0x34'))){_0x345618[_0x82a8('0x1c')]=qs[_0x82a8('0x1c')](_0x871f8c[_0x82a8('0x2d')][_0x82a8('0x1c')]);_0x345618[_0x82a8('0x1a')]=qs[_0x82a8('0x1a')](_0x871f8c[_0x82a8('0x2d')][_0x82a8('0x1a')]);}_0x345618[_0x82a8('0x35')]=qs[_0x82a8('0x36')](_0x871f8c[_0x82a8('0x2d')][_0x82a8('0x36')]);_0x345618[_0x82a8('0x37')]=qs[_0x82a8('0x2f')](_['pick'](_0x871f8c[_0x82a8('0x2d')],_0x9c7e72['filters']),_0x2c1d7c);if(_0x871f8c[_0x82a8('0x2d')]['filter']){_0x345618[_0x82a8('0x37')]=_[_0x82a8('0x38')](_0x345618[_0x82a8('0x37')],{'$or':_[_0x82a8('0x27')](_0x2c1d7c,function(_0x1b61a4){if(_0x1b61a4[_0x82a8('0x2b')]!==_0x82a8('0x39')){var _0x12fc53={};_0x12fc53[_0x1b61a4[_0x82a8('0x25')]]={'$like':'%'+_0x871f8c['query']['filter']+'%'};return _0x12fc53;}})});}_0x345618=_[_0x82a8('0x38')]({},_0x345618,_0x871f8c[_0x82a8('0x3a')]);var _0x3fdc22={'where':_0x345618[_0x82a8('0x37')]};return db[_0x82a8('0x28')][_0x82a8('0x3b')](_0x3fdc22)['then'](function(_0x2b9133){_0x3f637a[_0x82a8('0x3b')]=_0x2b9133;if(_0x871f8c[_0x82a8('0x2d')][_0x82a8('0x3c')]){_0x345618[_0x82a8('0x3d')]=[{'all':!![]}];}return db['DeskAccount']['findAll'](_0x345618);})[_0x82a8('0x22')](function(_0x1c8808){_0x3f637a[_0x82a8('0x3e')]=_0x1c8808;return _0x3f637a;})[_0x82a8('0x22')](respondWithFilteredResult(_0xe93020,_0x345618))[_0x82a8('0x3f')](handleError(_0xe93020,null));};exports[_0x82a8('0x40')]=function(_0x2dfb8a,_0x1f6996){var _0x4272c0={'raw':![],'where':{'id':_0x2dfb8a[_0x82a8('0x41')]['id']}},_0x506037={};_0x506037[_0x82a8('0x2c')]=_[_0x82a8('0x2e')](db[_0x82a8('0x28')]['rawAttributes']);_0x506037[_0x82a8('0x2d')]=_[_0x82a8('0x2e')](_0x2dfb8a[_0x82a8('0x2d')]);_0x506037[_0x82a8('0x2f')]=_[_0x82a8('0x30')](_0x506037[_0x82a8('0x2c')],_0x506037[_0x82a8('0x2d')]);_0x4272c0[_0x82a8('0x32')]=_[_0x82a8('0x30')](_0x506037['model'],qs[_0x82a8('0x31')](_0x2dfb8a['query'][_0x82a8('0x31')]));_0x4272c0[_0x82a8('0x32')]=_0x4272c0[_0x82a8('0x32')][_0x82a8('0x42')]?_0x4272c0[_0x82a8('0x32')]:_0x506037[_0x82a8('0x2c')];if(_0x2dfb8a['query'][_0x82a8('0x3c')]){_0x4272c0[_0x82a8('0x3d')]=[{'all':!![]}];}_0x4272c0=_[_0x82a8('0x38')]({},_0x4272c0,_0x2dfb8a[_0x82a8('0x3a')]);return db[_0x82a8('0x28')][_0x82a8('0x43')](_0x4272c0)['then'](handleEntityNotFound(_0x1f6996,null))[_0x82a8('0x22')](respondWithResult(_0x1f6996,null))[_0x82a8('0x3f')](handleError(_0x1f6996,null));};exports[_0x82a8('0x44')]=function(_0x47bf46,_0x3c5ad8){return db[_0x82a8('0x28')][_0x82a8('0x44')](_0x47bf46[_0x82a8('0x45')],{})[_0x82a8('0x22')](respondWithResult(_0x3c5ad8,0xc9))[_0x82a8('0x3f')](handleError(_0x3c5ad8,null));};exports[_0x82a8('0x20')]=function(_0x443d95,_0x41c2f0){if(_0x443d95[_0x82a8('0x45')]['id']){delete _0x443d95['body']['id'];}return db['DeskAccount']['find']({'where':{'id':_0x443d95[_0x82a8('0x41')]['id']}})[_0x82a8('0x22')](handleEntityNotFound(_0x41c2f0,null))[_0x82a8('0x22')](saveUpdates(_0x443d95['body'],null))[_0x82a8('0x22')](respondWithResult(_0x41c2f0,null))[_0x82a8('0x3f')](handleError(_0x41c2f0,null));};exports[_0x82a8('0x21')]=function(_0x4e8861,_0x26ecf8){return db[_0x82a8('0x28')]['find']({'where':{'id':_0x4e8861[_0x82a8('0x41')]['id']}})[_0x82a8('0x22')](handleEntityNotFound(_0x26ecf8,null))[_0x82a8('0x22')](removeEntity(_0x26ecf8,null))['catch'](handleError(_0x26ecf8,null));};exports['getConfigurations']=function(_0x11e577,_0x322868,_0x25d30e){var _0x596d9d={};var _0x437a15={};var _0x1a96ac;var _0x5bc79a;return db['DeskAccount'][_0x82a8('0x46')]({'where':{'id':_0x11e577[_0x82a8('0x41')]['id']}})['then'](handleEntityNotFound(_0x322868,null))[_0x82a8('0x22')](function(_0x127382){if(_0x127382){_0x1a96ac=_0x127382;_0x437a15[_0x82a8('0x2c')]=_[_0x82a8('0x2e')](db[_0x82a8('0x47')][_0x82a8('0x29')]);_0x437a15[_0x82a8('0x2d')]=_[_0x82a8('0x2e')](_0x11e577[_0x82a8('0x2d')]);_0x437a15[_0x82a8('0x2f')]=_[_0x82a8('0x30')](_0x437a15['model'],_0x437a15[_0x82a8('0x2d')]);_0x596d9d['attributes']=_[_0x82a8('0x30')](_0x437a15[_0x82a8('0x2c')],qs['fields'](_0x11e577[_0x82a8('0x2d')][_0x82a8('0x31')]));_0x596d9d[_0x82a8('0x32')]=_0x596d9d[_0x82a8('0x32')][_0x82a8('0x42')]?_0x596d9d[_0x82a8('0x32')]:_0x437a15[_0x82a8('0x2c')];_0x596d9d[_0x82a8('0x35')]=qs[_0x82a8('0x36')](_0x11e577[_0x82a8('0x2d')][_0x82a8('0x36')]);_0x596d9d[_0x82a8('0x37')]=qs['filters'](_[_0x82a8('0x48')](_0x11e577['query'],_0x437a15['filters']));if(_0x11e577[_0x82a8('0x2d')]['filter']){_0x596d9d[_0x82a8('0x37')]=_[_0x82a8('0x38')](_0x596d9d[_0x82a8('0x37')],{'$or':_['map'](_0x596d9d[_0x82a8('0x32')],function(_0xc7fc47){var _0x376caa={};_0x376caa[_0xc7fc47]={'$like':'%'+_0x11e577[_0x82a8('0x2d')]['filter']+'%'};return _0x376caa;})});}_0x596d9d=_[_0x82a8('0x38')]({},_0x596d9d,_0x11e577[_0x82a8('0x3a')]);return _0x1a96ac[_0x82a8('0x49')](_0x596d9d);}})['then'](function(_0x31f395){if(_0x31f395){_0x5bc79a=_0x31f395[_0x82a8('0x42')];if(!_0x11e577[_0x82a8('0x2d')][_0x82a8('0x33')](_0x82a8('0x34'))){_0x596d9d[_0x82a8('0x1c')]=qs[_0x82a8('0x1c')](_0x11e577['query'][_0x82a8('0x1c')]);_0x596d9d[_0x82a8('0x1a')]=qs[_0x82a8('0x1a')](_0x11e577[_0x82a8('0x2d')][_0x82a8('0x1a')]);}return _0x1a96ac[_0x82a8('0x49')](_0x596d9d);}})[_0x82a8('0x22')](function(_0x25c1a6){if(_0x25c1a6){return _0x25c1a6?{'count':_0x5bc79a,'rows':_0x25c1a6}:null;}})[_0x82a8('0x22')](respondWithResult(_0x322868,null))[_0x82a8('0x3f')](handleError(_0x322868,null));};exports[_0x82a8('0x4a')]=function(_0x55ac35,_0x45cd38,_0x2887ac){if(_0x55ac35[_0x82a8('0x45')]['id']){delete _0x55ac35[_0x82a8('0x45')]['id'];}return db[_0x82a8('0x28')][_0x82a8('0x46')]({'where':{'id':_0x55ac35[_0x82a8('0x41')]['id']}})[_0x82a8('0x22')](handleEntityNotFound(_0x45cd38,null))[_0x82a8('0x22')](function(_0xf4456a){if(_0xf4456a){_0x55ac35[_0x82a8('0x45')][_0x82a8('0x4b')]=_0xf4456a['id'];_0x55ac35[_0x82a8('0x45')][_0x82a8('0x4c')]=integrations['getSubjects'](_0x55ac35[_0x82a8('0x45')][_0x82a8('0x4d')],_0x55ac35[_0x82a8('0x45')][_0x82a8('0x2b')]);_0x55ac35['body']['Descriptions']=integrations['getDescriptions'](_0x55ac35[_0x82a8('0x45')][_0x82a8('0x4d')],_0x55ac35[_0x82a8('0x45')][_0x82a8('0x2b')]);return db[_0x82a8('0x47')][_0x82a8('0x44')](_0x55ac35[_0x82a8('0x45')],{'include':[{'model':db['DeskField'],'as':_0x82a8('0x4c')},{'model':db[_0x82a8('0x4e')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x45cd38,null))['catch'](handleError(_0x45cd38,null));};exports[_0x82a8('0x4f')]=function(_0x2a445c,_0x5ec6e2,_0x561c09){var _0x586b6e=[{'name':_0x82a8('0x50'),'label':'priority','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 _0x3dfee1='';return db[_0x82a8('0x28')][_0x82a8('0x46')]({'where':{'id':_0x2a445c['params']['id']},'attributes':['id',_0x82a8('0x51'),_0x82a8('0x52'),_0x82a8('0x53'),_0x82a8('0x54'),'consumerKey',_0x82a8('0x55'),_0x82a8('0x56'),'tokenSecret']})[_0x82a8('0x22')](handleEntityNotFound(_0x5ec6e2,null))['then'](function(_0x4ea376){if(_0x4ea376){_0x3dfee1=_0x4ea376[_0x82a8('0x51')];var _0x8b2939=_0x3dfee1[_0x82a8('0x57')](-0x1);if(_0x8b2939==='/'){_0x3dfee1=_0x3dfee1['substring'](0x0,_0x3dfee1[_0x82a8('0x58')](_0x8b2939));}var _0x39ec67={'method':_0x82a8('0x59'),'uri':util[_0x82a8('0x5a')](_0x82a8('0x5b'),_0x3dfee1),'headers':{'Content-Type':_0x82a8('0x5c'),'Accept':'application/json'},'json':!![]};if(_0x4ea376[_0x82a8('0x52')]===_0x82a8('0x5d')){_0x39ec67[_0x82a8('0x5e')][_0x82a8('0x5f')]=util[_0x82a8('0x5a')](_0x82a8('0x60'),new Buffer(util['format'](_0x82a8('0x61'),_0x4ea376[_0x82a8('0x53')],_0x4ea376[_0x82a8('0x54')]))[_0x82a8('0x62')]('base64'));}return rp(_0x39ec67)['then'](function(_0xc5d20a){return _0x586b6e[_0x82a8('0x63')](_['map'](_0xc5d20a[_0x82a8('0x64')][_0x82a8('0x65')],function(_0x43b6d6){return{'id':_0x43b6d6[_0x82a8('0x25')],'name':_0x43b6d6[_0x82a8('0x25')],'type':_0x43b6d6[_0x82a8('0x2b')],'active':_0x43b6d6['active'],'label':_0x43b6d6[_0x82a8('0x66')],'custom':!![]};}));});}})['then'](function(_0x57033b){return{'count':_0x57033b['length'],'rows':_0x57033b};})[_0x82a8('0x22')](respondWithResult(_0x5ec6e2,null))[_0x82a8('0x3f')](function(_0x38a74a){var _0x4f5484=_0x2a445c[_0x82a8('0x2d')][_0x82a8('0x67')]?0x1f4:_0x38a74a[_0x82a8('0x68')]||0x1f4;logger[_0x82a8('0x23')](_0x82a8('0x69'),_0x82a8('0x4f'),_0x4f5484,JSON[_0x82a8('0x6a')](_0x38a74a));delete _0x38a74a[_0x82a8('0x25')];if(_0x4f5484===0x191){_0x4f5484=0x190;}_0x5ec6e2[_0x82a8('0x18')](_0x4f5484)[_0x82a8('0x26')](_0x2a445c[_0x82a8('0x2d')][_0x82a8('0x67')]?{'message':_0x82a8('0x6b'),'statusCode':_0x38a74a[_0x82a8('0x68')]}:_0x38a74a);});};