68769093469c34c30c8b6357ee54360f6ac71e29
[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 _0x96d0=['model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','VIRTUAL','filter','merge','options','findAll','catch','params','keys','length','includeAll','create','body','getConfigurations','findOne','DeskConfiguration','addConfiguration','Subjects','getSubjects','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','username','password','consumerKey','consumerSecret','token','tokenSecret','slice','lastIndexOf','GET','format','%s/custom_fields','application/json','authType','basic','headers','Authorization','Basic\x20%s','%s:%s','toString','base64','_embedded','entries','active','label','test','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','jayson/promise','client','http','request','info','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','sendStatus','status','json','count','offset','limit','set','Content-Range','reject','save','update','then','destroy','end','stack','name','index','map','DeskAccount','rawAttributes','type'];(function(_0x433a86,_0x175b5c){var _0x23000c=function(_0x4b1fa0){while(--_0x4b1fa0){_0x433a86['push'](_0x433a86['shift']());}};_0x23000c(++_0x175b5c);}(_0x96d0,0x1af));var _0x096d=function(_0x10106a,_0x343b68){_0x10106a=_0x10106a-0x0;var _0x5da8b9=_0x96d0[_0x10106a];return _0x5da8b9;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x096d('0x0'));var rimraf=require(_0x096d('0x1'));var zipdir=require(_0x096d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x096d('0x3'));var moment=require(_0x096d('0x4'));var BPromise=require(_0x096d('0x5'));var Mustache=require(_0x096d('0x6'));var util=require(_0x096d('0x7'));var path=require(_0x096d('0x8'));var sox=require(_0x096d('0x9'));var csv=require(_0x096d('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x096d('0xb'));var squel=require(_0x096d('0xc'));var crypto=require(_0x096d('0xd'));var jsforce=require(_0x096d('0xe'));var deskjs=require(_0x096d('0xf'));var toCsv=require(_0x096d('0xa'));var querystring=require(_0x096d('0x10'));var Papa=require(_0x096d('0x11'));var Redis=require(_0x096d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x096d('0x13'));var as=require(_0x096d('0x14'));var hardwareService=require(_0x096d('0x15'));var logger=require(_0x096d('0x16'))('api');var utils=require(_0x096d('0x17'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0x096d('0x18'));var client=jayson[_0x096d('0x19')][_0x096d('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x204a85,_0x196ced,_0x4448c9,_0xa68c9a){return new BPromise(function(_0x21d0e4,_0x2df1cd){var _0x2a0757=_0xa68c9a||client;return _0x2a0757[_0x096d('0x1b')](_0x204a85,_0x4448c9)['then'](function(_0x419099){logger[_0x096d('0x1c')](_0x096d('0x1d'),_0x196ced,_0x096d('0x1e'));logger[_0x096d('0x1f')](_0x096d('0x20'),_0x196ced,'request\x20sent',JSON['stringify'](_0x419099));if(_0x419099[_0x096d('0x21')]){if(_0x419099['error'][_0x096d('0x22')]===0x1f4){logger[_0x096d('0x21')]('DeskAccount,\x20%s,\x20%s',_0x196ced,_0x419099[_0x096d('0x21')][_0x096d('0x23')]);return _0x2df1cd(_0x419099['error']['message']);}logger[_0x096d('0x21')]('DeskAccount,\x20%s,\x20%s',_0x196ced,_0x419099[_0x096d('0x21')]['message']);return _0x21d0e4(_0x419099[_0x096d('0x21')][_0x096d('0x23')]);}else{logger[_0x096d('0x1c')](_0x096d('0x1d'),_0x196ced,_0x096d('0x1e'));_0x21d0e4(_0x419099['result'][_0x096d('0x23')]);}})['catch'](function(_0x5485be){logger[_0x096d('0x21')](_0x096d('0x1d'),_0x196ced,_0x5485be);_0x2df1cd(_0x5485be);});});}function respondWithStatusCode(_0x57d044,_0x372ba3){_0x372ba3=_0x372ba3||0xcc;return function(_0x48b37a){if(_0x48b37a){return _0x57d044[_0x096d('0x24')](_0x372ba3);}return _0x57d044[_0x096d('0x25')](_0x372ba3)['end']();};}function respondWithResult(_0x3636ca,_0x450c05){_0x450c05=_0x450c05||0xc8;return function(_0x530de3){if(_0x530de3){return _0x3636ca[_0x096d('0x25')](_0x450c05)[_0x096d('0x26')](_0x530de3);}};}function respondWithFilteredResult(_0xb417c1,_0x1f39f8){return function(_0x49ff26){if(_0x49ff26){var _0x162b0d=_0x49ff26[_0x096d('0x27')],_0x2b4f5b=_0x1f39f8[_0x096d('0x28')],_0x58aa6a=_0x1f39f8[_0x096d('0x28')]+_0x1f39f8[_0x096d('0x29')],_0x42d92d;if(_0x58aa6a>=_0x162b0d){_0x58aa6a=_0x162b0d;_0x42d92d=0xc8;}else{_0x42d92d=0xce;}_0xb417c1[_0x096d('0x25')](_0x42d92d);return _0xb417c1[_0x096d('0x2a')](_0x096d('0x2b'),_0x2b4f5b+'-'+_0x58aa6a+'/'+_0x162b0d)[_0x096d('0x26')](_0x49ff26);}return null;};}function patchUpdates(_0x18f0ea){return function(_0x384641){try{jsonpatch['apply'](_0x384641,_0x18f0ea,!![]);}catch(_0x128092){return BPromise[_0x096d('0x2c')](_0x128092);}return _0x384641[_0x096d('0x2d')]();};}function saveUpdates(_0x3c4878,_0x244a73){return function(_0x27899f){if(_0x27899f){return _0x27899f[_0x096d('0x2e')](_0x3c4878)[_0x096d('0x2f')](function(_0x48999b){return _0x48999b;});}return null;};}function removeEntity(_0x1d02b3,_0x311ceb){return function(_0x2df6cc){if(_0x2df6cc){return _0x2df6cc[_0x096d('0x30')]()[_0x096d('0x2f')](function(){_0x1d02b3[_0x096d('0x25')](0xcc)[_0x096d('0x31')]();});}};}function handleEntityNotFound(_0x4691d9,_0x1bf283){return function(_0x4bac4d){if(!_0x4bac4d){_0x4691d9[_0x096d('0x24')](0x194);}return _0x4bac4d;};}function handleError(_0x485589,_0x17c688){_0x17c688=_0x17c688||0x1f4;return function(_0x3807a3){logger[_0x096d('0x21')](_0x3807a3[_0x096d('0x32')]);if(_0x3807a3[_0x096d('0x33')]){delete _0x3807a3[_0x096d('0x33')];}_0x485589['status'](_0x17c688)['send'](_0x3807a3);};}exports[_0x096d('0x34')]=function(_0x14ef08,_0x1eab41){var _0x2cfd6a={},_0x16805d={},_0x2e44fb={'count':0x0,'rows':[]};var _0xc2de3a=_[_0x096d('0x35')](db[_0x096d('0x36')][_0x096d('0x37')],function(_0x6af665){return{'name':_0x6af665['fieldName'],'type':_0x6af665[_0x096d('0x38')]['key']};});_0x16805d[_0x096d('0x39')]=_[_0x096d('0x35')](_0xc2de3a,_0x096d('0x33'));_0x16805d[_0x096d('0x3a')]=_['keys'](_0x14ef08[_0x096d('0x3a')]);_0x16805d[_0x096d('0x3b')]=_[_0x096d('0x3c')](_0x16805d['model'],_0x16805d['query']);_0x2cfd6a[_0x096d('0x3d')]=_[_0x096d('0x3c')](_0x16805d[_0x096d('0x39')],qs[_0x096d('0x3e')](_0x14ef08[_0x096d('0x3a')][_0x096d('0x3e')]));_0x2cfd6a[_0x096d('0x3d')]=_0x2cfd6a[_0x096d('0x3d')]['length']?_0x2cfd6a[_0x096d('0x3d')]:_0x16805d[_0x096d('0x39')];if(!_0x14ef08[_0x096d('0x3a')][_0x096d('0x3f')](_0x096d('0x40'))){_0x2cfd6a['limit']=qs[_0x096d('0x29')](_0x14ef08[_0x096d('0x3a')]['limit']);_0x2cfd6a[_0x096d('0x28')]=qs[_0x096d('0x28')](_0x14ef08[_0x096d('0x3a')][_0x096d('0x28')]);}_0x2cfd6a[_0x096d('0x41')]=qs[_0x096d('0x42')](_0x14ef08['query'][_0x096d('0x42')]);_0x2cfd6a[_0x096d('0x43')]=qs['filters'](_['pick'](_0x14ef08[_0x096d('0x3a')],_0x16805d[_0x096d('0x3b')]),_0xc2de3a);if(_0x14ef08[_0x096d('0x3a')]['filter']){_0x2cfd6a[_0x096d('0x43')]=_['merge'](_0x2cfd6a[_0x096d('0x43')],{'$or':_[_0x096d('0x35')](_0xc2de3a,function(_0xa32a61){if(_0xa32a61[_0x096d('0x38')]!==_0x096d('0x44')){var _0x4cd504={};_0x4cd504[_0xa32a61[_0x096d('0x33')]]={'$like':'%'+_0x14ef08[_0x096d('0x3a')][_0x096d('0x45')]+'%'};return _0x4cd504;}})});}_0x2cfd6a=_[_0x096d('0x46')]({},_0x2cfd6a,_0x14ef08[_0x096d('0x47')]);var _0x128a20={'where':_0x2cfd6a[_0x096d('0x43')]};return db['DeskAccount'][_0x096d('0x27')](_0x128a20)[_0x096d('0x2f')](function(_0xeed907){_0x2e44fb['count']=_0xeed907;if(_0x14ef08[_0x096d('0x3a')]['includeAll']){_0x2cfd6a['include']=[{'all':!![]}];}return db[_0x096d('0x36')][_0x096d('0x48')](_0x2cfd6a);})[_0x096d('0x2f')](function(_0x460cdc){_0x2e44fb['rows']=_0x460cdc;return _0x2e44fb;})[_0x096d('0x2f')](respondWithFilteredResult(_0x1eab41,_0x2cfd6a))[_0x096d('0x49')](handleError(_0x1eab41,null));};exports['show']=function(_0xe9a6e5,_0x26afb5){var _0x5cff33={'raw':![],'where':{'id':_0xe9a6e5[_0x096d('0x4a')]['id']}},_0x5eaf00={};_0x5eaf00['model']=_[_0x096d('0x4b')](db[_0x096d('0x36')][_0x096d('0x37')]);_0x5eaf00[_0x096d('0x3a')]=_[_0x096d('0x4b')](_0xe9a6e5[_0x096d('0x3a')]);_0x5eaf00[_0x096d('0x3b')]=_[_0x096d('0x3c')](_0x5eaf00[_0x096d('0x39')],_0x5eaf00[_0x096d('0x3a')]);_0x5cff33['attributes']=_['intersection'](_0x5eaf00[_0x096d('0x39')],qs[_0x096d('0x3e')](_0xe9a6e5[_0x096d('0x3a')]['fields']));_0x5cff33['attributes']=_0x5cff33[_0x096d('0x3d')][_0x096d('0x4c')]?_0x5cff33['attributes']:_0x5eaf00[_0x096d('0x39')];if(_0xe9a6e5[_0x096d('0x3a')][_0x096d('0x4d')]){_0x5cff33['include']=[{'all':!![]}];}_0x5cff33=_[_0x096d('0x46')]({},_0x5cff33,_0xe9a6e5[_0x096d('0x47')]);return db[_0x096d('0x36')]['find'](_0x5cff33)[_0x096d('0x2f')](handleEntityNotFound(_0x26afb5,null))[_0x096d('0x2f')](respondWithResult(_0x26afb5,null))[_0x096d('0x49')](handleError(_0x26afb5,null));};exports[_0x096d('0x4e')]=function(_0x151663,_0x34ecac){return db['DeskAccount'][_0x096d('0x4e')](_0x151663[_0x096d('0x4f')],{})[_0x096d('0x2f')](respondWithResult(_0x34ecac,0xc9))[_0x096d('0x49')](handleError(_0x34ecac,null));};exports[_0x096d('0x2e')]=function(_0x5838c4,_0x47310c){if(_0x5838c4['body']['id']){delete _0x5838c4['body']['id'];}return db[_0x096d('0x36')]['find']({'where':{'id':_0x5838c4[_0x096d('0x4a')]['id']}})['then'](handleEntityNotFound(_0x47310c,null))['then'](saveUpdates(_0x5838c4[_0x096d('0x4f')],null))[_0x096d('0x2f')](respondWithResult(_0x47310c,null))['catch'](handleError(_0x47310c,null));};exports[_0x096d('0x30')]=function(_0x444e03,_0x53144a){return db[_0x096d('0x36')]['find']({'where':{'id':_0x444e03[_0x096d('0x4a')]['id']}})[_0x096d('0x2f')](handleEntityNotFound(_0x53144a,null))[_0x096d('0x2f')](removeEntity(_0x53144a,null))[_0x096d('0x49')](handleError(_0x53144a,null));};exports[_0x096d('0x50')]=function(_0xd571b2,_0x3b04ee,_0x3e5816){var _0x11162a={};var _0x57a92e={};var _0x5991e9;var _0x43c065;return db['DeskAccount'][_0x096d('0x51')]({'where':{'id':_0xd571b2[_0x096d('0x4a')]['id']}})[_0x096d('0x2f')](handleEntityNotFound(_0x3b04ee,null))[_0x096d('0x2f')](function(_0x2dca82){if(_0x2dca82){_0x5991e9=_0x2dca82;_0x57a92e['model']=_['keys'](db[_0x096d('0x52')][_0x096d('0x37')]);_0x57a92e['query']=_[_0x096d('0x4b')](_0xd571b2[_0x096d('0x3a')]);_0x57a92e['filters']=_[_0x096d('0x3c')](_0x57a92e['model'],_0x57a92e['query']);_0x11162a['attributes']=_[_0x096d('0x3c')](_0x57a92e[_0x096d('0x39')],qs[_0x096d('0x3e')](_0xd571b2['query'][_0x096d('0x3e')]));_0x11162a[_0x096d('0x3d')]=_0x11162a[_0x096d('0x3d')]['length']?_0x11162a[_0x096d('0x3d')]:_0x57a92e[_0x096d('0x39')];_0x11162a['order']=qs[_0x096d('0x42')](_0xd571b2[_0x096d('0x3a')][_0x096d('0x42')]);_0x11162a[_0x096d('0x43')]=qs['filters'](_['pick'](_0xd571b2[_0x096d('0x3a')],_0x57a92e[_0x096d('0x3b')]));if(_0xd571b2[_0x096d('0x3a')][_0x096d('0x45')]){_0x11162a[_0x096d('0x43')]=_[_0x096d('0x46')](_0x11162a[_0x096d('0x43')],{'$or':_[_0x096d('0x35')](_0x11162a[_0x096d('0x3d')],function(_0x4718e8){var _0x57df31={};_0x57df31[_0x4718e8]={'$like':'%'+_0xd571b2[_0x096d('0x3a')][_0x096d('0x45')]+'%'};return _0x57df31;})});}_0x11162a=_[_0x096d('0x46')]({},_0x11162a,_0xd571b2[_0x096d('0x47')]);return _0x5991e9[_0x096d('0x50')](_0x11162a);}})['then'](function(_0x2ec9aa){if(_0x2ec9aa){_0x43c065=_0x2ec9aa[_0x096d('0x4c')];if(!_0xd571b2[_0x096d('0x3a')][_0x096d('0x3f')](_0x096d('0x40'))){_0x11162a[_0x096d('0x29')]=qs[_0x096d('0x29')](_0xd571b2[_0x096d('0x3a')]['limit']);_0x11162a[_0x096d('0x28')]=qs[_0x096d('0x28')](_0xd571b2[_0x096d('0x3a')][_0x096d('0x28')]);}return _0x5991e9[_0x096d('0x50')](_0x11162a);}})[_0x096d('0x2f')](function(_0x2f6077){if(_0x2f6077){return _0x2f6077?{'count':_0x43c065,'rows':_0x2f6077}:null;}})[_0x096d('0x2f')](respondWithResult(_0x3b04ee,null))[_0x096d('0x49')](handleError(_0x3b04ee,null));};exports[_0x096d('0x53')]=function(_0x2c042e,_0x50e902,_0x467f3a){if(_0x2c042e[_0x096d('0x4f')]['id']){delete _0x2c042e[_0x096d('0x4f')]['id'];}return db[_0x096d('0x36')][_0x096d('0x51')]({'where':{'id':_0x2c042e[_0x096d('0x4a')]['id']}})[_0x096d('0x2f')](handleEntityNotFound(_0x50e902,null))[_0x096d('0x2f')](function(_0x436452){if(_0x436452){_0x2c042e[_0x096d('0x4f')]['AccountId']=_0x436452['id'];_0x2c042e[_0x096d('0x4f')][_0x096d('0x54')]=integrations[_0x096d('0x55')](_0x2c042e[_0x096d('0x4f')]['channel'],_0x2c042e[_0x096d('0x4f')][_0x096d('0x38')]);_0x2c042e[_0x096d('0x4f')][_0x096d('0x56')]=integrations[_0x096d('0x57')](_0x2c042e[_0x096d('0x4f')]['channel'],_0x2c042e[_0x096d('0x4f')][_0x096d('0x38')]);return db[_0x096d('0x52')]['create'](_0x2c042e['body'],{'include':[{'model':db['DeskField'],'as':_0x096d('0x54')},{'model':db[_0x096d('0x58')],'as':_0x096d('0x56')}]});}return null;})[_0x096d('0x2f')](respondWithResult(_0x50e902,null))['catch'](handleError(_0x50e902,null));};exports[_0x096d('0x59')]=function(_0x37c2dd,_0x4ee34e,_0x20b448){var _0x371909=[{'name':_0x096d('0x5a'),'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 _0x55361b='';return db[_0x096d('0x36')]['findOne']({'where':{'id':_0x37c2dd[_0x096d('0x4a')]['id']},'attributes':['id',_0x096d('0x5b'),'authType',_0x096d('0x5c'),_0x096d('0x5d'),_0x096d('0x5e'),_0x096d('0x5f'),_0x096d('0x60'),_0x096d('0x61')]})[_0x096d('0x2f')](handleEntityNotFound(_0x4ee34e,null))[_0x096d('0x2f')](function(_0x1c111c){if(_0x1c111c){_0x55361b=_0x1c111c[_0x096d('0x5b')];var _0x1789d3=_0x55361b[_0x096d('0x62')](-0x1);if(_0x1789d3==='/'){_0x55361b=_0x55361b['substring'](0x0,_0x55361b[_0x096d('0x63')](_0x1789d3));}var _0x2d8d43={'method':_0x096d('0x64'),'uri':util[_0x096d('0x65')](_0x096d('0x66'),_0x55361b),'headers':{'Content-Type':'application/json','Accept':_0x096d('0x67')},'json':!![]};if(_0x1c111c[_0x096d('0x68')]===_0x096d('0x69')){_0x2d8d43[_0x096d('0x6a')][_0x096d('0x6b')]=util[_0x096d('0x65')](_0x096d('0x6c'),new Buffer(util['format'](_0x096d('0x6d'),_0x1c111c['username'],_0x1c111c[_0x096d('0x5d')]))[_0x096d('0x6e')](_0x096d('0x6f')));}return rp(_0x2d8d43)[_0x096d('0x2f')](function(_0x11edfa){return _0x371909['concat'](_[_0x096d('0x35')](_0x11edfa[_0x096d('0x70')][_0x096d('0x71')],function(_0x4ca135){return{'id':_0x4ca135[_0x096d('0x33')],'name':_0x4ca135[_0x096d('0x33')],'type':_0x4ca135[_0x096d('0x38')],'active':_0x4ca135[_0x096d('0x72')],'label':_0x4ca135[_0x096d('0x73')],'custom':!![]};}));});}})['then'](function(_0x4e407a){return{'count':_0x4e407a[_0x096d('0x4c')],'rows':_0x4e407a};})['then'](respondWithResult(_0x4ee34e,null))[_0x096d('0x49')](function(_0x483f4c){var _0xd83bc0=_0x37c2dd[_0x096d('0x3a')][_0x096d('0x74')]?0x1f4:_0x483f4c['statusCode']||0x1f4;logger[_0x096d('0x21')](_0x096d('0x75'),_0x096d('0x59'),_0xd83bc0,JSON[_0x096d('0x76')](_0x483f4c));delete _0x483f4c[_0x096d('0x33')];if(_0xd83bc0===0x191){_0xd83bc0=0x190;}_0x4ee34e['status'](_0xd83bc0)[_0x096d('0x77')](_0x37c2dd[_0x096d('0x3a')]['test']?{'message':_0x096d('0x78'),'statusCode':_0x483f4c[_0x096d('0x79')]}:_0x483f4c);});};