fc654bd932c12500607ee74bdfd46b0a9af2498c
[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 _0xbffb=['DeskField','Descriptions','getFields','priority','remoteUri','username','consumerKey','consumerSecret','token','tokenSecret','substring','lastIndexOf','GET','%s/custom_fields','application/json','authType','basic','Authorization','Basic\x20%s','format','password','toString','concat','_embedded','entries','label','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','count','limit','Content-Range','apply','save','update','destroy','then','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','DeskAccount','includeAll','include','findAll','rows','show','params','options','find','body','catch','getConfigurations','findOne','DeskConfiguration','addConfiguration','Subjects','getSubjects','channel','create'];(function(_0x510b94,_0x4dbbc0){var _0xd3e601=function(_0x478d3a){while(--_0x478d3a){_0x510b94['push'](_0x510b94['shift']());}};_0xd3e601(++_0x4dbbc0);}(_0xbffb,0x17a));var _0xbbff=function(_0x35e205,_0x51285b){_0x35e205=_0x35e205-0x0;var _0x70425=_0xbffb[_0x35e205];return _0x70425;};'use strict';var emlformat=require(_0xbbff('0x0'));var rimraf=require(_0xbbff('0x1'));var zipdir=require(_0xbbff('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xbbff('0x3'));var Mustache=require('mustache');var util=require(_0xbbff('0x4'));var path=require(_0xbbff('0x5'));var sox=require(_0xbbff('0x6'));var csv=require('to-csv');var ejs=require(_0xbbff('0x7'));var fs=require('fs');var fs_extra=require(_0xbbff('0x8'));var _=require(_0xbbff('0x9'));var squel=require(_0xbbff('0xa'));var crypto=require('crypto');var jsforce=require(_0xbbff('0xb'));var deskjs=require(_0xbbff('0xc'));var toCsv=require(_0xbbff('0xd'));var querystring=require(_0xbbff('0xe'));var Papa=require(_0xbbff('0xf'));var Redis=require(_0xbbff('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xbbff('0x11'));var as=require(_0xbbff('0x12'));var hardwareService=require(_0xbbff('0x13'));var logger=require(_0xbbff('0x14'))(_0xbbff('0x15'));var utils=require(_0xbbff('0x16'));var config=require(_0xbbff('0x17'));var licenseUtil=require(_0xbbff('0x18'));var db=require(_0xbbff('0x19'))['db'];var integrations=require(_0xbbff('0x1a'));function respondWithStatusCode(_0xb5a7f,_0x2f5e38){_0x2f5e38=_0x2f5e38||0xcc;return function(_0x1d6cba){if(_0x1d6cba){return _0xb5a7f[_0xbbff('0x1b')](_0x2f5e38);}return _0xb5a7f['status'](_0x2f5e38)[_0xbbff('0x1c')]();};}function respondWithResult(_0x347c13,_0x2e2a78){_0x2e2a78=_0x2e2a78||0xc8;return function(_0x1cff5a){if(_0x1cff5a){return _0x347c13[_0xbbff('0x1d')](_0x2e2a78)[_0xbbff('0x1e')](_0x1cff5a);}};}function respondWithFilteredResult(_0x47187b,_0x154234){return function(_0x1fbfee){if(_0x1fbfee){var _0x45dc4e=typeof _0x154234[_0xbbff('0x1f')]===_0xbbff('0x20')&&typeof _0x154234['limit']==='undefined';var _0x2fad2e=_0x1fbfee[_0xbbff('0x21')];var _0x5b7f78=_0x45dc4e?0x0:_0x154234[_0xbbff('0x1f')];var _0x5130ae=_0x45dc4e?_0x1fbfee[_0xbbff('0x21')]:_0x154234['offset']+_0x154234[_0xbbff('0x22')];var _0x16d041;if(_0x5130ae>=_0x2fad2e){_0x5130ae=_0x2fad2e;_0x16d041=0xc8;}else{_0x16d041=0xce;}_0x47187b[_0xbbff('0x1d')](_0x16d041);return _0x47187b['set'](_0xbbff('0x23'),_0x5b7f78+'-'+_0x5130ae+'/'+_0x2fad2e)[_0xbbff('0x1e')](_0x1fbfee);}return null;};}function patchUpdates(_0x4060c8){return function(_0xcd0b85){try{jsonpatch[_0xbbff('0x24')](_0xcd0b85,_0x4060c8,!![]);}catch(_0x34a01d){return BPromise['reject'](_0x34a01d);}return _0xcd0b85[_0xbbff('0x25')]();};}function saveUpdates(_0x34f198,_0x4a91de){return function(_0xe1e6fa){if(_0xe1e6fa){return _0xe1e6fa[_0xbbff('0x26')](_0x34f198)['then'](function(_0x23f728){return _0x23f728;});}return null;};}function removeEntity(_0x38a2a4,_0x34b13e){return function(_0x27d27e){if(_0x27d27e){return _0x27d27e[_0xbbff('0x27')]()[_0xbbff('0x28')](function(){_0x38a2a4[_0xbbff('0x1d')](0xcc)[_0xbbff('0x1c')]();});}};}function handleEntityNotFound(_0x225208,_0x563450){return function(_0x56f278){if(!_0x56f278){_0x225208[_0xbbff('0x1b')](0x194);}return _0x56f278;};}function handleError(_0x332178,_0x1d326e){_0x1d326e=_0x1d326e||0x1f4;return function(_0x228546){logger['error'](_0x228546[_0xbbff('0x29')]);if(_0x228546[_0xbbff('0x2a')]){delete _0x228546[_0xbbff('0x2a')];}_0x332178[_0xbbff('0x1d')](_0x1d326e)[_0xbbff('0x2b')](_0x228546);};}exports[_0xbbff('0x2c')]=function(_0x1f770a,_0x139a3d){var _0x3ac32a={},_0x33ae12={},_0x40b74c={'count':0x0,'rows':[]};var _0x319ad8=_[_0xbbff('0x2d')](db['DeskAccount'][_0xbbff('0x2e')],function(_0x31c864){return{'name':_0x31c864[_0xbbff('0x2f')],'type':_0x31c864[_0xbbff('0x30')][_0xbbff('0x31')]};});_0x33ae12['model']=_[_0xbbff('0x2d')](_0x319ad8,_0xbbff('0x2a'));_0x33ae12[_0xbbff('0x32')]=_[_0xbbff('0x33')](_0x1f770a[_0xbbff('0x32')]);_0x33ae12[_0xbbff('0x34')]=_[_0xbbff('0x35')](_0x33ae12[_0xbbff('0x36')],_0x33ae12[_0xbbff('0x32')]);_0x3ac32a[_0xbbff('0x37')]=_['intersection'](_0x33ae12['model'],qs[_0xbbff('0x38')](_0x1f770a['query'][_0xbbff('0x38')]));_0x3ac32a[_0xbbff('0x37')]=_0x3ac32a[_0xbbff('0x37')][_0xbbff('0x39')]?_0x3ac32a['attributes']:_0x33ae12[_0xbbff('0x36')];if(!_0x1f770a['query'][_0xbbff('0x3a')](_0xbbff('0x3b'))){_0x3ac32a['limit']=qs['limit'](_0x1f770a['query'][_0xbbff('0x22')]);_0x3ac32a['offset']=qs[_0xbbff('0x1f')](_0x1f770a[_0xbbff('0x32')][_0xbbff('0x1f')]);}_0x3ac32a[_0xbbff('0x3c')]=qs[_0xbbff('0x3d')](_0x1f770a[_0xbbff('0x32')]['sort']);_0x3ac32a[_0xbbff('0x3e')]=qs[_0xbbff('0x34')](_[_0xbbff('0x3f')](_0x1f770a[_0xbbff('0x32')],_0x33ae12[_0xbbff('0x34')]),_0x319ad8);if(_0x1f770a[_0xbbff('0x32')][_0xbbff('0x40')]){_0x3ac32a[_0xbbff('0x3e')]=_[_0xbbff('0x41')](_0x3ac32a[_0xbbff('0x3e')],{'$or':_[_0xbbff('0x2d')](_0x319ad8,function(_0x55d578){if(_0x55d578[_0xbbff('0x30')]!==_0xbbff('0x42')){var _0x2ad9b0={};_0x2ad9b0[_0x55d578[_0xbbff('0x2a')]]={'$like':'%'+_0x1f770a[_0xbbff('0x32')][_0xbbff('0x40')]+'%'};return _0x2ad9b0;}})});}_0x3ac32a=_[_0xbbff('0x41')]({},_0x3ac32a,_0x1f770a['options']);var _0x42e653={'where':_0x3ac32a['where']};return db[_0xbbff('0x43')]['count'](_0x42e653)[_0xbbff('0x28')](function(_0x5dd056){_0x40b74c[_0xbbff('0x21')]=_0x5dd056;if(_0x1f770a[_0xbbff('0x32')][_0xbbff('0x44')]){_0x3ac32a[_0xbbff('0x45')]=[{'all':!![]}];}return db[_0xbbff('0x43')][_0xbbff('0x46')](_0x3ac32a);})[_0xbbff('0x28')](function(_0x5dda93){_0x40b74c[_0xbbff('0x47')]=_0x5dda93;return _0x40b74c;})[_0xbbff('0x28')](respondWithFilteredResult(_0x139a3d,_0x3ac32a))['catch'](handleError(_0x139a3d,null));};exports[_0xbbff('0x48')]=function(_0x1e92d2,_0x4e5dd6){var _0x234010={'raw':![],'where':{'id':_0x1e92d2[_0xbbff('0x49')]['id']}},_0x2096c8={};_0x2096c8['model']=_[_0xbbff('0x33')](db[_0xbbff('0x43')]['rawAttributes']);_0x2096c8[_0xbbff('0x32')]=_[_0xbbff('0x33')](_0x1e92d2[_0xbbff('0x32')]);_0x2096c8[_0xbbff('0x34')]=_['intersection'](_0x2096c8[_0xbbff('0x36')],_0x2096c8[_0xbbff('0x32')]);_0x234010[_0xbbff('0x37')]=_[_0xbbff('0x35')](_0x2096c8['model'],qs['fields'](_0x1e92d2[_0xbbff('0x32')][_0xbbff('0x38')]));_0x234010[_0xbbff('0x37')]=_0x234010['attributes'][_0xbbff('0x39')]?_0x234010[_0xbbff('0x37')]:_0x2096c8[_0xbbff('0x36')];if(_0x1e92d2[_0xbbff('0x32')][_0xbbff('0x44')]){_0x234010[_0xbbff('0x45')]=[{'all':!![]}];}_0x234010=_[_0xbbff('0x41')]({},_0x234010,_0x1e92d2[_0xbbff('0x4a')]);return db[_0xbbff('0x43')][_0xbbff('0x4b')](_0x234010)[_0xbbff('0x28')](handleEntityNotFound(_0x4e5dd6,null))[_0xbbff('0x28')](respondWithResult(_0x4e5dd6,null))['catch'](handleError(_0x4e5dd6,null));};exports['create']=function(_0x1e73d0,_0xe85c85){return db[_0xbbff('0x43')]['create'](_0x1e73d0[_0xbbff('0x4c')],{})[_0xbbff('0x28')](respondWithResult(_0xe85c85,0xc9))[_0xbbff('0x4d')](handleError(_0xe85c85,null));};exports['update']=function(_0x3781f4,_0xd2ddd6){if(_0x3781f4[_0xbbff('0x4c')]['id']){delete _0x3781f4[_0xbbff('0x4c')]['id'];}return db[_0xbbff('0x43')]['find']({'where':{'id':_0x3781f4[_0xbbff('0x49')]['id']}})[_0xbbff('0x28')](handleEntityNotFound(_0xd2ddd6,null))[_0xbbff('0x28')](saveUpdates(_0x3781f4[_0xbbff('0x4c')],null))['then'](respondWithResult(_0xd2ddd6,null))[_0xbbff('0x4d')](handleError(_0xd2ddd6,null));};exports['destroy']=function(_0x4011b6,_0x440d88){return db['DeskAccount'][_0xbbff('0x4b')]({'where':{'id':_0x4011b6[_0xbbff('0x49')]['id']}})[_0xbbff('0x28')](handleEntityNotFound(_0x440d88,null))[_0xbbff('0x28')](removeEntity(_0x440d88,null))[_0xbbff('0x4d')](handleError(_0x440d88,null));};exports[_0xbbff('0x4e')]=function(_0x3aa03c,_0x49c7a5,_0x24daad){var _0x304c71={};var _0xeb74b1={};var _0x56e76b;var _0x4c32dd;return db[_0xbbff('0x43')][_0xbbff('0x4f')]({'where':{'id':_0x3aa03c[_0xbbff('0x49')]['id']}})[_0xbbff('0x28')](handleEntityNotFound(_0x49c7a5,null))[_0xbbff('0x28')](function(_0x208f85){if(_0x208f85){_0x56e76b=_0x208f85;_0xeb74b1[_0xbbff('0x36')]=_[_0xbbff('0x33')](db[_0xbbff('0x50')]['rawAttributes']);_0xeb74b1[_0xbbff('0x32')]=_[_0xbbff('0x33')](_0x3aa03c['query']);_0xeb74b1[_0xbbff('0x34')]=_[_0xbbff('0x35')](_0xeb74b1[_0xbbff('0x36')],_0xeb74b1['query']);_0x304c71[_0xbbff('0x37')]=_[_0xbbff('0x35')](_0xeb74b1[_0xbbff('0x36')],qs[_0xbbff('0x38')](_0x3aa03c[_0xbbff('0x32')][_0xbbff('0x38')]));_0x304c71[_0xbbff('0x37')]=_0x304c71[_0xbbff('0x37')][_0xbbff('0x39')]?_0x304c71[_0xbbff('0x37')]:_0xeb74b1[_0xbbff('0x36')];_0x304c71[_0xbbff('0x3c')]=qs[_0xbbff('0x3d')](_0x3aa03c[_0xbbff('0x32')][_0xbbff('0x3d')]);_0x304c71['where']=qs[_0xbbff('0x34')](_[_0xbbff('0x3f')](_0x3aa03c[_0xbbff('0x32')],_0xeb74b1[_0xbbff('0x34')]));if(_0x3aa03c[_0xbbff('0x32')][_0xbbff('0x40')]){_0x304c71[_0xbbff('0x3e')]=_[_0xbbff('0x41')](_0x304c71[_0xbbff('0x3e')],{'$or':_[_0xbbff('0x2d')](_0x304c71[_0xbbff('0x37')],function(_0x3bb4ca){var _0xe33dc8={};_0xe33dc8[_0x3bb4ca]={'$like':'%'+_0x3aa03c[_0xbbff('0x32')]['filter']+'%'};return _0xe33dc8;})});}_0x304c71=_[_0xbbff('0x41')]({},_0x304c71,_0x3aa03c[_0xbbff('0x4a')]);return _0x56e76b['getConfigurations'](_0x304c71);}})[_0xbbff('0x28')](function(_0xd7b2c6){if(_0xd7b2c6){_0x4c32dd=_0xd7b2c6[_0xbbff('0x39')];if(!_0x3aa03c[_0xbbff('0x32')][_0xbbff('0x3a')]('nolimit')){_0x304c71[_0xbbff('0x22')]=qs['limit'](_0x3aa03c[_0xbbff('0x32')][_0xbbff('0x22')]);_0x304c71[_0xbbff('0x1f')]=qs[_0xbbff('0x1f')](_0x3aa03c[_0xbbff('0x32')][_0xbbff('0x1f')]);}return _0x56e76b[_0xbbff('0x4e')](_0x304c71);}})['then'](function(_0x30a457){if(_0x30a457){return _0x30a457?{'count':_0x4c32dd,'rows':_0x30a457}:null;}})[_0xbbff('0x28')](respondWithResult(_0x49c7a5,null))[_0xbbff('0x4d')](handleError(_0x49c7a5,null));};exports[_0xbbff('0x51')]=function(_0x42aa29,_0x5e7441,_0x3d25de){if(_0x42aa29[_0xbbff('0x4c')]['id']){delete _0x42aa29[_0xbbff('0x4c')]['id'];}return db[_0xbbff('0x43')]['findOne']({'where':{'id':_0x42aa29['params']['id']}})[_0xbbff('0x28')](handleEntityNotFound(_0x5e7441,null))[_0xbbff('0x28')](function(_0x48f3e1){if(_0x48f3e1){_0x42aa29[_0xbbff('0x4c')]['AccountId']=_0x48f3e1['id'];_0x42aa29['body'][_0xbbff('0x52')]=integrations[_0xbbff('0x53')](_0x42aa29[_0xbbff('0x4c')][_0xbbff('0x54')],_0x42aa29['body'][_0xbbff('0x30')]);_0x42aa29[_0xbbff('0x4c')]['Descriptions']=integrations['getDescriptions'](_0x42aa29['body'][_0xbbff('0x54')],_0x42aa29[_0xbbff('0x4c')]['type']);return db[_0xbbff('0x50')][_0xbbff('0x55')](_0x42aa29[_0xbbff('0x4c')],{'include':[{'model':db[_0xbbff('0x56')],'as':_0xbbff('0x52')},{'model':db[_0xbbff('0x56')],'as':_0xbbff('0x57')}]});}return null;})[_0xbbff('0x28')](respondWithResult(_0x5e7441,null))['catch'](handleError(_0x5e7441,null));};exports[_0xbbff('0x58')]=function(_0x506a77,_0x505bb5,_0x50e41a){var _0x2c8527=[{'name':'priority','label':_0xbbff('0x59'),'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 _0x1004b0='';return db[_0xbbff('0x43')][_0xbbff('0x4f')]({'where':{'id':_0x506a77[_0xbbff('0x49')]['id']},'attributes':['id',_0xbbff('0x5a'),'authType',_0xbbff('0x5b'),'password',_0xbbff('0x5c'),_0xbbff('0x5d'),_0xbbff('0x5e'),_0xbbff('0x5f')]})[_0xbbff('0x28')](handleEntityNotFound(_0x505bb5,null))['then'](function(_0x2980da){if(_0x2980da){_0x1004b0=_0x2980da[_0xbbff('0x5a')];var _0x3b84f3=_0x1004b0['slice'](-0x1);if(_0x3b84f3==='/'){_0x1004b0=_0x1004b0[_0xbbff('0x60')](0x0,_0x1004b0[_0xbbff('0x61')](_0x3b84f3));}var _0x397727={'method':_0xbbff('0x62'),'uri':util['format'](_0xbbff('0x63'),_0x1004b0),'headers':{'Content-Type':_0xbbff('0x64'),'Accept':'application/json'},'json':!![]};if(_0x2980da[_0xbbff('0x65')]===_0xbbff('0x66')){_0x397727['headers'][_0xbbff('0x67')]=util['format'](_0xbbff('0x68'),new Buffer(util[_0xbbff('0x69')]('%s:%s',_0x2980da[_0xbbff('0x5b')],_0x2980da[_0xbbff('0x6a')]))[_0xbbff('0x6b')]('base64'));}return rp(_0x397727)['then'](function(_0x1a0166){return _0x2c8527[_0xbbff('0x6c')](_['map'](_0x1a0166[_0xbbff('0x6d')][_0xbbff('0x6e')],function(_0x519081){return{'id':_0x519081['name'],'name':_0x519081[_0xbbff('0x2a')],'type':_0x519081[_0xbbff('0x30')],'active':_0x519081['active'],'label':_0x519081[_0xbbff('0x6f')],'custom':!![]};}));});}})[_0xbbff('0x28')](function(_0x2d65fd){return{'count':_0x2d65fd['length'],'rows':_0x2d65fd};})[_0xbbff('0x28')](respondWithResult(_0x505bb5,null))[_0xbbff('0x4d')](function(_0x30dc29){var _0x4619a0=_0x506a77[_0xbbff('0x32')][_0xbbff('0x70')]?0x1f4:_0x30dc29['statusCode']||0x1f4;logger['error'](_0xbbff('0x71'),_0xbbff('0x58'),_0x4619a0,JSON[_0xbbff('0x72')](_0x30dc29));delete _0x30dc29[_0xbbff('0x2a')];if(_0x4619a0===0x191){_0x4619a0=0x190;}_0x505bb5[_0xbbff('0x1d')](_0x4619a0)[_0xbbff('0x2b')](_0x506a77[_0xbbff('0x32')][_0xbbff('0x70')]?{'message':_0xbbff('0x73'),'statusCode':_0x30dc29['statusCode']}:_0x30dc29);});};