8efa03be80f10617f80688f0fcbb041fbcb37d54
[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 _0x23c3=['statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','DeskConfiguration','pick','getConfigurations','nolimit','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','getFields','remoteUri','authType','username','password','consumerKey','consumerSecret','tokenSecret','substring','GET','format','%s/custom_fields','application/json','basic','headers','Authorization','%s:%s','toString','base64','concat','_embedded','entries','label','test'];(function(_0x1344b4,_0x282704){var _0x395940=function(_0x49a8f2){while(--_0x49a8f2){_0x1344b4['push'](_0x1344b4['shift']());}};_0x395940(++_0x282704);}(_0x23c3,0x75));var _0x323c=function(_0x52bfa5,_0x42cf21){_0x52bfa5=_0x52bfa5-0x0;var _0x26f80b=_0x23c3[_0x52bfa5];return _0x26f80b;};'use strict';var emlformat=require(_0x323c('0x0'));var rimraf=require(_0x323c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x323c('0x2'));var rp=require(_0x323c('0x3'));var moment=require(_0x323c('0x4'));var BPromise=require(_0x323c('0x5'));var Mustache=require(_0x323c('0x6'));var util=require('util');var path=require(_0x323c('0x7'));var sox=require(_0x323c('0x8'));var csv=require(_0x323c('0x9'));var ejs=require(_0x323c('0xa'));var fs=require('fs');var fs_extra=require(_0x323c('0xb'));var _=require('lodash');var squel=require(_0x323c('0xc'));var crypto=require(_0x323c('0xd'));var jsforce=require(_0x323c('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x323c('0xf'));var Redis=require(_0x323c('0x10'));var authService=require(_0x323c('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x323c('0x12'));var hardwareService=require(_0x323c('0x13'));var logger=require(_0x323c('0x14'))(_0x323c('0x15'));var utils=require(_0x323c('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x323c('0x17'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x5521d1,_0x414b7e){_0x414b7e=_0x414b7e||0xcc;return function(_0x3ff2e7){if(_0x3ff2e7){return _0x5521d1[_0x323c('0x18')](_0x414b7e);}return _0x5521d1[_0x323c('0x19')](_0x414b7e)[_0x323c('0x1a')]();};}function respondWithResult(_0x42094f,_0x34a799){_0x34a799=_0x34a799||0xc8;return function(_0x1f9e66){if(_0x1f9e66){return _0x42094f[_0x323c('0x19')](_0x34a799)[_0x323c('0x1b')](_0x1f9e66);}};}function respondWithFilteredResult(_0x3518eb,_0x467ce6){return function(_0x51abae){if(_0x51abae){var _0x3870f4=typeof _0x467ce6[_0x323c('0x1c')]===_0x323c('0x1d')&&typeof _0x467ce6[_0x323c('0x1e')]===_0x323c('0x1d');var _0x2993b9=_0x51abae['count'];var _0x285cf3=_0x3870f4?0x0:_0x467ce6[_0x323c('0x1c')];var _0x378870=_0x3870f4?_0x51abae[_0x323c('0x1f')]:_0x467ce6[_0x323c('0x1c')]+_0x467ce6[_0x323c('0x1e')];var _0x28a15a;if(_0x378870>=_0x2993b9){_0x378870=_0x2993b9;_0x28a15a=0xc8;}else{_0x28a15a=0xce;}_0x3518eb[_0x323c('0x19')](_0x28a15a);return _0x3518eb[_0x323c('0x20')](_0x323c('0x21'),_0x285cf3+'-'+_0x378870+'/'+_0x2993b9)['json'](_0x51abae);}return null;};}function patchUpdates(_0x38e8a8){return function(_0x3e3a1a){try{jsonpatch[_0x323c('0x22')](_0x3e3a1a,_0x38e8a8,!![]);}catch(_0x3f2172){return BPromise[_0x323c('0x23')](_0x3f2172);}return _0x3e3a1a['save']();};}function saveUpdates(_0x3a0c63,_0x594122){return function(_0x2f1358){if(_0x2f1358){return _0x2f1358[_0x323c('0x24')](_0x3a0c63)[_0x323c('0x25')](function(_0x18d61f){return _0x18d61f;});}return null;};}function removeEntity(_0x34d457,_0x1febca){return function(_0x57da9c){if(_0x57da9c){return _0x57da9c[_0x323c('0x26')]()['then'](function(){_0x34d457[_0x323c('0x19')](0xcc)[_0x323c('0x1a')]();});}};}function handleEntityNotFound(_0x330922,_0x5bbc22){return function(_0x32b3e8){if(!_0x32b3e8){_0x330922[_0x323c('0x18')](0x194);}return _0x32b3e8;};}function handleError(_0x58b059,_0x19d954){_0x19d954=_0x19d954||0x1f4;return function(_0x53eabc){logger[_0x323c('0x27')](_0x53eabc[_0x323c('0x28')]);if(_0x53eabc[_0x323c('0x29')]){delete _0x53eabc['name'];}_0x58b059[_0x323c('0x19')](_0x19d954)[_0x323c('0x2a')](_0x53eabc);};}exports[_0x323c('0x2b')]=function(_0x146419,_0x405e8a){var _0x41ba6c={},_0x496f08={},_0x3946f0={'count':0x0,'rows':[]};var _0x1205b7=_[_0x323c('0x2c')](db[_0x323c('0x2d')][_0x323c('0x2e')],function(_0x2b46f5){return{'name':_0x2b46f5[_0x323c('0x2f')],'type':_0x2b46f5[_0x323c('0x30')][_0x323c('0x31')]};});_0x496f08[_0x323c('0x32')]=_[_0x323c('0x2c')](_0x1205b7,_0x323c('0x29'));_0x496f08[_0x323c('0x33')]=_[_0x323c('0x34')](_0x146419[_0x323c('0x33')]);_0x496f08[_0x323c('0x35')]=_[_0x323c('0x36')](_0x496f08[_0x323c('0x32')],_0x496f08[_0x323c('0x33')]);_0x41ba6c[_0x323c('0x37')]=_[_0x323c('0x36')](_0x496f08[_0x323c('0x32')],qs[_0x323c('0x38')](_0x146419[_0x323c('0x33')]['fields']));_0x41ba6c[_0x323c('0x37')]=_0x41ba6c[_0x323c('0x37')][_0x323c('0x39')]?_0x41ba6c[_0x323c('0x37')]:_0x496f08['model'];if(!_0x146419[_0x323c('0x33')][_0x323c('0x3a')]('nolimit')){_0x41ba6c[_0x323c('0x1e')]=qs[_0x323c('0x1e')](_0x146419[_0x323c('0x33')][_0x323c('0x1e')]);_0x41ba6c[_0x323c('0x1c')]=qs[_0x323c('0x1c')](_0x146419[_0x323c('0x33')][_0x323c('0x1c')]);}_0x41ba6c[_0x323c('0x3b')]=qs[_0x323c('0x3c')](_0x146419[_0x323c('0x33')][_0x323c('0x3c')]);_0x41ba6c[_0x323c('0x3d')]=qs[_0x323c('0x35')](_['pick'](_0x146419[_0x323c('0x33')],_0x496f08['filters']),_0x1205b7);if(_0x146419[_0x323c('0x33')]['filter']){_0x41ba6c[_0x323c('0x3d')]=_[_0x323c('0x3e')](_0x41ba6c['where'],{'$or':_[_0x323c('0x2c')](_0x1205b7,function(_0x4cc956){if(_0x4cc956[_0x323c('0x30')]!==_0x323c('0x3f')){var _0x33b0ad={};_0x33b0ad[_0x4cc956['name']]={'$like':'%'+_0x146419[_0x323c('0x33')][_0x323c('0x40')]+'%'};return _0x33b0ad;}})});}_0x41ba6c=_['merge']({},_0x41ba6c,_0x146419[_0x323c('0x41')]);var _0x5538b6={'where':_0x41ba6c[_0x323c('0x3d')]};return db[_0x323c('0x2d')][_0x323c('0x1f')](_0x5538b6)[_0x323c('0x25')](function(_0xcdc201){_0x3946f0[_0x323c('0x1f')]=_0xcdc201;if(_0x146419[_0x323c('0x33')][_0x323c('0x42')]){_0x41ba6c[_0x323c('0x43')]=[{'all':!![]}];}return db[_0x323c('0x2d')][_0x323c('0x44')](_0x41ba6c);})[_0x323c('0x25')](function(_0x39134a){_0x3946f0[_0x323c('0x45')]=_0x39134a;return _0x3946f0;})[_0x323c('0x25')](respondWithFilteredResult(_0x405e8a,_0x41ba6c))['catch'](handleError(_0x405e8a,null));};exports[_0x323c('0x46')]=function(_0x3025ff,_0x1b344a){var _0x56061c={'raw':![],'where':{'id':_0x3025ff[_0x323c('0x47')]['id']}},_0x164163={};_0x164163[_0x323c('0x32')]=_['keys'](db[_0x323c('0x2d')][_0x323c('0x2e')]);_0x164163[_0x323c('0x33')]=_[_0x323c('0x34')](_0x3025ff[_0x323c('0x33')]);_0x164163['filters']=_['intersection'](_0x164163['model'],_0x164163[_0x323c('0x33')]);_0x56061c['attributes']=_[_0x323c('0x36')](_0x164163[_0x323c('0x32')],qs['fields'](_0x3025ff['query']['fields']));_0x56061c[_0x323c('0x37')]=_0x56061c[_0x323c('0x37')][_0x323c('0x39')]?_0x56061c['attributes']:_0x164163[_0x323c('0x32')];if(_0x3025ff[_0x323c('0x33')][_0x323c('0x42')]){_0x56061c[_0x323c('0x43')]=[{'all':!![]}];}_0x56061c=_['merge']({},_0x56061c,_0x3025ff[_0x323c('0x41')]);return db[_0x323c('0x2d')][_0x323c('0x48')](_0x56061c)['then'](handleEntityNotFound(_0x1b344a,null))[_0x323c('0x25')](respondWithResult(_0x1b344a,null))[_0x323c('0x49')](handleError(_0x1b344a,null));};exports['create']=function(_0x2181ae,_0x391eed){return db[_0x323c('0x2d')][_0x323c('0x4a')](_0x2181ae[_0x323c('0x4b')],{})['then'](respondWithResult(_0x391eed,0xc9))[_0x323c('0x49')](handleError(_0x391eed,null));};exports[_0x323c('0x24')]=function(_0x4cc0c0,_0x14e941){if(_0x4cc0c0[_0x323c('0x4b')]['id']){delete _0x4cc0c0[_0x323c('0x4b')]['id'];}return db[_0x323c('0x2d')][_0x323c('0x48')]({'where':{'id':_0x4cc0c0[_0x323c('0x47')]['id']}})[_0x323c('0x25')](handleEntityNotFound(_0x14e941,null))['then'](saveUpdates(_0x4cc0c0[_0x323c('0x4b')],null))[_0x323c('0x25')](respondWithResult(_0x14e941,null))['catch'](handleError(_0x14e941,null));};exports[_0x323c('0x26')]=function(_0x5a6c6f,_0x473278){return db[_0x323c('0x2d')][_0x323c('0x48')]({'where':{'id':_0x5a6c6f[_0x323c('0x47')]['id']}})['then'](handleEntityNotFound(_0x473278,null))[_0x323c('0x25')](removeEntity(_0x473278,null))[_0x323c('0x49')](handleError(_0x473278,null));};exports['getConfigurations']=function(_0xaf88b5,_0x576818,_0x371018){var _0x4ae5fe={};var _0x1a37ca={};var _0x306c4b;var _0xd665de;return db[_0x323c('0x2d')]['findOne']({'where':{'id':_0xaf88b5[_0x323c('0x47')]['id']}})['then'](handleEntityNotFound(_0x576818,null))[_0x323c('0x25')](function(_0x3ed413){if(_0x3ed413){_0x306c4b=_0x3ed413;_0x1a37ca[_0x323c('0x32')]=_[_0x323c('0x34')](db[_0x323c('0x4c')][_0x323c('0x2e')]);_0x1a37ca[_0x323c('0x33')]=_[_0x323c('0x34')](_0xaf88b5['query']);_0x1a37ca['filters']=_[_0x323c('0x36')](_0x1a37ca['model'],_0x1a37ca['query']);_0x4ae5fe['attributes']=_['intersection'](_0x1a37ca[_0x323c('0x32')],qs[_0x323c('0x38')](_0xaf88b5['query'][_0x323c('0x38')]));_0x4ae5fe['attributes']=_0x4ae5fe['attributes'][_0x323c('0x39')]?_0x4ae5fe['attributes']:_0x1a37ca[_0x323c('0x32')];_0x4ae5fe[_0x323c('0x3b')]=qs['sort'](_0xaf88b5[_0x323c('0x33')][_0x323c('0x3c')]);_0x4ae5fe[_0x323c('0x3d')]=qs[_0x323c('0x35')](_[_0x323c('0x4d')](_0xaf88b5[_0x323c('0x33')],_0x1a37ca['filters']));if(_0xaf88b5[_0x323c('0x33')][_0x323c('0x40')]){_0x4ae5fe[_0x323c('0x3d')]=_[_0x323c('0x3e')](_0x4ae5fe[_0x323c('0x3d')],{'$or':_[_0x323c('0x2c')](_0x4ae5fe[_0x323c('0x37')],function(_0x36db62){var _0x46f876={};_0x46f876[_0x36db62]={'$like':'%'+_0xaf88b5['query'][_0x323c('0x40')]+'%'};return _0x46f876;})});}_0x4ae5fe=_[_0x323c('0x3e')]({},_0x4ae5fe,_0xaf88b5[_0x323c('0x41')]);return _0x306c4b[_0x323c('0x4e')](_0x4ae5fe);}})['then'](function(_0x3778a4){if(_0x3778a4){_0xd665de=_0x3778a4['length'];if(!_0xaf88b5[_0x323c('0x33')]['hasOwnProperty'](_0x323c('0x4f'))){_0x4ae5fe[_0x323c('0x1e')]=qs[_0x323c('0x1e')](_0xaf88b5['query'][_0x323c('0x1e')]);_0x4ae5fe[_0x323c('0x1c')]=qs[_0x323c('0x1c')](_0xaf88b5[_0x323c('0x33')][_0x323c('0x1c')]);}return _0x306c4b[_0x323c('0x4e')](_0x4ae5fe);}})[_0x323c('0x25')](function(_0x523cb7){if(_0x523cb7){return _0x523cb7?{'count':_0xd665de,'rows':_0x523cb7}:null;}})[_0x323c('0x25')](respondWithResult(_0x576818,null))[_0x323c('0x49')](handleError(_0x576818,null));};exports['addConfiguration']=function(_0xc72c7b,_0x40baeb,_0x129d6e){if(_0xc72c7b['body']['id']){delete _0xc72c7b[_0x323c('0x4b')]['id'];}return db[_0x323c('0x2d')][_0x323c('0x50')]({'where':{'id':_0xc72c7b['params']['id']}})[_0x323c('0x25')](handleEntityNotFound(_0x40baeb,null))[_0x323c('0x25')](function(_0x239ea3){if(_0x239ea3){_0xc72c7b[_0x323c('0x4b')][_0x323c('0x51')]=_0x239ea3['id'];_0xc72c7b[_0x323c('0x4b')][_0x323c('0x52')]=integrations[_0x323c('0x53')](_0xc72c7b['body'][_0x323c('0x54')],_0xc72c7b[_0x323c('0x4b')][_0x323c('0x30')]);_0xc72c7b[_0x323c('0x4b')][_0x323c('0x55')]=integrations[_0x323c('0x56')](_0xc72c7b[_0x323c('0x4b')][_0x323c('0x54')],_0xc72c7b['body'][_0x323c('0x30')]);return db[_0x323c('0x4c')][_0x323c('0x4a')](_0xc72c7b[_0x323c('0x4b')],{'include':[{'model':db['DeskField'],'as':_0x323c('0x52')},{'model':db['DeskField'],'as':_0x323c('0x55')}]});}return null;})[_0x323c('0x25')](respondWithResult(_0x40baeb,null))['catch'](handleError(_0x40baeb,null));};exports[_0x323c('0x57')]=function(_0x33d3fe,_0x2b1f65,_0x5281d4){var _0x194645=[{'name':'priority','label':'priority','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 _0x1de192='';return db[_0x323c('0x2d')][_0x323c('0x50')]({'where':{'id':_0x33d3fe[_0x323c('0x47')]['id']},'attributes':['id',_0x323c('0x58'),_0x323c('0x59'),_0x323c('0x5a'),_0x323c('0x5b'),_0x323c('0x5c'),_0x323c('0x5d'),'token',_0x323c('0x5e')]})['then'](handleEntityNotFound(_0x2b1f65,null))[_0x323c('0x25')](function(_0x42ae88){if(_0x42ae88){_0x1de192=_0x42ae88[_0x323c('0x58')];var _0x30a3c8=_0x1de192['slice'](-0x1);if(_0x30a3c8==='/'){_0x1de192=_0x1de192[_0x323c('0x5f')](0x0,_0x1de192['lastIndexOf'](_0x30a3c8));}var _0x55c89f={'method':_0x323c('0x60'),'uri':util[_0x323c('0x61')](_0x323c('0x62'),_0x1de192),'headers':{'Content-Type':'application/json','Accept':_0x323c('0x63')},'json':!![]};if(_0x42ae88[_0x323c('0x59')]===_0x323c('0x64')){_0x55c89f[_0x323c('0x65')][_0x323c('0x66')]=util['format']('Basic\x20%s',new Buffer(util[_0x323c('0x61')](_0x323c('0x67'),_0x42ae88[_0x323c('0x5a')],_0x42ae88[_0x323c('0x5b')]))[_0x323c('0x68')](_0x323c('0x69')));}return rp(_0x55c89f)[_0x323c('0x25')](function(_0x57062f){return _0x194645[_0x323c('0x6a')](_['map'](_0x57062f[_0x323c('0x6b')][_0x323c('0x6c')],function(_0x2d8729){return{'id':_0x2d8729['name'],'name':_0x2d8729[_0x323c('0x29')],'type':_0x2d8729[_0x323c('0x30')],'active':_0x2d8729['active'],'label':_0x2d8729[_0x323c('0x6d')],'custom':!![]};}));});}})['then'](function(_0x37a6f2){return{'count':_0x37a6f2[_0x323c('0x39')],'rows':_0x37a6f2};})[_0x323c('0x25')](respondWithResult(_0x2b1f65,null))[_0x323c('0x49')](function(_0x27e350){var _0x13aeb4=_0x33d3fe['query'][_0x323c('0x6e')]?0x1f4:_0x27e350[_0x323c('0x6f')]||0x1f4;logger[_0x323c('0x27')](_0x323c('0x70'),_0x323c('0x57'),_0x13aeb4,JSON['stringify'](_0x27e350));delete _0x27e350[_0x323c('0x29')];if(_0x13aeb4===0x191){_0x13aeb4=0x190;}_0x2b1f65[_0x323c('0x19')](_0x13aeb4)[_0x323c('0x2a')](_0x33d3fe[_0x323c('0x33')][_0x323c('0x6e')]?{'message':_0x323c('0x71'),'statusCode':_0x27e350[_0x323c('0x6f')]}:_0x27e350);});};