6069c3f1c47671b642cf7e371ac8bba4b8b64c11
[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 _0xabbb=['DeskField','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','format','%s/custom_fields','application/json','basic','headers','%s:%s','toString','base64','concat','_embedded','entries','active','label','test','statusCode','send','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','client','http','then','DeskAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','status','end','json','count','offset','limit','Content-Range','apply','save','destroy','stack','name','index','map','DeskAccount','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','params','create','body','update','find','DeskConfiguration','getConfigurations','findOne','Subjects','getSubjects','channel','Descriptions','getDescriptions'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0xabbb,0x115));var _0xbabb=function(_0x4d7d61,_0xadc258){_0x4d7d61=_0x4d7d61-0x0;var _0x55f89c=_0xabbb[_0x4d7d61];return _0x55f89c;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xbabb('0x0'));var zipdir=require(_0xbabb('0x1'));var jsonpatch=require(_0xbabb('0x2'));var rp=require(_0xbabb('0x3'));var moment=require(_0xbabb('0x4'));var BPromise=require(_0xbabb('0x5'));var Mustache=require(_0xbabb('0x6'));var util=require(_0xbabb('0x7'));var path=require(_0xbabb('0x8'));var sox=require(_0xbabb('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xbabb('0xa'));var crypto=require(_0xbabb('0xb'));var jsforce=require(_0xbabb('0xc'));var deskjs=require(_0xbabb('0xd'));var toCsv=require(_0xbabb('0xe'));var querystring=require(_0xbabb('0xf'));var Papa=require(_0xbabb('0x10'));var Redis=require(_0xbabb('0x11'));var authService=require(_0xbabb('0x12'));var qs=require(_0xbabb('0x13'));var as=require(_0xbabb('0x14'));var hardwareService=require(_0xbabb('0x15'));var logger=require(_0xbabb('0x16'))(_0xbabb('0x17'));var utils=require(_0xbabb('0x18'));var config=require(_0xbabb('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xbabb('0x1a'))['db'];var integrations=require(_0xbabb('0x1b'));var jayson=require('jayson/promise');var client=jayson[_0xbabb('0x1c')][_0xbabb('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0xf3cb16,_0x3c1bed,_0x36fdf3,_0x2f5e9b){return new BPromise(function(_0x321b05,_0x46e06a){var _0x19601a=_0x2f5e9b||client;return _0x19601a['request'](_0xf3cb16,_0x36fdf3)[_0xbabb('0x1e')](function(_0x11f942){logger['info'](_0xbabb('0x1f'),_0x3c1bed,'request\x20sent');logger[_0xbabb('0x20')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x3c1bed,_0xbabb('0x21'),JSON[_0xbabb('0x22')](_0x11f942));if(_0x11f942[_0xbabb('0x23')]){if(_0x11f942[_0xbabb('0x23')][_0xbabb('0x24')]===0x1f4){logger['error'](_0xbabb('0x1f'),_0x3c1bed,_0x11f942[_0xbabb('0x23')]['message']);return _0x46e06a(_0x11f942['error'][_0xbabb('0x25')]);}logger[_0xbabb('0x23')](_0xbabb('0x1f'),_0x3c1bed,_0x11f942['error'][_0xbabb('0x25')]);return _0x321b05(_0x11f942[_0xbabb('0x23')]['message']);}else{logger['info'](_0xbabb('0x1f'),_0x3c1bed,_0xbabb('0x21'));_0x321b05(_0x11f942[_0xbabb('0x26')][_0xbabb('0x25')]);}})[_0xbabb('0x27')](function(_0x48ba2a){logger['error'](_0xbabb('0x1f'),_0x3c1bed,_0x48ba2a);_0x46e06a(_0x48ba2a);});});}function respondWithStatusCode(_0x1a7c6d,_0x3f42a3){_0x3f42a3=_0x3f42a3||0xcc;return function(_0x112458){if(_0x112458){return _0x1a7c6d['sendStatus'](_0x3f42a3);}return _0x1a7c6d[_0xbabb('0x28')](_0x3f42a3)[_0xbabb('0x29')]();};}function respondWithResult(_0x29432c,_0x12096f){_0x12096f=_0x12096f||0xc8;return function(_0x401999){if(_0x401999){return _0x29432c['status'](_0x12096f)[_0xbabb('0x2a')](_0x401999);}};}function respondWithFilteredResult(_0x4d67da,_0x29b2c4){return function(_0x209d15){if(_0x209d15){var _0x252adb=_0x209d15[_0xbabb('0x2b')],_0x33d8a3=_0x29b2c4[_0xbabb('0x2c')],_0xaf224d=_0x29b2c4[_0xbabb('0x2c')]+_0x29b2c4[_0xbabb('0x2d')],_0x387f76;if(_0xaf224d>=_0x252adb){_0xaf224d=_0x252adb;_0x387f76=0xc8;}else{_0x387f76=0xce;}_0x4d67da['status'](_0x387f76);return _0x4d67da['set'](_0xbabb('0x2e'),_0x33d8a3+'-'+_0xaf224d+'/'+_0x252adb)['json'](_0x209d15);}return null;};}function patchUpdates(_0x78322b){return function(_0x22a0c3){try{jsonpatch[_0xbabb('0x2f')](_0x22a0c3,_0x78322b,!![]);}catch(_0x239412){return BPromise['reject'](_0x239412);}return _0x22a0c3[_0xbabb('0x30')]();};}function saveUpdates(_0xce9e61,_0x38329b){return function(_0x432d08){if(_0x432d08){return _0x432d08['update'](_0xce9e61)[_0xbabb('0x1e')](function(_0x42665c){return _0x42665c;});}return null;};}function removeEntity(_0x5dcc53,_0x322680){return function(_0x2cb2b0){if(_0x2cb2b0){return _0x2cb2b0[_0xbabb('0x31')]()[_0xbabb('0x1e')](function(){_0x5dcc53[_0xbabb('0x28')](0xcc)[_0xbabb('0x29')]();});}};}function handleEntityNotFound(_0x23796a,_0x553b3c){return function(_0x1344eb){if(!_0x1344eb){_0x23796a['sendStatus'](0x194);}return _0x1344eb;};}function handleError(_0x104f3f,_0x4002b4){_0x4002b4=_0x4002b4||0x1f4;return function(_0x2360da){logger[_0xbabb('0x23')](_0x2360da[_0xbabb('0x32')]);if(_0x2360da[_0xbabb('0x33')]){delete _0x2360da[_0xbabb('0x33')];}_0x104f3f['status'](_0x4002b4)['send'](_0x2360da);};}exports[_0xbabb('0x34')]=function(_0x39719c,_0x3307ac){var _0x230a14={},_0x1a278e={},_0x56155a={'count':0x0,'rows':[]};var _0x4a9fbf=_[_0xbabb('0x35')](db[_0xbabb('0x36')][_0xbabb('0x37')],function(_0x598448){return{'name':_0x598448[_0xbabb('0x38')],'type':_0x598448[_0xbabb('0x39')]['key']};});_0x1a278e['model']=_[_0xbabb('0x35')](_0x4a9fbf,_0xbabb('0x33'));_0x1a278e[_0xbabb('0x3a')]=_[_0xbabb('0x3b')](_0x39719c[_0xbabb('0x3a')]);_0x1a278e[_0xbabb('0x3c')]=_[_0xbabb('0x3d')](_0x1a278e['model'],_0x1a278e[_0xbabb('0x3a')]);_0x230a14[_0xbabb('0x3e')]=_[_0xbabb('0x3d')](_0x1a278e[_0xbabb('0x3f')],qs[_0xbabb('0x40')](_0x39719c[_0xbabb('0x3a')]['fields']));_0x230a14[_0xbabb('0x3e')]=_0x230a14['attributes'][_0xbabb('0x41')]?_0x230a14['attributes']:_0x1a278e[_0xbabb('0x3f')];if(!_0x39719c[_0xbabb('0x3a')][_0xbabb('0x42')](_0xbabb('0x43'))){_0x230a14['limit']=qs[_0xbabb('0x2d')](_0x39719c['query'][_0xbabb('0x2d')]);_0x230a14[_0xbabb('0x2c')]=qs[_0xbabb('0x2c')](_0x39719c[_0xbabb('0x3a')][_0xbabb('0x2c')]);}_0x230a14[_0xbabb('0x44')]=qs[_0xbabb('0x45')](_0x39719c[_0xbabb('0x3a')][_0xbabb('0x45')]);_0x230a14[_0xbabb('0x46')]=qs['filters'](_['pick'](_0x39719c[_0xbabb('0x3a')],_0x1a278e[_0xbabb('0x3c')]),_0x4a9fbf);if(_0x39719c[_0xbabb('0x3a')][_0xbabb('0x47')]){_0x230a14[_0xbabb('0x46')]=_[_0xbabb('0x48')](_0x230a14[_0xbabb('0x46')],{'$or':_[_0xbabb('0x35')](_0x4a9fbf,function(_0x3bd10c){if(_0x3bd10c[_0xbabb('0x39')]!==_0xbabb('0x49')){var _0x26af63={};_0x26af63[_0x3bd10c['name']]={'$like':'%'+_0x39719c[_0xbabb('0x3a')][_0xbabb('0x47')]+'%'};return _0x26af63;}})});}_0x230a14=_[_0xbabb('0x48')]({},_0x230a14,_0x39719c[_0xbabb('0x4a')]);var _0xbe0033={'where':_0x230a14[_0xbabb('0x46')]};return db[_0xbabb('0x36')][_0xbabb('0x2b')](_0xbe0033)[_0xbabb('0x1e')](function(_0x5ce1b4){_0x56155a[_0xbabb('0x2b')]=_0x5ce1b4;if(_0x39719c['query'][_0xbabb('0x4b')]){_0x230a14[_0xbabb('0x4c')]=[{'all':!![]}];}return db[_0xbabb('0x36')][_0xbabb('0x4d')](_0x230a14);})[_0xbabb('0x1e')](function(_0x128110){_0x56155a[_0xbabb('0x4e')]=_0x128110;return _0x56155a;})[_0xbabb('0x1e')](respondWithFilteredResult(_0x3307ac,_0x230a14))[_0xbabb('0x27')](handleError(_0x3307ac,null));};exports['show']=function(_0x914c2e,_0x253de5){var _0x19659b={'raw':![],'where':{'id':_0x914c2e[_0xbabb('0x4f')]['id']}},_0x5c7a6c={};_0x5c7a6c[_0xbabb('0x3f')]=_[_0xbabb('0x3b')](db[_0xbabb('0x36')]['rawAttributes']);_0x5c7a6c[_0xbabb('0x3a')]=_[_0xbabb('0x3b')](_0x914c2e['query']);_0x5c7a6c[_0xbabb('0x3c')]=_[_0xbabb('0x3d')](_0x5c7a6c['model'],_0x5c7a6c['query']);_0x19659b[_0xbabb('0x3e')]=_[_0xbabb('0x3d')](_0x5c7a6c[_0xbabb('0x3f')],qs[_0xbabb('0x40')](_0x914c2e['query']['fields']));_0x19659b[_0xbabb('0x3e')]=_0x19659b[_0xbabb('0x3e')][_0xbabb('0x41')]?_0x19659b[_0xbabb('0x3e')]:_0x5c7a6c[_0xbabb('0x3f')];if(_0x914c2e[_0xbabb('0x3a')]['includeAll']){_0x19659b['include']=[{'all':!![]}];}_0x19659b=_[_0xbabb('0x48')]({},_0x19659b,_0x914c2e['options']);return db[_0xbabb('0x36')]['find'](_0x19659b)[_0xbabb('0x1e')](handleEntityNotFound(_0x253de5,null))[_0xbabb('0x1e')](respondWithResult(_0x253de5,null))['catch'](handleError(_0x253de5,null));};exports[_0xbabb('0x50')]=function(_0x5d77aa,_0x437818){return db['DeskAccount']['create'](_0x5d77aa[_0xbabb('0x51')],{})[_0xbabb('0x1e')](respondWithResult(_0x437818,0xc9))[_0xbabb('0x27')](handleError(_0x437818,null));};exports[_0xbabb('0x52')]=function(_0x46f8cf,_0x27515f){if(_0x46f8cf['body']['id']){delete _0x46f8cf['body']['id'];}return db[_0xbabb('0x36')][_0xbabb('0x53')]({'where':{'id':_0x46f8cf[_0xbabb('0x4f')]['id']}})[_0xbabb('0x1e')](handleEntityNotFound(_0x27515f,null))[_0xbabb('0x1e')](saveUpdates(_0x46f8cf[_0xbabb('0x51')],null))['then'](respondWithResult(_0x27515f,null))[_0xbabb('0x27')](handleError(_0x27515f,null));};exports[_0xbabb('0x31')]=function(_0x44a4e2,_0x313065){return db[_0xbabb('0x36')][_0xbabb('0x53')]({'where':{'id':_0x44a4e2[_0xbabb('0x4f')]['id']}})[_0xbabb('0x1e')](handleEntityNotFound(_0x313065,null))['then'](removeEntity(_0x313065,null))[_0xbabb('0x27')](handleError(_0x313065,null));};exports['getConfigurations']=function(_0x1a3b04,_0x5abef4,_0x4096fe){var _0xa80456={};var _0x59b3e3={};var _0x213e25;var _0x1b6d4e;return db[_0xbabb('0x36')]['findOne']({'where':{'id':_0x1a3b04[_0xbabb('0x4f')]['id']}})['then'](handleEntityNotFound(_0x5abef4,null))[_0xbabb('0x1e')](function(_0x3c5721){if(_0x3c5721){_0x213e25=_0x3c5721;_0x59b3e3[_0xbabb('0x3f')]=_[_0xbabb('0x3b')](db[_0xbabb('0x54')][_0xbabb('0x37')]);_0x59b3e3[_0xbabb('0x3a')]=_[_0xbabb('0x3b')](_0x1a3b04[_0xbabb('0x3a')]);_0x59b3e3['filters']=_[_0xbabb('0x3d')](_0x59b3e3['model'],_0x59b3e3['query']);_0xa80456[_0xbabb('0x3e')]=_[_0xbabb('0x3d')](_0x59b3e3['model'],qs[_0xbabb('0x40')](_0x1a3b04[_0xbabb('0x3a')][_0xbabb('0x40')]));_0xa80456[_0xbabb('0x3e')]=_0xa80456[_0xbabb('0x3e')][_0xbabb('0x41')]?_0xa80456[_0xbabb('0x3e')]:_0x59b3e3[_0xbabb('0x3f')];_0xa80456[_0xbabb('0x44')]=qs[_0xbabb('0x45')](_0x1a3b04[_0xbabb('0x3a')][_0xbabb('0x45')]);_0xa80456['where']=qs[_0xbabb('0x3c')](_['pick'](_0x1a3b04[_0xbabb('0x3a')],_0x59b3e3[_0xbabb('0x3c')]));if(_0x1a3b04['query'][_0xbabb('0x47')]){_0xa80456[_0xbabb('0x46')]=_['merge'](_0xa80456[_0xbabb('0x46')],{'$or':_[_0xbabb('0x35')](_0xa80456[_0xbabb('0x3e')],function(_0x780a25){var _0x583b27={};_0x583b27[_0x780a25]={'$like':'%'+_0x1a3b04[_0xbabb('0x3a')]['filter']+'%'};return _0x583b27;})});}_0xa80456=_[_0xbabb('0x48')]({},_0xa80456,_0x1a3b04[_0xbabb('0x4a')]);return _0x213e25[_0xbabb('0x55')](_0xa80456);}})[_0xbabb('0x1e')](function(_0x2ea73b){if(_0x2ea73b){_0x1b6d4e=_0x2ea73b[_0xbabb('0x41')];if(!_0x1a3b04[_0xbabb('0x3a')][_0xbabb('0x42')]('nolimit')){_0xa80456[_0xbabb('0x2d')]=qs['limit'](_0x1a3b04[_0xbabb('0x3a')][_0xbabb('0x2d')]);_0xa80456[_0xbabb('0x2c')]=qs[_0xbabb('0x2c')](_0x1a3b04[_0xbabb('0x3a')]['offset']);}return _0x213e25[_0xbabb('0x55')](_0xa80456);}})[_0xbabb('0x1e')](function(_0x37ebb6){if(_0x37ebb6){return _0x37ebb6?{'count':_0x1b6d4e,'rows':_0x37ebb6}:null;}})['then'](respondWithResult(_0x5abef4,null))['catch'](handleError(_0x5abef4,null));};exports['addConfiguration']=function(_0x394d18,_0x48d391,_0x5acd74){if(_0x394d18[_0xbabb('0x51')]['id']){delete _0x394d18[_0xbabb('0x51')]['id'];}return db[_0xbabb('0x36')][_0xbabb('0x56')]({'where':{'id':_0x394d18[_0xbabb('0x4f')]['id']}})[_0xbabb('0x1e')](handleEntityNotFound(_0x48d391,null))[_0xbabb('0x1e')](function(_0x5c7577){if(_0x5c7577){_0x394d18[_0xbabb('0x51')]['AccountId']=_0x5c7577['id'];_0x394d18['body'][_0xbabb('0x57')]=integrations[_0xbabb('0x58')](_0x394d18['body'][_0xbabb('0x59')],_0x394d18[_0xbabb('0x51')][_0xbabb('0x39')]);_0x394d18[_0xbabb('0x51')][_0xbabb('0x5a')]=integrations[_0xbabb('0x5b')](_0x394d18[_0xbabb('0x51')][_0xbabb('0x59')],_0x394d18[_0xbabb('0x51')][_0xbabb('0x39')]);return db[_0xbabb('0x54')][_0xbabb('0x50')](_0x394d18[_0xbabb('0x51')],{'include':[{'model':db[_0xbabb('0x5c')],'as':'Subjects'},{'model':db[_0xbabb('0x5c')],'as':'Descriptions'}]});}return null;})[_0xbabb('0x1e')](respondWithResult(_0x48d391,null))[_0xbabb('0x27')](handleError(_0x48d391,null));};exports[_0xbabb('0x5d')]=function(_0x9a0f05,_0x1df905,_0x3e11ea){var _0x3f7209=[{'name':_0xbabb('0x5e'),'label':_0xbabb('0x5e'),'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 _0x3e10a6='';return db[_0xbabb('0x36')][_0xbabb('0x56')]({'where':{'id':_0x9a0f05[_0xbabb('0x4f')]['id']},'attributes':['id',_0xbabb('0x5f'),_0xbabb('0x60'),_0xbabb('0x61'),_0xbabb('0x62'),_0xbabb('0x63'),_0xbabb('0x64'),_0xbabb('0x65'),_0xbabb('0x66')]})[_0xbabb('0x1e')](handleEntityNotFound(_0x1df905,null))[_0xbabb('0x1e')](function(_0x5a90cf){if(_0x5a90cf){_0x3e10a6=_0x5a90cf[_0xbabb('0x5f')];var _0x40931f=_0x3e10a6[_0xbabb('0x67')](-0x1);if(_0x40931f==='/'){_0x3e10a6=_0x3e10a6[_0xbabb('0x68')](0x0,_0x3e10a6[_0xbabb('0x69')](_0x40931f));}var _0x28a4fa={'method':'GET','uri':util[_0xbabb('0x6a')](_0xbabb('0x6b'),_0x3e10a6),'headers':{'Content-Type':'application/json','Accept':_0xbabb('0x6c')},'json':!![]};if(_0x5a90cf['authType']===_0xbabb('0x6d')){_0x28a4fa[_0xbabb('0x6e')]['Authorization']=util['format']('Basic\x20%s',new Buffer(util[_0xbabb('0x6a')](_0xbabb('0x6f'),_0x5a90cf['username'],_0x5a90cf[_0xbabb('0x62')]))[_0xbabb('0x70')](_0xbabb('0x71')));}return rp(_0x28a4fa)[_0xbabb('0x1e')](function(_0x112750){return _0x3f7209[_0xbabb('0x72')](_[_0xbabb('0x35')](_0x112750[_0xbabb('0x73')][_0xbabb('0x74')],function(_0x55522b){return{'id':_0x55522b[_0xbabb('0x33')],'name':_0x55522b[_0xbabb('0x33')],'type':_0x55522b['type'],'active':_0x55522b[_0xbabb('0x75')],'label':_0x55522b[_0xbabb('0x76')],'custom':!![]};}));});}})[_0xbabb('0x1e')](function(_0x19efad){return{'count':_0x19efad[_0xbabb('0x41')],'rows':_0x19efad};})[_0xbabb('0x1e')](respondWithResult(_0x1df905,null))['catch'](function(_0x5575c3){var _0x5027fb=_0x9a0f05[_0xbabb('0x3a')][_0xbabb('0x77')]?0x1f4:_0x5575c3[_0xbabb('0x78')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xbabb('0x5d'),_0x5027fb,JSON['stringify'](_0x5575c3));delete _0x5575c3[_0xbabb('0x33')];if(_0x5027fb===0x191){_0x5027fb=0x190;}_0x1df905[_0xbabb('0x28')](_0x5027fb)[_0xbabb('0x79')](_0x9a0f05['query'][_0xbabb('0x77')]?{'message':_0xbabb('0x7a'),'statusCode':_0x5575c3['statusCode']}:_0x5575c3);});};