9cb5d0374d8f200ed5e4aebdab27df1f482674bf
[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 _0x7cd2=['remoteUri','authType','username','password','consumerKey','consumerSecret','token','slice','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','toString','base64','concat','_embedded','entries','active','label','statusCode','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','ejs','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','jayson/promise','http','request','then','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','status','end','json','offset','limit','set','apply','reject','save','update','destroy','stack','name','send','index','map','DeskAccount','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','show','params','rawAttributes','include','options','find','create','body','getConfigurations','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','DeskConfiguration','DeskField','getFields','priority'];(function(_0xa87763,_0x121e14){var _0x19c6ca=function(_0xcba6c8){while(--_0xcba6c8){_0xa87763['push'](_0xa87763['shift']());}};_0x19c6ca(++_0x121e14);}(_0x7cd2,0x118));var _0x27cd=function(_0x4da74f,_0x5c0b8a){_0x4da74f=_0x4da74f-0x0;var _0x18e1d1=_0x7cd2[_0x4da74f];return _0x18e1d1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x27cd('0x0'));var rimraf=require(_0x27cd('0x1'));var zipdir=require(_0x27cd('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x27cd('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x27cd('0x4'));var util=require(_0x27cd('0x5'));var path=require(_0x27cd('0x6'));var sox=require(_0x27cd('0x7'));var csv=require(_0x27cd('0x8'));var ejs=require(_0x27cd('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x27cd('0xa'));var crypto=require('crypto');var jsforce=require(_0x27cd('0xb'));var deskjs=require(_0x27cd('0xc'));var toCsv=require('to-csv');var querystring=require(_0x27cd('0xd'));var Papa=require(_0x27cd('0xe'));var Redis=require(_0x27cd('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x27cd('0x10'));var as=require(_0x27cd('0x11'));var hardwareService=require(_0x27cd('0x12'));var logger=require(_0x27cd('0x13'))('api');var utils=require(_0x27cd('0x14'));var config=require(_0x27cd('0x15'));var licenseUtil=require(_0x27cd('0x16'));var db=require(_0x27cd('0x17'))['db'];var integrations=require(_0x27cd('0x18'));var jayson=require(_0x27cd('0x19'));var client=jayson['client'][_0x27cd('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x3f2855,_0x4c7df5,_0x425bf7,_0x72e670){return new BPromise(function(_0x284b41,_0x62d519){var _0x56e5b2=_0x72e670||client;return _0x56e5b2[_0x27cd('0x1b')](_0x3f2855,_0x425bf7)[_0x27cd('0x1c')](function(_0x2d9203){logger['info'](_0x27cd('0x1d'),_0x4c7df5,_0x27cd('0x1e'));logger[_0x27cd('0x1f')](_0x27cd('0x20'),_0x4c7df5,_0x27cd('0x1e'),JSON[_0x27cd('0x21')](_0x2d9203));if(_0x2d9203[_0x27cd('0x22')]){if(_0x2d9203['error']['code']===0x1f4){logger[_0x27cd('0x22')](_0x27cd('0x1d'),_0x4c7df5,_0x2d9203[_0x27cd('0x22')][_0x27cd('0x23')]);return _0x62d519(_0x2d9203['error'][_0x27cd('0x23')]);}logger[_0x27cd('0x22')](_0x27cd('0x1d'),_0x4c7df5,_0x2d9203['error'][_0x27cd('0x23')]);return _0x284b41(_0x2d9203[_0x27cd('0x22')][_0x27cd('0x23')]);}else{logger[_0x27cd('0x24')](_0x27cd('0x1d'),_0x4c7df5,_0x27cd('0x1e'));_0x284b41(_0x2d9203[_0x27cd('0x25')][_0x27cd('0x23')]);}})[_0x27cd('0x26')](function(_0x455901){logger['error']('DeskAccount,\x20%s,\x20%s',_0x4c7df5,_0x455901);_0x62d519(_0x455901);});});}function respondWithStatusCode(_0x438332,_0x1f9c08){_0x1f9c08=_0x1f9c08||0xcc;return function(_0x5bc0ba){if(_0x5bc0ba){return _0x438332['sendStatus'](_0x1f9c08);}return _0x438332[_0x27cd('0x27')](_0x1f9c08)[_0x27cd('0x28')]();};}function respondWithResult(_0x189f3a,_0x58d06f){_0x58d06f=_0x58d06f||0xc8;return function(_0x368c84){if(_0x368c84){return _0x189f3a[_0x27cd('0x27')](_0x58d06f)[_0x27cd('0x29')](_0x368c84);}};}function respondWithFilteredResult(_0x10e223,_0x3bdafe){return function(_0x44cb7f){if(_0x44cb7f){var _0x299153=_0x44cb7f['count'],_0x3a3566=_0x3bdafe['offset'],_0x36013f=_0x3bdafe[_0x27cd('0x2a')]+_0x3bdafe[_0x27cd('0x2b')],_0x3161e2;if(_0x36013f>=_0x299153){_0x36013f=_0x299153;_0x3161e2=0xc8;}else{_0x3161e2=0xce;}_0x10e223[_0x27cd('0x27')](_0x3161e2);return _0x10e223[_0x27cd('0x2c')]('Content-Range',_0x3a3566+'-'+_0x36013f+'/'+_0x299153)[_0x27cd('0x29')](_0x44cb7f);}return null;};}function patchUpdates(_0x209f53){return function(_0x57d7a){try{jsonpatch[_0x27cd('0x2d')](_0x57d7a,_0x209f53,!![]);}catch(_0x1807e1){return BPromise[_0x27cd('0x2e')](_0x1807e1);}return _0x57d7a[_0x27cd('0x2f')]();};}function saveUpdates(_0xf3072c,_0x507feb){return function(_0x35495b){if(_0x35495b){return _0x35495b[_0x27cd('0x30')](_0xf3072c)['then'](function(_0xea01fd){return _0xea01fd;});}return null;};}function removeEntity(_0x353ecd,_0x5edd3){return function(_0x39e8da){if(_0x39e8da){return _0x39e8da[_0x27cd('0x31')]()[_0x27cd('0x1c')](function(){_0x353ecd[_0x27cd('0x27')](0xcc)[_0x27cd('0x28')]();});}};}function handleEntityNotFound(_0x31099f,_0x33231b){return function(_0x1c550b){if(!_0x1c550b){_0x31099f['sendStatus'](0x194);}return _0x1c550b;};}function handleError(_0x4ff83b,_0x26d861){_0x26d861=_0x26d861||0x1f4;return function(_0x565feb){logger['error'](_0x565feb[_0x27cd('0x32')]);if(_0x565feb[_0x27cd('0x33')]){delete _0x565feb[_0x27cd('0x33')];}_0x4ff83b[_0x27cd('0x27')](_0x26d861)[_0x27cd('0x34')](_0x565feb);};}exports[_0x27cd('0x35')]=function(_0x156619,_0x52cdae){var _0x409851={},_0x5d8532={},_0x1cde78={'count':0x0,'rows':[]};var _0xb0c9d6=_[_0x27cd('0x36')](db[_0x27cd('0x37')]['rawAttributes'],function(_0x5e7a4b){return{'name':_0x5e7a4b[_0x27cd('0x38')],'type':_0x5e7a4b[_0x27cd('0x39')][_0x27cd('0x3a')]};});_0x5d8532[_0x27cd('0x3b')]=_['map'](_0xb0c9d6,_0x27cd('0x33'));_0x5d8532[_0x27cd('0x3c')]=_[_0x27cd('0x3d')](_0x156619[_0x27cd('0x3c')]);_0x5d8532[_0x27cd('0x3e')]=_[_0x27cd('0x3f')](_0x5d8532['model'],_0x5d8532[_0x27cd('0x3c')]);_0x409851[_0x27cd('0x40')]=_[_0x27cd('0x3f')](_0x5d8532[_0x27cd('0x3b')],qs[_0x27cd('0x41')](_0x156619['query']['fields']));_0x409851[_0x27cd('0x40')]=_0x409851[_0x27cd('0x40')][_0x27cd('0x42')]?_0x409851[_0x27cd('0x40')]:_0x5d8532[_0x27cd('0x3b')];if(!_0x156619[_0x27cd('0x3c')][_0x27cd('0x43')](_0x27cd('0x44'))){_0x409851[_0x27cd('0x2b')]=qs[_0x27cd('0x2b')](_0x156619['query'][_0x27cd('0x2b')]);_0x409851['offset']=qs[_0x27cd('0x2a')](_0x156619[_0x27cd('0x3c')][_0x27cd('0x2a')]);}_0x409851[_0x27cd('0x45')]=qs[_0x27cd('0x46')](_0x156619['query'][_0x27cd('0x46')]);_0x409851[_0x27cd('0x47')]=qs[_0x27cd('0x3e')](_[_0x27cd('0x48')](_0x156619['query'],_0x5d8532['filters']),_0xb0c9d6);if(_0x156619['query'][_0x27cd('0x49')]){_0x409851['where']=_[_0x27cd('0x4a')](_0x409851['where'],{'$or':_['map'](_0xb0c9d6,function(_0x1d3df6){if(_0x1d3df6[_0x27cd('0x39')]!==_0x27cd('0x4b')){var _0x5519d3={};_0x5519d3[_0x1d3df6[_0x27cd('0x33')]]={'$like':'%'+_0x156619['query'][_0x27cd('0x49')]+'%'};return _0x5519d3;}})});}_0x409851=_[_0x27cd('0x4a')]({},_0x409851,_0x156619['options']);var _0xea864c={'where':_0x409851[_0x27cd('0x47')]};return db[_0x27cd('0x37')]['count'](_0xea864c)[_0x27cd('0x1c')](function(_0x12c600){_0x1cde78['count']=_0x12c600;if(_0x156619[_0x27cd('0x3c')][_0x27cd('0x4c')]){_0x409851['include']=[{'all':!![]}];}return db['DeskAccount'][_0x27cd('0x4d')](_0x409851);})[_0x27cd('0x1c')](function(_0x310f31){_0x1cde78[_0x27cd('0x4e')]=_0x310f31;return _0x1cde78;})[_0x27cd('0x1c')](respondWithFilteredResult(_0x52cdae,_0x409851))[_0x27cd('0x26')](handleError(_0x52cdae,null));};exports[_0x27cd('0x4f')]=function(_0x2fbe3e,_0x3b970e){var _0x44d4e7={'raw':![],'where':{'id':_0x2fbe3e[_0x27cd('0x50')]['id']}},_0x15332d={};_0x15332d[_0x27cd('0x3b')]=_[_0x27cd('0x3d')](db[_0x27cd('0x37')][_0x27cd('0x51')]);_0x15332d['query']=_[_0x27cd('0x3d')](_0x2fbe3e[_0x27cd('0x3c')]);_0x15332d['filters']=_[_0x27cd('0x3f')](_0x15332d[_0x27cd('0x3b')],_0x15332d['query']);_0x44d4e7['attributes']=_['intersection'](_0x15332d[_0x27cd('0x3b')],qs[_0x27cd('0x41')](_0x2fbe3e[_0x27cd('0x3c')][_0x27cd('0x41')]));_0x44d4e7[_0x27cd('0x40')]=_0x44d4e7[_0x27cd('0x40')][_0x27cd('0x42')]?_0x44d4e7[_0x27cd('0x40')]:_0x15332d[_0x27cd('0x3b')];if(_0x2fbe3e[_0x27cd('0x3c')][_0x27cd('0x4c')]){_0x44d4e7[_0x27cd('0x52')]=[{'all':!![]}];}_0x44d4e7=_[_0x27cd('0x4a')]({},_0x44d4e7,_0x2fbe3e[_0x27cd('0x53')]);return db[_0x27cd('0x37')][_0x27cd('0x54')](_0x44d4e7)[_0x27cd('0x1c')](handleEntityNotFound(_0x3b970e,null))['then'](respondWithResult(_0x3b970e,null))[_0x27cd('0x26')](handleError(_0x3b970e,null));};exports['create']=function(_0x25f736,_0x1c7c43){return db[_0x27cd('0x37')][_0x27cd('0x55')](_0x25f736[_0x27cd('0x56')],{})[_0x27cd('0x1c')](respondWithResult(_0x1c7c43,0xc9))[_0x27cd('0x26')](handleError(_0x1c7c43,null));};exports['update']=function(_0x3c9107,_0x418a01){if(_0x3c9107[_0x27cd('0x56')]['id']){delete _0x3c9107[_0x27cd('0x56')]['id'];}return db[_0x27cd('0x37')][_0x27cd('0x54')]({'where':{'id':_0x3c9107[_0x27cd('0x50')]['id']}})[_0x27cd('0x1c')](handleEntityNotFound(_0x418a01,null))[_0x27cd('0x1c')](saveUpdates(_0x3c9107['body'],null))['then'](respondWithResult(_0x418a01,null))['catch'](handleError(_0x418a01,null));};exports[_0x27cd('0x31')]=function(_0x55f335,_0x58ac7a){return db['DeskAccount'][_0x27cd('0x54')]({'where':{'id':_0x55f335[_0x27cd('0x50')]['id']}})['then'](handleEntityNotFound(_0x58ac7a,null))[_0x27cd('0x1c')](removeEntity(_0x58ac7a,null))[_0x27cd('0x26')](handleError(_0x58ac7a,null));};exports[_0x27cd('0x57')]=function(_0x95990f,_0x3ee21e,_0x21a009){var _0x3b15ed={};var _0x27929c={};var _0x4720f3;var _0x3e06ab;return db['DeskAccount'][_0x27cd('0x58')]({'where':{'id':_0x95990f[_0x27cd('0x50')]['id']}})[_0x27cd('0x1c')](handleEntityNotFound(_0x3ee21e,null))[_0x27cd('0x1c')](function(_0x47f2ee){if(_0x47f2ee){_0x4720f3=_0x47f2ee;_0x27929c[_0x27cd('0x3b')]=_[_0x27cd('0x3d')](db['DeskConfiguration'][_0x27cd('0x51')]);_0x27929c[_0x27cd('0x3c')]=_[_0x27cd('0x3d')](_0x95990f['query']);_0x27929c[_0x27cd('0x3e')]=_[_0x27cd('0x3f')](_0x27929c[_0x27cd('0x3b')],_0x27929c[_0x27cd('0x3c')]);_0x3b15ed[_0x27cd('0x40')]=_[_0x27cd('0x3f')](_0x27929c[_0x27cd('0x3b')],qs[_0x27cd('0x41')](_0x95990f['query']['fields']));_0x3b15ed[_0x27cd('0x40')]=_0x3b15ed[_0x27cd('0x40')][_0x27cd('0x42')]?_0x3b15ed[_0x27cd('0x40')]:_0x27929c[_0x27cd('0x3b')];_0x3b15ed[_0x27cd('0x45')]=qs[_0x27cd('0x46')](_0x95990f['query'][_0x27cd('0x46')]);_0x3b15ed[_0x27cd('0x47')]=qs['filters'](_[_0x27cd('0x48')](_0x95990f[_0x27cd('0x3c')],_0x27929c['filters']));if(_0x95990f[_0x27cd('0x3c')][_0x27cd('0x49')]){_0x3b15ed[_0x27cd('0x47')]=_[_0x27cd('0x4a')](_0x3b15ed[_0x27cd('0x47')],{'$or':_[_0x27cd('0x36')](_0x3b15ed[_0x27cd('0x40')],function(_0xee9e27){var _0x53e6e8={};_0x53e6e8[_0xee9e27]={'$like':'%'+_0x95990f[_0x27cd('0x3c')][_0x27cd('0x49')]+'%'};return _0x53e6e8;})});}_0x3b15ed=_['merge']({},_0x3b15ed,_0x95990f['options']);return _0x4720f3[_0x27cd('0x57')](_0x3b15ed);}})[_0x27cd('0x1c')](function(_0x421f69){if(_0x421f69){_0x3e06ab=_0x421f69[_0x27cd('0x42')];if(!_0x95990f[_0x27cd('0x3c')]['hasOwnProperty'](_0x27cd('0x44'))){_0x3b15ed['limit']=qs['limit'](_0x95990f[_0x27cd('0x3c')]['limit']);_0x3b15ed[_0x27cd('0x2a')]=qs[_0x27cd('0x2a')](_0x95990f[_0x27cd('0x3c')][_0x27cd('0x2a')]);}return _0x4720f3[_0x27cd('0x57')](_0x3b15ed);}})[_0x27cd('0x1c')](function(_0x45ff90){if(_0x45ff90){return _0x45ff90?{'count':_0x3e06ab,'rows':_0x45ff90}:null;}})[_0x27cd('0x1c')](respondWithResult(_0x3ee21e,null))[_0x27cd('0x26')](handleError(_0x3ee21e,null));};exports['addConfiguration']=function(_0x463476,_0x2e439b,_0x34eb09){if(_0x463476['body']['id']){delete _0x463476[_0x27cd('0x56')]['id'];}return db[_0x27cd('0x37')][_0x27cd('0x58')]({'where':{'id':_0x463476['params']['id']}})[_0x27cd('0x1c')](handleEntityNotFound(_0x2e439b,null))[_0x27cd('0x1c')](function(_0x46e46e){if(_0x46e46e){_0x463476[_0x27cd('0x56')][_0x27cd('0x59')]=_0x46e46e['id'];_0x463476[_0x27cd('0x56')][_0x27cd('0x5a')]=integrations[_0x27cd('0x5b')](_0x463476[_0x27cd('0x56')][_0x27cd('0x5c')],_0x463476[_0x27cd('0x56')][_0x27cd('0x39')]);_0x463476[_0x27cd('0x56')][_0x27cd('0x5d')]=integrations['getDescriptions'](_0x463476[_0x27cd('0x56')][_0x27cd('0x5c')],_0x463476[_0x27cd('0x56')]['type']);return db[_0x27cd('0x5e')]['create'](_0x463476[_0x27cd('0x56')],{'include':[{'model':db[_0x27cd('0x5f')],'as':'Subjects'},{'model':db[_0x27cd('0x5f')],'as':_0x27cd('0x5d')}]});}return null;})[_0x27cd('0x1c')](respondWithResult(_0x2e439b,null))[_0x27cd('0x26')](handleError(_0x2e439b,null));};exports[_0x27cd('0x60')]=function(_0x5a59b1,_0x59b77a,_0x27852d){var _0x3fba07=[{'name':_0x27cd('0x61'),'label':_0x27cd('0x61'),'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 _0x54c671='';return db[_0x27cd('0x37')][_0x27cd('0x58')]({'where':{'id':_0x5a59b1['params']['id']},'attributes':['id',_0x27cd('0x62'),_0x27cd('0x63'),_0x27cd('0x64'),_0x27cd('0x65'),_0x27cd('0x66'),_0x27cd('0x67'),_0x27cd('0x68'),'tokenSecret']})['then'](handleEntityNotFound(_0x59b77a,null))[_0x27cd('0x1c')](function(_0x206178){if(_0x206178){_0x54c671=_0x206178[_0x27cd('0x62')];var _0x4d2033=_0x54c671[_0x27cd('0x69')](-0x1);if(_0x4d2033==='/'){_0x54c671=_0x54c671[_0x27cd('0x6a')](0x0,_0x54c671[_0x27cd('0x6b')](_0x4d2033));}var _0x50fed4={'method':_0x27cd('0x6c'),'uri':util[_0x27cd('0x6d')](_0x27cd('0x6e'),_0x54c671),'headers':{'Content-Type':_0x27cd('0x6f'),'Accept':'application/json'},'json':!![]};if(_0x206178[_0x27cd('0x63')]===_0x27cd('0x70')){_0x50fed4[_0x27cd('0x71')][_0x27cd('0x72')]=util[_0x27cd('0x6d')](_0x27cd('0x73'),new Buffer(util[_0x27cd('0x6d')]('%s:%s',_0x206178[_0x27cd('0x64')],_0x206178['password']))[_0x27cd('0x74')](_0x27cd('0x75')));}return rp(_0x50fed4)['then'](function(_0x47012c){return _0x3fba07[_0x27cd('0x76')](_['map'](_0x47012c[_0x27cd('0x77')][_0x27cd('0x78')],function(_0x24e7dd){return{'id':_0x24e7dd['name'],'name':_0x24e7dd['name'],'type':_0x24e7dd[_0x27cd('0x39')],'active':_0x24e7dd[_0x27cd('0x79')],'label':_0x24e7dd[_0x27cd('0x7a')],'custom':!![]};}));});}})['then'](function(_0xfa4a53){return{'count':_0xfa4a53[_0x27cd('0x42')],'rows':_0xfa4a53};})[_0x27cd('0x1c')](respondWithResult(_0x59b77a,null))[_0x27cd('0x26')](function(_0x40711b){var _0x40cb63=_0x5a59b1['query']['test']?0x1f4:_0x40711b[_0x27cd('0x7b')]||0x1f4;logger[_0x27cd('0x22')]('getFields,\x20%s,\x20%s,\x20%s',_0x27cd('0x60'),_0x40cb63,JSON['stringify'](_0x40711b));delete _0x40711b[_0x27cd('0x33')];if(_0x40cb63===0x191){_0x40cb63=0x190;}_0x59b77a[_0x27cd('0x27')](_0x40cb63)[_0x27cd('0x34')](_0x5a59b1[_0x27cd('0x3c')][_0x27cd('0x7c')]?{'message':_0x27cd('0x7d'),'statusCode':_0x40711b[_0x27cd('0x7b')]}:_0x40711b);});};