08caf6a3ed28aa5f2a4a4162e61931430ac4a25d
[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 _0xcd41=['username','password','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','format','%s/custom_fields','application/json','authType','headers','Authorization','Basic\x20%s','%s:%s','base64','concat','_embedded','entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','request-promise','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','jayson/promise','request','then','info','debug','DeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','DeskAccount,\x20%s,\x20%s','message','result','catch','status','json','set','Content-Range','apply','reject','save','update','destroy','end','sendStatus','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','limit','offset','order','sort','where','filter','merge','VIRTUAL','options','count','includeAll','rows','show','params','include','create','body','find','findOne','pick','getConfigurations','addConfiguration','Subjects','channel','Descriptions','getDescriptions','DeskConfiguration','DeskField','getFields','priority','remoteUri'];(function(_0x6b7070,_0x7c6360){var _0x11ef10=function(_0x5004ae){while(--_0x5004ae){_0x6b7070['push'](_0x6b7070['shift']());}};_0x11ef10(++_0x7c6360);}(_0xcd41,0x116));var _0x1cd4=function(_0x5548e3,_0x21f141){_0x5548e3=_0x5548e3-0x0;var _0x43e812=_0xcd41[_0x5548e3];return _0x43e812;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x1cd4('0x0'));var rimraf=require(_0x1cd4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1cd4('0x2'));var moment=require('moment');var BPromise=require(_0x1cd4('0x3'));var Mustache=require(_0x1cd4('0x4'));var util=require(_0x1cd4('0x5'));var path=require(_0x1cd4('0x6'));var sox=require(_0x1cd4('0x7'));var csv=require('to-csv');var ejs=require(_0x1cd4('0x8'));var fs=require('fs');var _=require(_0x1cd4('0x9'));var squel=require(_0x1cd4('0xa'));var crypto=require(_0x1cd4('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x1cd4('0xc'));var toCsv=require(_0x1cd4('0xd'));var querystring=require(_0x1cd4('0xe'));var Papa=require('papaparse');var Redis=require(_0x1cd4('0xf'));var authService=require(_0x1cd4('0x10'));var qs=require(_0x1cd4('0x11'));var as=require(_0x1cd4('0x12'));var hardwareService=require(_0x1cd4('0x13'));var logger=require('../../config/logger')(_0x1cd4('0x14'));var utils=require(_0x1cd4('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x1cd4('0x16'))['db'];var integrations=require(_0x1cd4('0x17'));var jayson=require(_0x1cd4('0x18'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3eab3e,_0xe11d0d,_0x1a54dc,_0x5e25ca){return new BPromise(function(_0x1a46f3,_0x5ccc59){var _0x11ed63=_0x5e25ca||client;return _0x11ed63[_0x1cd4('0x19')](_0x3eab3e,_0x1a54dc)[_0x1cd4('0x1a')](function(_0x23bb96){logger[_0x1cd4('0x1b')]('DeskAccount,\x20%s,\x20%s',_0xe11d0d,'request\x20sent');logger[_0x1cd4('0x1c')](_0x1cd4('0x1d'),_0xe11d0d,_0x1cd4('0x1e'),JSON[_0x1cd4('0x1f')](_0x23bb96));if(_0x23bb96[_0x1cd4('0x20')]){if(_0x23bb96[_0x1cd4('0x20')][_0x1cd4('0x21')]===0x1f4){logger[_0x1cd4('0x20')](_0x1cd4('0x22'),_0xe11d0d,_0x23bb96[_0x1cd4('0x20')]['message']);return _0x5ccc59(_0x23bb96[_0x1cd4('0x20')][_0x1cd4('0x23')]);}logger[_0x1cd4('0x20')]('DeskAccount,\x20%s,\x20%s',_0xe11d0d,_0x23bb96[_0x1cd4('0x20')][_0x1cd4('0x23')]);return _0x1a46f3(_0x23bb96[_0x1cd4('0x20')][_0x1cd4('0x23')]);}else{logger['info'](_0x1cd4('0x22'),_0xe11d0d,_0x1cd4('0x1e'));_0x1a46f3(_0x23bb96[_0x1cd4('0x24')][_0x1cd4('0x23')]);}})[_0x1cd4('0x25')](function(_0x67cb28){logger[_0x1cd4('0x20')](_0x1cd4('0x22'),_0xe11d0d,_0x67cb28);_0x5ccc59(_0x67cb28);});});}function respondWithStatusCode(_0x5079a7,_0x5413b4){_0x5413b4=_0x5413b4||0xcc;return function(_0x127018){if(_0x127018){return _0x5079a7['sendStatus'](_0x5413b4);}return _0x5079a7[_0x1cd4('0x26')](_0x5413b4)['end']();};}function respondWithResult(_0x1b7d15,_0x20d3ba){_0x20d3ba=_0x20d3ba||0xc8;return function(_0x2653f3){if(_0x2653f3){return _0x1b7d15[_0x1cd4('0x26')](_0x20d3ba)[_0x1cd4('0x27')](_0x2653f3);}};}function respondWithFilteredResult(_0xa2effb,_0x2ef37e){return function(_0x4f73ad){if(_0x4f73ad){var _0x2c1e07=_0x4f73ad['count'],_0x5e1903=_0x2ef37e['offset'],_0x1db91f=_0x2ef37e['offset']+_0x2ef37e['limit'],_0x4377e6;if(_0x1db91f>=_0x2c1e07){_0x1db91f=_0x2c1e07;_0x4377e6=0xc8;}else{_0x4377e6=0xce;}_0xa2effb[_0x1cd4('0x26')](_0x4377e6);return _0xa2effb[_0x1cd4('0x28')](_0x1cd4('0x29'),_0x5e1903+'-'+_0x1db91f+'/'+_0x2c1e07)[_0x1cd4('0x27')](_0x4f73ad);}return null;};}function patchUpdates(_0x368c30){return function(_0x46c2e3){try{jsonpatch[_0x1cd4('0x2a')](_0x46c2e3,_0x368c30,!![]);}catch(_0x3254d5){return BPromise[_0x1cd4('0x2b')](_0x3254d5);}return _0x46c2e3[_0x1cd4('0x2c')]();};}function saveUpdates(_0x588a84,_0x3039ff){return function(_0x423292){if(_0x423292){return _0x423292[_0x1cd4('0x2d')](_0x588a84)[_0x1cd4('0x1a')](function(_0x1d0485){return _0x1d0485;});}return null;};}function removeEntity(_0x3ab4ab,_0x510f19){return function(_0x50872e){if(_0x50872e){return _0x50872e[_0x1cd4('0x2e')]()[_0x1cd4('0x1a')](function(){_0x3ab4ab['status'](0xcc)[_0x1cd4('0x2f')]();});}};}function handleEntityNotFound(_0x1d03ab,_0x32d117){return function(_0x37ddd6){if(!_0x37ddd6){_0x1d03ab[_0x1cd4('0x30')](0x194);}return _0x37ddd6;};}function handleError(_0x3bdb57,_0x1cb78a){_0x1cb78a=_0x1cb78a||0x1f4;return function(_0x4ba9c9){logger[_0x1cd4('0x20')](_0x4ba9c9[_0x1cd4('0x31')]);if(_0x4ba9c9[_0x1cd4('0x32')]){delete _0x4ba9c9[_0x1cd4('0x32')];}_0x3bdb57[_0x1cd4('0x26')](_0x1cb78a)[_0x1cd4('0x33')](_0x4ba9c9);};}exports[_0x1cd4('0x34')]=function(_0x53bd8c,_0x3c63f7){var _0x82a36e={},_0x578a62={},_0x242c85={'count':0x0,'rows':[]};var _0x162542=_[_0x1cd4('0x35')](db[_0x1cd4('0x36')][_0x1cd4('0x37')],function(_0x25bf62){return{'name':_0x25bf62[_0x1cd4('0x38')],'type':_0x25bf62[_0x1cd4('0x39')][_0x1cd4('0x3a')]};});_0x578a62[_0x1cd4('0x3b')]=_['map'](_0x162542,_0x1cd4('0x32'));_0x578a62['query']=_[_0x1cd4('0x3c')](_0x53bd8c['query']);_0x578a62[_0x1cd4('0x3d')]=_[_0x1cd4('0x3e')](_0x578a62[_0x1cd4('0x3b')],_0x578a62[_0x1cd4('0x3f')]);_0x82a36e[_0x1cd4('0x40')]=_[_0x1cd4('0x3e')](_0x578a62[_0x1cd4('0x3b')],qs['fields'](_0x53bd8c[_0x1cd4('0x3f')][_0x1cd4('0x41')]));_0x82a36e[_0x1cd4('0x40')]=_0x82a36e[_0x1cd4('0x40')][_0x1cd4('0x42')]?_0x82a36e['attributes']:_0x578a62[_0x1cd4('0x3b')];if(!_0x53bd8c[_0x1cd4('0x3f')][_0x1cd4('0x43')](_0x1cd4('0x44'))){_0x82a36e[_0x1cd4('0x45')]=qs['limit'](_0x53bd8c[_0x1cd4('0x3f')][_0x1cd4('0x45')]);_0x82a36e['offset']=qs['offset'](_0x53bd8c[_0x1cd4('0x3f')][_0x1cd4('0x46')]);}_0x82a36e[_0x1cd4('0x47')]=qs[_0x1cd4('0x48')](_0x53bd8c['query'][_0x1cd4('0x48')]);_0x82a36e[_0x1cd4('0x49')]=qs[_0x1cd4('0x3d')](_['pick'](_0x53bd8c[_0x1cd4('0x3f')],_0x578a62[_0x1cd4('0x3d')]),_0x162542);if(_0x53bd8c['query'][_0x1cd4('0x4a')]){_0x82a36e[_0x1cd4('0x49')]=_[_0x1cd4('0x4b')](_0x82a36e[_0x1cd4('0x49')],{'$or':_['map'](_0x162542,function(_0x1cb31a){if(_0x1cb31a[_0x1cd4('0x39')]!==_0x1cd4('0x4c')){var _0x1f0a94={};_0x1f0a94[_0x1cb31a[_0x1cd4('0x32')]]={'$like':'%'+_0x53bd8c[_0x1cd4('0x3f')][_0x1cd4('0x4a')]+'%'};return _0x1f0a94;}})});}_0x82a36e=_[_0x1cd4('0x4b')]({},_0x82a36e,_0x53bd8c[_0x1cd4('0x4d')]);var _0x1f13c7={'where':_0x82a36e['where']};return db['DeskAccount']['count'](_0x1f13c7)[_0x1cd4('0x1a')](function(_0x38be23){_0x242c85[_0x1cd4('0x4e')]=_0x38be23;if(_0x53bd8c[_0x1cd4('0x3f')][_0x1cd4('0x4f')]){_0x82a36e['include']=[{'all':!![]}];}return db[_0x1cd4('0x36')]['findAll'](_0x82a36e);})[_0x1cd4('0x1a')](function(_0x65e5dc){_0x242c85[_0x1cd4('0x50')]=_0x65e5dc;return _0x242c85;})[_0x1cd4('0x1a')](respondWithFilteredResult(_0x3c63f7,_0x82a36e))[_0x1cd4('0x25')](handleError(_0x3c63f7,null));};exports[_0x1cd4('0x51')]=function(_0x1c83b9,_0x1ccdf5){var _0x5df2f4={'raw':![],'where':{'id':_0x1c83b9[_0x1cd4('0x52')]['id']}},_0x255795={};_0x255795['model']=_[_0x1cd4('0x3c')](db[_0x1cd4('0x36')][_0x1cd4('0x37')]);_0x255795[_0x1cd4('0x3f')]=_['keys'](_0x1c83b9['query']);_0x255795[_0x1cd4('0x3d')]=_[_0x1cd4('0x3e')](_0x255795['model'],_0x255795[_0x1cd4('0x3f')]);_0x5df2f4[_0x1cd4('0x40')]=_[_0x1cd4('0x3e')](_0x255795[_0x1cd4('0x3b')],qs['fields'](_0x1c83b9[_0x1cd4('0x3f')]['fields']));_0x5df2f4[_0x1cd4('0x40')]=_0x5df2f4[_0x1cd4('0x40')]['length']?_0x5df2f4[_0x1cd4('0x40')]:_0x255795['model'];if(_0x1c83b9[_0x1cd4('0x3f')][_0x1cd4('0x4f')]){_0x5df2f4[_0x1cd4('0x53')]=[{'all':!![]}];}_0x5df2f4=_[_0x1cd4('0x4b')]({},_0x5df2f4,_0x1c83b9[_0x1cd4('0x4d')]);return db[_0x1cd4('0x36')]['find'](_0x5df2f4)[_0x1cd4('0x1a')](handleEntityNotFound(_0x1ccdf5,null))[_0x1cd4('0x1a')](respondWithResult(_0x1ccdf5,null))['catch'](handleError(_0x1ccdf5,null));};exports['create']=function(_0x453bc4,_0x577b51){return db['DeskAccount'][_0x1cd4('0x54')](_0x453bc4['body'],{})[_0x1cd4('0x1a')](respondWithResult(_0x577b51,0xc9))[_0x1cd4('0x25')](handleError(_0x577b51,null));};exports[_0x1cd4('0x2d')]=function(_0x17c72d,_0x411efb){if(_0x17c72d[_0x1cd4('0x55')]['id']){delete _0x17c72d['body']['id'];}return db[_0x1cd4('0x36')][_0x1cd4('0x56')]({'where':{'id':_0x17c72d[_0x1cd4('0x52')]['id']}})[_0x1cd4('0x1a')](handleEntityNotFound(_0x411efb,null))['then'](saveUpdates(_0x17c72d[_0x1cd4('0x55')],null))[_0x1cd4('0x1a')](respondWithResult(_0x411efb,null))[_0x1cd4('0x25')](handleError(_0x411efb,null));};exports['destroy']=function(_0x411b41,_0x4a0b51){return db[_0x1cd4('0x36')]['find']({'where':{'id':_0x411b41['params']['id']}})['then'](handleEntityNotFound(_0x4a0b51,null))[_0x1cd4('0x1a')](removeEntity(_0x4a0b51,null))[_0x1cd4('0x25')](handleError(_0x4a0b51,null));};exports['getConfigurations']=function(_0x15f9ca,_0x4d8e91,_0x4193f4){var _0x26a091={};var _0x2c7bec={};var _0x338165;var _0x2cf201;return db[_0x1cd4('0x36')][_0x1cd4('0x57')]({'where':{'id':_0x15f9ca[_0x1cd4('0x52')]['id']}})[_0x1cd4('0x1a')](handleEntityNotFound(_0x4d8e91,null))[_0x1cd4('0x1a')](function(_0x2da29b){if(_0x2da29b){_0x338165=_0x2da29b;_0x2c7bec['model']=_['keys'](db['DeskConfiguration'][_0x1cd4('0x37')]);_0x2c7bec[_0x1cd4('0x3f')]=_[_0x1cd4('0x3c')](_0x15f9ca[_0x1cd4('0x3f')]);_0x2c7bec[_0x1cd4('0x3d')]=_[_0x1cd4('0x3e')](_0x2c7bec['model'],_0x2c7bec[_0x1cd4('0x3f')]);_0x26a091[_0x1cd4('0x40')]=_['intersection'](_0x2c7bec['model'],qs[_0x1cd4('0x41')](_0x15f9ca[_0x1cd4('0x3f')]['fields']));_0x26a091[_0x1cd4('0x40')]=_0x26a091[_0x1cd4('0x40')][_0x1cd4('0x42')]?_0x26a091['attributes']:_0x2c7bec[_0x1cd4('0x3b')];_0x26a091['order']=qs[_0x1cd4('0x48')](_0x15f9ca[_0x1cd4('0x3f')][_0x1cd4('0x48')]);_0x26a091[_0x1cd4('0x49')]=qs['filters'](_[_0x1cd4('0x58')](_0x15f9ca[_0x1cd4('0x3f')],_0x2c7bec[_0x1cd4('0x3d')]));if(_0x15f9ca['query']['filter']){_0x26a091[_0x1cd4('0x49')]=_['merge'](_0x26a091[_0x1cd4('0x49')],{'$or':_[_0x1cd4('0x35')](_0x26a091[_0x1cd4('0x40')],function(_0x12bffc){var _0x5d92a3={};_0x5d92a3[_0x12bffc]={'$like':'%'+_0x15f9ca[_0x1cd4('0x3f')]['filter']+'%'};return _0x5d92a3;})});}_0x26a091=_[_0x1cd4('0x4b')]({},_0x26a091,_0x15f9ca[_0x1cd4('0x4d')]);return _0x338165['getConfigurations'](_0x26a091);}})[_0x1cd4('0x1a')](function(_0xc5862f){if(_0xc5862f){_0x2cf201=_0xc5862f[_0x1cd4('0x42')];if(!_0x15f9ca['query'][_0x1cd4('0x43')](_0x1cd4('0x44'))){_0x26a091[_0x1cd4('0x45')]=qs['limit'](_0x15f9ca[_0x1cd4('0x3f')][_0x1cd4('0x45')]);_0x26a091[_0x1cd4('0x46')]=qs[_0x1cd4('0x46')](_0x15f9ca[_0x1cd4('0x3f')][_0x1cd4('0x46')]);}return _0x338165[_0x1cd4('0x59')](_0x26a091);}})[_0x1cd4('0x1a')](function(_0x4bfc55){if(_0x4bfc55){return _0x4bfc55?{'count':_0x2cf201,'rows':_0x4bfc55}:null;}})[_0x1cd4('0x1a')](respondWithResult(_0x4d8e91,null))[_0x1cd4('0x25')](handleError(_0x4d8e91,null));};exports[_0x1cd4('0x5a')]=function(_0x1fc05b,_0x3a959c,_0x1a025b){if(_0x1fc05b[_0x1cd4('0x55')]['id']){delete _0x1fc05b[_0x1cd4('0x55')]['id'];}return db[_0x1cd4('0x36')]['findOne']({'where':{'id':_0x1fc05b[_0x1cd4('0x52')]['id']}})[_0x1cd4('0x1a')](handleEntityNotFound(_0x3a959c,null))[_0x1cd4('0x1a')](function(_0xa3d3ac){if(_0xa3d3ac){_0x1fc05b[_0x1cd4('0x55')]['AccountId']=_0xa3d3ac['id'];_0x1fc05b[_0x1cd4('0x55')][_0x1cd4('0x5b')]=integrations['getSubjects'](_0x1fc05b['body'][_0x1cd4('0x5c')],_0x1fc05b[_0x1cd4('0x55')][_0x1cd4('0x39')]);_0x1fc05b[_0x1cd4('0x55')][_0x1cd4('0x5d')]=integrations[_0x1cd4('0x5e')](_0x1fc05b['body']['channel'],_0x1fc05b[_0x1cd4('0x55')][_0x1cd4('0x39')]);return db[_0x1cd4('0x5f')][_0x1cd4('0x54')](_0x1fc05b[_0x1cd4('0x55')],{'include':[{'model':db[_0x1cd4('0x60')],'as':_0x1cd4('0x5b')},{'model':db[_0x1cd4('0x60')],'as':_0x1cd4('0x5d')}]});}return null;})[_0x1cd4('0x1a')](respondWithResult(_0x3a959c,null))['catch'](handleError(_0x3a959c,null));};exports[_0x1cd4('0x61')]=function(_0x4ad683,_0x408058,_0x3c2e9e){var _0x24fb37=[{'name':_0x1cd4('0x62'),'label':_0x1cd4('0x62'),'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 _0x59a884='';return db[_0x1cd4('0x36')][_0x1cd4('0x57')]({'where':{'id':_0x4ad683['params']['id']},'attributes':['id',_0x1cd4('0x63'),'authType',_0x1cd4('0x64'),_0x1cd4('0x65'),'consumerKey',_0x1cd4('0x66'),_0x1cd4('0x67'),_0x1cd4('0x68')]})[_0x1cd4('0x1a')](handleEntityNotFound(_0x408058,null))[_0x1cd4('0x1a')](function(_0x319aec){if(_0x319aec){_0x59a884=_0x319aec[_0x1cd4('0x63')];var _0x4d32d2=_0x59a884[_0x1cd4('0x69')](-0x1);if(_0x4d32d2==='/'){_0x59a884=_0x59a884[_0x1cd4('0x6a')](0x0,_0x59a884[_0x1cd4('0x6b')](_0x4d32d2));}var _0x3a7bc6={'method':'GET','uri':util[_0x1cd4('0x6c')](_0x1cd4('0x6d'),_0x59a884),'headers':{'Content-Type':_0x1cd4('0x6e'),'Accept':'application/json'},'json':!![]};if(_0x319aec[_0x1cd4('0x6f')]==='basic'){_0x3a7bc6[_0x1cd4('0x70')][_0x1cd4('0x71')]=util[_0x1cd4('0x6c')](_0x1cd4('0x72'),new Buffer(util[_0x1cd4('0x6c')](_0x1cd4('0x73'),_0x319aec[_0x1cd4('0x64')],_0x319aec['password']))['toString'](_0x1cd4('0x74')));}return rp(_0x3a7bc6)['then'](function(_0xbd44f2){return _0x24fb37[_0x1cd4('0x75')](_[_0x1cd4('0x35')](_0xbd44f2[_0x1cd4('0x76')][_0x1cd4('0x77')],function(_0x4b3351){return{'id':_0x4b3351[_0x1cd4('0x32')],'name':_0x4b3351[_0x1cd4('0x32')],'type':_0x4b3351[_0x1cd4('0x39')],'active':_0x4b3351[_0x1cd4('0x78')],'label':_0x4b3351[_0x1cd4('0x79')],'custom':!![]};}));});}})['then'](function(_0x3e635b){return{'count':_0x3e635b[_0x1cd4('0x42')],'rows':_0x3e635b};})['then'](respondWithResult(_0x408058,null))['catch'](function(_0x30528f){var _0x484926=_0x4ad683[_0x1cd4('0x3f')][_0x1cd4('0x7a')]?0x1f4:_0x30528f[_0x1cd4('0x7b')]||0x1f4;logger[_0x1cd4('0x20')](_0x1cd4('0x7c'),_0x1cd4('0x61'),_0x484926,JSON[_0x1cd4('0x1f')](_0x30528f));delete _0x30528f[_0x1cd4('0x32')];if(_0x484926===0x191){_0x484926=0x190;}_0x408058['status'](_0x484926)[_0x1cd4('0x33')](_0x4ad683['query']['test']?{'message':_0x1cd4('0x7d'),'statusCode':_0x30528f[_0x1cd4('0x7b')]}:_0x30528f);});};