8ab96de49dfb0a4b46466a4942bcb8e1723d25bd
[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 _0x74fe=['find','create','body','destroy','getConfigurations','sort','options','hasOwnProperty','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','DeskConfiguration','DeskField','Subjects','getFields','priority','remoteUri','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','format','%s/custom_fields','application/json','basic','headers','Authorization','%s:%s','toString','base64','concat','_embedded','entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','send','eml-format','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','json','offset','limit','undefined','count','set','Content-Range','apply','save','update','end','sendStatus','error','stack','name','index','map','DeskAccount','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','where','pick','filter','merge','then','includeAll','include','findAll','rows','catch','show','params'];(function(_0x51a89c,_0x529131){var _0x1ef0bc=function(_0xfc1920){while(--_0xfc1920){_0x51a89c['push'](_0x51a89c['shift']());}};_0x1ef0bc(++_0x529131);}(_0x74fe,0x189));var _0xe74f=function(_0x32e5e8,_0x4999f5){_0x32e5e8=_0x32e5e8-0x0;var _0x5e1fb7=_0x74fe[_0x32e5e8];return _0x5e1fb7;};'use strict';var emlformat=require(_0xe74f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe74f('0x1'));var jsonpatch=require(_0xe74f('0x2'));var rp=require('request-promise');var moment=require(_0xe74f('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xe74f('0x4'));var util=require(_0xe74f('0x5'));var path=require(_0xe74f('0x6'));var sox=require('sox');var csv=require(_0xe74f('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe74f('0x8'));var _=require(_0xe74f('0x9'));var squel=require('squel');var crypto=require(_0xe74f('0xa'));var jsforce=require(_0xe74f('0xb'));var deskjs=require(_0xe74f('0xc'));var toCsv=require(_0xe74f('0x7'));var querystring=require(_0xe74f('0xd'));var Papa=require(_0xe74f('0xe'));var Redis=require(_0xe74f('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xe74f('0x10'));var as=require(_0xe74f('0x11'));var hardwareService=require(_0xe74f('0x12'));var logger=require('../../config/logger')(_0xe74f('0x13'));var utils=require('../../config/utils');var config=require(_0xe74f('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xe74f('0x15'))['db'];var integrations=require(_0xe74f('0x16'));function respondWithStatusCode(_0x758f49,_0x4cdd8c){_0x4cdd8c=_0x4cdd8c||0xcc;return function(_0x2931e6){if(_0x2931e6){return _0x758f49['sendStatus'](_0x4cdd8c);}return _0x758f49['status'](_0x4cdd8c)['end']();};}function respondWithResult(_0x306aad,_0x43b8d3){_0x43b8d3=_0x43b8d3||0xc8;return function(_0x327324){if(_0x327324){return _0x306aad[_0xe74f('0x17')](_0x43b8d3)[_0xe74f('0x18')](_0x327324);}};}function respondWithFilteredResult(_0x2f5d84,_0xab5223){return function(_0x71b058){if(_0x71b058){var _0x4d2ec0=typeof _0xab5223[_0xe74f('0x19')]==='undefined'&&typeof _0xab5223[_0xe74f('0x1a')]===_0xe74f('0x1b');var _0x28635e=_0x71b058['count'];var _0x20b16e=_0x4d2ec0?0x0:_0xab5223['offset'];var _0x1bcf70=_0x4d2ec0?_0x71b058[_0xe74f('0x1c')]:_0xab5223['offset']+_0xab5223['limit'];var _0x4aec8f;if(_0x1bcf70>=_0x28635e){_0x1bcf70=_0x28635e;_0x4aec8f=0xc8;}else{_0x4aec8f=0xce;}_0x2f5d84[_0xe74f('0x17')](_0x4aec8f);return _0x2f5d84[_0xe74f('0x1d')](_0xe74f('0x1e'),_0x20b16e+'-'+_0x1bcf70+'/'+_0x28635e)[_0xe74f('0x18')](_0x71b058);}return null;};}function patchUpdates(_0x46aac2){return function(_0x40ebb5){try{jsonpatch[_0xe74f('0x1f')](_0x40ebb5,_0x46aac2,!![]);}catch(_0x2ab48b){return BPromise['reject'](_0x2ab48b);}return _0x40ebb5[_0xe74f('0x20')]();};}function saveUpdates(_0x5d0006,_0x19e03b){return function(_0x4a5dc6){if(_0x4a5dc6){return _0x4a5dc6[_0xe74f('0x21')](_0x5d0006)['then'](function(_0x472b54){return _0x472b54;});}return null;};}function removeEntity(_0x16db64,_0x38d1e9){return function(_0xfcdad0){if(_0xfcdad0){return _0xfcdad0['destroy']()['then'](function(){_0x16db64[_0xe74f('0x17')](0xcc)[_0xe74f('0x22')]();});}};}function handleEntityNotFound(_0x3ad6fd,_0x59bc55){return function(_0x4e1d27){if(!_0x4e1d27){_0x3ad6fd[_0xe74f('0x23')](0x194);}return _0x4e1d27;};}function handleError(_0x4e02e9,_0x1d4683){_0x1d4683=_0x1d4683||0x1f4;return function(_0x4b4b93){logger[_0xe74f('0x24')](_0x4b4b93[_0xe74f('0x25')]);if(_0x4b4b93['name']){delete _0x4b4b93[_0xe74f('0x26')];}_0x4e02e9[_0xe74f('0x17')](_0x1d4683)['send'](_0x4b4b93);};}exports[_0xe74f('0x27')]=function(_0x4ede94,_0x428b6c){var _0x19df27={},_0x1c12e0={},_0x43a07b={'count':0x0,'rows':[]};var _0x1f4e07=_[_0xe74f('0x28')](db[_0xe74f('0x29')][_0xe74f('0x2a')],function(_0x3ee012){return{'name':_0x3ee012[_0xe74f('0x2b')],'type':_0x3ee012[_0xe74f('0x2c')]['key']};});_0x1c12e0['model']=_['map'](_0x1f4e07,_0xe74f('0x26'));_0x1c12e0[_0xe74f('0x2d')]=_[_0xe74f('0x2e')](_0x4ede94[_0xe74f('0x2d')]);_0x1c12e0[_0xe74f('0x2f')]=_[_0xe74f('0x30')](_0x1c12e0[_0xe74f('0x31')],_0x1c12e0[_0xe74f('0x2d')]);_0x19df27[_0xe74f('0x32')]=_[_0xe74f('0x30')](_0x1c12e0[_0xe74f('0x31')],qs[_0xe74f('0x33')](_0x4ede94[_0xe74f('0x2d')]['fields']));_0x19df27[_0xe74f('0x32')]=_0x19df27[_0xe74f('0x32')][_0xe74f('0x34')]?_0x19df27['attributes']:_0x1c12e0[_0xe74f('0x31')];if(!_0x4ede94[_0xe74f('0x2d')]['hasOwnProperty'](_0xe74f('0x35'))){_0x19df27[_0xe74f('0x1a')]=qs[_0xe74f('0x1a')](_0x4ede94[_0xe74f('0x2d')][_0xe74f('0x1a')]);_0x19df27['offset']=qs[_0xe74f('0x19')](_0x4ede94[_0xe74f('0x2d')][_0xe74f('0x19')]);}_0x19df27[_0xe74f('0x36')]=qs['sort'](_0x4ede94[_0xe74f('0x2d')]['sort']);_0x19df27[_0xe74f('0x37')]=qs['filters'](_[_0xe74f('0x38')](_0x4ede94['query'],_0x1c12e0['filters']),_0x1f4e07);if(_0x4ede94[_0xe74f('0x2d')][_0xe74f('0x39')]){_0x19df27[_0xe74f('0x37')]=_['merge'](_0x19df27[_0xe74f('0x37')],{'$or':_[_0xe74f('0x28')](_0x1f4e07,function(_0x5dd18a){if(_0x5dd18a[_0xe74f('0x2c')]!=='VIRTUAL'){var _0x1e5043={};_0x1e5043[_0x5dd18a['name']]={'$like':'%'+_0x4ede94[_0xe74f('0x2d')][_0xe74f('0x39')]+'%'};return _0x1e5043;}})});}_0x19df27=_[_0xe74f('0x3a')]({},_0x19df27,_0x4ede94['options']);var _0x35238f={'where':_0x19df27['where']};return db[_0xe74f('0x29')][_0xe74f('0x1c')](_0x35238f)[_0xe74f('0x3b')](function(_0x287757){_0x43a07b[_0xe74f('0x1c')]=_0x287757;if(_0x4ede94['query'][_0xe74f('0x3c')]){_0x19df27[_0xe74f('0x3d')]=[{'all':!![]}];}return db['DeskAccount'][_0xe74f('0x3e')](_0x19df27);})[_0xe74f('0x3b')](function(_0x976aca){_0x43a07b[_0xe74f('0x3f')]=_0x976aca;return _0x43a07b;})[_0xe74f('0x3b')](respondWithFilteredResult(_0x428b6c,_0x19df27))[_0xe74f('0x40')](handleError(_0x428b6c,null));};exports[_0xe74f('0x41')]=function(_0x2c6d18,_0x795a81){var _0x1e0469={'raw':![],'where':{'id':_0x2c6d18[_0xe74f('0x42')]['id']}},_0x453e4b={};_0x453e4b[_0xe74f('0x31')]=_[_0xe74f('0x2e')](db[_0xe74f('0x29')][_0xe74f('0x2a')]);_0x453e4b[_0xe74f('0x2d')]=_[_0xe74f('0x2e')](_0x2c6d18[_0xe74f('0x2d')]);_0x453e4b[_0xe74f('0x2f')]=_[_0xe74f('0x30')](_0x453e4b[_0xe74f('0x31')],_0x453e4b['query']);_0x1e0469[_0xe74f('0x32')]=_[_0xe74f('0x30')](_0x453e4b[_0xe74f('0x31')],qs[_0xe74f('0x33')](_0x2c6d18[_0xe74f('0x2d')][_0xe74f('0x33')]));_0x1e0469[_0xe74f('0x32')]=_0x1e0469[_0xe74f('0x32')][_0xe74f('0x34')]?_0x1e0469['attributes']:_0x453e4b['model'];if(_0x2c6d18[_0xe74f('0x2d')][_0xe74f('0x3c')]){_0x1e0469[_0xe74f('0x3d')]=[{'all':!![]}];}_0x1e0469=_[_0xe74f('0x3a')]({},_0x1e0469,_0x2c6d18['options']);return db[_0xe74f('0x29')][_0xe74f('0x43')](_0x1e0469)[_0xe74f('0x3b')](handleEntityNotFound(_0x795a81,null))['then'](respondWithResult(_0x795a81,null))[_0xe74f('0x40')](handleError(_0x795a81,null));};exports[_0xe74f('0x44')]=function(_0x1c4129,_0x136476){return db[_0xe74f('0x29')][_0xe74f('0x44')](_0x1c4129[_0xe74f('0x45')],{})[_0xe74f('0x3b')](respondWithResult(_0x136476,0xc9))[_0xe74f('0x40')](handleError(_0x136476,null));};exports[_0xe74f('0x21')]=function(_0x282664,_0xf54b0){if(_0x282664['body']['id']){delete _0x282664['body']['id'];}return db[_0xe74f('0x29')]['find']({'where':{'id':_0x282664[_0xe74f('0x42')]['id']}})[_0xe74f('0x3b')](handleEntityNotFound(_0xf54b0,null))[_0xe74f('0x3b')](saveUpdates(_0x282664[_0xe74f('0x45')],null))[_0xe74f('0x3b')](respondWithResult(_0xf54b0,null))['catch'](handleError(_0xf54b0,null));};exports[_0xe74f('0x46')]=function(_0xbc7f00,_0x4e9b11){return db[_0xe74f('0x29')][_0xe74f('0x43')]({'where':{'id':_0xbc7f00[_0xe74f('0x42')]['id']}})[_0xe74f('0x3b')](handleEntityNotFound(_0x4e9b11,null))[_0xe74f('0x3b')](removeEntity(_0x4e9b11,null))[_0xe74f('0x40')](handleError(_0x4e9b11,null));};exports[_0xe74f('0x47')]=function(_0x448759,_0x41d629,_0x5050e2){var _0x50d6d8={};var _0x39f29f={};var _0x16d73f;var _0x560ee0;return db['DeskAccount']['findOne']({'where':{'id':_0x448759[_0xe74f('0x42')]['id']}})[_0xe74f('0x3b')](handleEntityNotFound(_0x41d629,null))[_0xe74f('0x3b')](function(_0x3d67f6){if(_0x3d67f6){_0x16d73f=_0x3d67f6;_0x39f29f[_0xe74f('0x31')]=_[_0xe74f('0x2e')](db['DeskConfiguration'][_0xe74f('0x2a')]);_0x39f29f[_0xe74f('0x2d')]=_[_0xe74f('0x2e')](_0x448759[_0xe74f('0x2d')]);_0x39f29f[_0xe74f('0x2f')]=_[_0xe74f('0x30')](_0x39f29f[_0xe74f('0x31')],_0x39f29f[_0xe74f('0x2d')]);_0x50d6d8[_0xe74f('0x32')]=_['intersection'](_0x39f29f['model'],qs[_0xe74f('0x33')](_0x448759['query'][_0xe74f('0x33')]));_0x50d6d8['attributes']=_0x50d6d8[_0xe74f('0x32')][_0xe74f('0x34')]?_0x50d6d8[_0xe74f('0x32')]:_0x39f29f[_0xe74f('0x31')];_0x50d6d8[_0xe74f('0x36')]=qs['sort'](_0x448759[_0xe74f('0x2d')][_0xe74f('0x48')]);_0x50d6d8['where']=qs[_0xe74f('0x2f')](_[_0xe74f('0x38')](_0x448759[_0xe74f('0x2d')],_0x39f29f[_0xe74f('0x2f')]));if(_0x448759[_0xe74f('0x2d')]['filter']){_0x50d6d8[_0xe74f('0x37')]=_[_0xe74f('0x3a')](_0x50d6d8[_0xe74f('0x37')],{'$or':_['map'](_0x50d6d8[_0xe74f('0x32')],function(_0xd0052c){var _0x4b78d7={};_0x4b78d7[_0xd0052c]={'$like':'%'+_0x448759[_0xe74f('0x2d')]['filter']+'%'};return _0x4b78d7;})});}_0x50d6d8=_[_0xe74f('0x3a')]({},_0x50d6d8,_0x448759[_0xe74f('0x49')]);return _0x16d73f[_0xe74f('0x47')](_0x50d6d8);}})['then'](function(_0x4a74c0){if(_0x4a74c0){_0x560ee0=_0x4a74c0[_0xe74f('0x34')];if(!_0x448759[_0xe74f('0x2d')][_0xe74f('0x4a')](_0xe74f('0x35'))){_0x50d6d8[_0xe74f('0x1a')]=qs['limit'](_0x448759[_0xe74f('0x2d')]['limit']);_0x50d6d8[_0xe74f('0x19')]=qs[_0xe74f('0x19')](_0x448759[_0xe74f('0x2d')]['offset']);}return _0x16d73f[_0xe74f('0x47')](_0x50d6d8);}})[_0xe74f('0x3b')](function(_0x5e0a62){if(_0x5e0a62){return _0x5e0a62?{'count':_0x560ee0,'rows':_0x5e0a62}:null;}})[_0xe74f('0x3b')](respondWithResult(_0x41d629,null))[_0xe74f('0x40')](handleError(_0x41d629,null));};exports[_0xe74f('0x4b')]=function(_0x4d7533,_0xa0c552,_0x115a4d){if(_0x4d7533[_0xe74f('0x45')]['id']){delete _0x4d7533[_0xe74f('0x45')]['id'];}return db[_0xe74f('0x29')]['findOne']({'where':{'id':_0x4d7533[_0xe74f('0x42')]['id']}})[_0xe74f('0x3b')](handleEntityNotFound(_0xa0c552,null))[_0xe74f('0x3b')](function(_0x5280c8){if(_0x5280c8){_0x4d7533[_0xe74f('0x45')]['AccountId']=_0x5280c8['id'];_0x4d7533[_0xe74f('0x45')]['Subjects']=integrations[_0xe74f('0x4c')](_0x4d7533[_0xe74f('0x45')][_0xe74f('0x4d')],_0x4d7533[_0xe74f('0x45')]['type']);_0x4d7533[_0xe74f('0x45')][_0xe74f('0x4e')]=integrations[_0xe74f('0x4f')](_0x4d7533[_0xe74f('0x45')][_0xe74f('0x4d')],_0x4d7533[_0xe74f('0x45')][_0xe74f('0x2c')]);return db[_0xe74f('0x50')][_0xe74f('0x44')](_0x4d7533[_0xe74f('0x45')],{'include':[{'model':db[_0xe74f('0x51')],'as':_0xe74f('0x52')},{'model':db[_0xe74f('0x51')],'as':'Descriptions'}]});}return null;})[_0xe74f('0x3b')](respondWithResult(_0xa0c552,null))[_0xe74f('0x40')](handleError(_0xa0c552,null));};exports[_0xe74f('0x53')]=function(_0x222cd1,_0x41e0c2,_0x5b30de){var _0xd3b5e6=[{'name':_0xe74f('0x54'),'label':_0xe74f('0x54'),'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 _0x56a08c='';return db[_0xe74f('0x29')]['findOne']({'where':{'id':_0x222cd1['params']['id']},'attributes':['id',_0xe74f('0x55'),_0xe74f('0x56'),_0xe74f('0x57'),_0xe74f('0x58'),_0xe74f('0x59'),_0xe74f('0x5a'),_0xe74f('0x5b'),_0xe74f('0x5c')]})['then'](handleEntityNotFound(_0x41e0c2,null))[_0xe74f('0x3b')](function(_0x55d2d0){if(_0x55d2d0){_0x56a08c=_0x55d2d0['remoteUri'];var _0x164466=_0x56a08c[_0xe74f('0x5d')](-0x1);if(_0x164466==='/'){_0x56a08c=_0x56a08c[_0xe74f('0x5e')](0x0,_0x56a08c[_0xe74f('0x5f')](_0x164466));}var _0x21ff6e={'method':'GET','uri':util[_0xe74f('0x60')](_0xe74f('0x61'),_0x56a08c),'headers':{'Content-Type':_0xe74f('0x62'),'Accept':_0xe74f('0x62')},'json':!![]};if(_0x55d2d0['authType']===_0xe74f('0x63')){_0x21ff6e[_0xe74f('0x64')][_0xe74f('0x65')]=util[_0xe74f('0x60')]('Basic\x20%s',new Buffer(util[_0xe74f('0x60')](_0xe74f('0x66'),_0x55d2d0[_0xe74f('0x57')],_0x55d2d0[_0xe74f('0x58')]))[_0xe74f('0x67')](_0xe74f('0x68')));}return rp(_0x21ff6e)['then'](function(_0x51fa48){return _0xd3b5e6[_0xe74f('0x69')](_[_0xe74f('0x28')](_0x51fa48[_0xe74f('0x6a')][_0xe74f('0x6b')],function(_0x5ded40){return{'id':_0x5ded40[_0xe74f('0x26')],'name':_0x5ded40[_0xe74f('0x26')],'type':_0x5ded40[_0xe74f('0x2c')],'active':_0x5ded40[_0xe74f('0x6c')],'label':_0x5ded40[_0xe74f('0x6d')],'custom':!![]};}));});}})['then'](function(_0x3420c0){return{'count':_0x3420c0[_0xe74f('0x34')],'rows':_0x3420c0};})[_0xe74f('0x3b')](respondWithResult(_0x41e0c2,null))['catch'](function(_0xbe6e0d){var _0x4fb264=_0x222cd1[_0xe74f('0x2d')][_0xe74f('0x6e')]?0x1f4:_0xbe6e0d[_0xe74f('0x6f')]||0x1f4;logger['error'](_0xe74f('0x70'),'getFields',_0x4fb264,JSON[_0xe74f('0x71')](_0xbe6e0d));delete _0xbe6e0d['name'];if(_0x4fb264===0x191){_0x4fb264=0x190;}_0x41e0c2[_0xe74f('0x17')](_0x4fb264)[_0xe74f('0x72')](_0x222cd1[_0xe74f('0x2d')][_0xe74f('0x6e')]?{'message':'Wrong\x20credentials','statusCode':_0xbe6e0d[_0xe74f('0x6f')]}:_0xbe6e0d);});};