Built motion from commit 8c034dcd.|2.6.31
[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 _0x2845=['concat','_embedded','active','label','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','send','test','Wrong\x20credentials','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','offset','undefined','limit','count','set','json','reject','update','then','destroy','error','index','DeskAccount','type','model','map','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','filter','options','includeAll','include','findAll','catch','show','params','find','create','body','getConfigurations','findOne','DeskConfiguration','rawAttributes','nolimit','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','DeskField','priority','remoteUri','authType','username','consumerKey','slice','substring','lastIndexOf','GET','format','application/json','headers','Authorization','Basic\x20%s','%s:%s','password','base64'];(function(_0x254bb7,_0x74ba90){var _0x11491f=function(_0x5e7e22){while(--_0x5e7e22){_0x254bb7['push'](_0x254bb7['shift']());}};_0x11491f(++_0x74ba90);}(_0x2845,0x76));var _0x5284=function(_0x36feee,_0x5883c0){_0x36feee=_0x36feee-0x0;var _0x46cb6c=_0x2845[_0x36feee];return _0x46cb6c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x5284('0x0'));var rp=require(_0x5284('0x1'));var moment=require(_0x5284('0x2'));var BPromise=require(_0x5284('0x3'));var Mustache=require(_0x5284('0x4'));var util=require(_0x5284('0x5'));var path=require('path');var sox=require(_0x5284('0x6'));var csv=require(_0x5284('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5284('0x8'));var _=require('lodash');var squel=require(_0x5284('0x9'));var crypto=require(_0x5284('0xa'));var jsforce=require(_0x5284('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x5284('0x7'));var querystring=require(_0x5284('0xc'));var Papa=require('papaparse');var Redis=require(_0x5284('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x5284('0xe'));var as=require(_0x5284('0xf'));var hardwareService=require(_0x5284('0x10'));var logger=require(_0x5284('0x11'))(_0x5284('0x12'));var utils=require(_0x5284('0x13'));var config=require(_0x5284('0x14'));var licenseUtil=require(_0x5284('0x15'));var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x3896b9,_0x25f02f){_0x25f02f=_0x25f02f||0xcc;return function(_0x68006){if(_0x68006){return _0x3896b9[_0x5284('0x16')](_0x25f02f);}return _0x3896b9['status'](_0x25f02f)[_0x5284('0x17')]();};}function respondWithResult(_0x1edf70,_0x3bf846){_0x3bf846=_0x3bf846||0xc8;return function(_0x1c83d9){if(_0x1c83d9){return _0x1edf70[_0x5284('0x18')](_0x3bf846)['json'](_0x1c83d9);}};}function respondWithFilteredResult(_0x266a83,_0x5768a2){return function(_0x290fea){if(_0x290fea){var _0x2a6494=typeof _0x5768a2[_0x5284('0x19')]===_0x5284('0x1a')&&typeof _0x5768a2[_0x5284('0x1b')]===_0x5284('0x1a');var _0x900172=_0x290fea[_0x5284('0x1c')];var _0x15f970=_0x2a6494?0x0:_0x5768a2['offset'];var _0x3ccb37=_0x2a6494?_0x290fea[_0x5284('0x1c')]:_0x5768a2['offset']+_0x5768a2['limit'];var _0x3e3260;if(_0x3ccb37>=_0x900172){_0x3ccb37=_0x900172;_0x3e3260=0xc8;}else{_0x3e3260=0xce;}_0x266a83['status'](_0x3e3260);return _0x266a83[_0x5284('0x1d')]('Content-Range',_0x15f970+'-'+_0x3ccb37+'/'+_0x900172)[_0x5284('0x1e')](_0x290fea);}return null;};}function patchUpdates(_0x46cbc5){return function(_0xa074cc){try{jsonpatch['apply'](_0xa074cc,_0x46cbc5,!![]);}catch(_0x1c552d){return BPromise[_0x5284('0x1f')](_0x1c552d);}return _0xa074cc['save']();};}function saveUpdates(_0x12904b,_0x2c0df0){return function(_0x19b744){if(_0x19b744){return _0x19b744[_0x5284('0x20')](_0x12904b)[_0x5284('0x21')](function(_0x4fd7a0){return _0x4fd7a0;});}return null;};}function removeEntity(_0x3c42b3,_0x3e6ead){return function(_0xcf231b){if(_0xcf231b){return _0xcf231b[_0x5284('0x22')]()[_0x5284('0x21')](function(){_0x3c42b3['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5abf8a,_0x70da4f){return function(_0x372d50){if(!_0x372d50){_0x5abf8a[_0x5284('0x16')](0x194);}return _0x372d50;};}function handleError(_0x453063,_0x27818d){_0x27818d=_0x27818d||0x1f4;return function(_0x40cc6b){logger[_0x5284('0x23')](_0x40cc6b['stack']);if(_0x40cc6b['name']){delete _0x40cc6b['name'];}_0x453063['status'](_0x27818d)['send'](_0x40cc6b);};}exports[_0x5284('0x24')]=function(_0x5e25a4,_0xf27d83){var _0x48ebc7={},_0x1b798e={},_0x316bbe={'count':0x0,'rows':[]};var _0x5b9986=_['map'](db[_0x5284('0x25')]['rawAttributes'],function(_0x3ed2c3){return{'name':_0x3ed2c3['fieldName'],'type':_0x3ed2c3[_0x5284('0x26')]['key']};});_0x1b798e[_0x5284('0x27')]=_[_0x5284('0x28')](_0x5b9986,_0x5284('0x29'));_0x1b798e[_0x5284('0x2a')]=_[_0x5284('0x2b')](_0x5e25a4['query']);_0x1b798e[_0x5284('0x2c')]=_[_0x5284('0x2d')](_0x1b798e[_0x5284('0x27')],_0x1b798e['query']);_0x48ebc7[_0x5284('0x2e')]=_[_0x5284('0x2d')](_0x1b798e[_0x5284('0x27')],qs[_0x5284('0x2f')](_0x5e25a4[_0x5284('0x2a')][_0x5284('0x2f')]));_0x48ebc7[_0x5284('0x2e')]=_0x48ebc7[_0x5284('0x2e')][_0x5284('0x30')]?_0x48ebc7[_0x5284('0x2e')]:_0x1b798e[_0x5284('0x27')];if(!_0x5e25a4[_0x5284('0x2a')][_0x5284('0x31')]('nolimit')){_0x48ebc7[_0x5284('0x1b')]=qs['limit'](_0x5e25a4[_0x5284('0x2a')]['limit']);_0x48ebc7[_0x5284('0x19')]=qs[_0x5284('0x19')](_0x5e25a4[_0x5284('0x2a')]['offset']);}_0x48ebc7[_0x5284('0x32')]=qs[_0x5284('0x33')](_0x5e25a4[_0x5284('0x2a')][_0x5284('0x33')]);_0x48ebc7[_0x5284('0x34')]=qs[_0x5284('0x2c')](_[_0x5284('0x35')](_0x5e25a4[_0x5284('0x2a')],_0x1b798e[_0x5284('0x2c')]),_0x5b9986);if(_0x5e25a4[_0x5284('0x2a')]['filter']){_0x48ebc7['where']=_[_0x5284('0x36')](_0x48ebc7[_0x5284('0x34')],{'$or':_['map'](_0x5b9986,function(_0x922f40){if(_0x922f40[_0x5284('0x26')]!=='VIRTUAL'){var _0x58cf31={};_0x58cf31[_0x922f40[_0x5284('0x29')]]={'$like':'%'+_0x5e25a4[_0x5284('0x2a')][_0x5284('0x37')]+'%'};return _0x58cf31;}})});}_0x48ebc7=_[_0x5284('0x36')]({},_0x48ebc7,_0x5e25a4[_0x5284('0x38')]);var _0x57ec97={'where':_0x48ebc7[_0x5284('0x34')]};return db[_0x5284('0x25')][_0x5284('0x1c')](_0x57ec97)[_0x5284('0x21')](function(_0x10a20b){_0x316bbe[_0x5284('0x1c')]=_0x10a20b;if(_0x5e25a4['query'][_0x5284('0x39')]){_0x48ebc7[_0x5284('0x3a')]=[{'all':!![]}];}return db[_0x5284('0x25')][_0x5284('0x3b')](_0x48ebc7);})[_0x5284('0x21')](function(_0x2c4248){_0x316bbe['rows']=_0x2c4248;return _0x316bbe;})[_0x5284('0x21')](respondWithFilteredResult(_0xf27d83,_0x48ebc7))[_0x5284('0x3c')](handleError(_0xf27d83,null));};exports[_0x5284('0x3d')]=function(_0x1c3223,_0x2f42d7){var _0x59738c={'raw':![],'where':{'id':_0x1c3223[_0x5284('0x3e')]['id']}},_0x1dc520={};_0x1dc520['model']=_['keys'](db[_0x5284('0x25')]['rawAttributes']);_0x1dc520[_0x5284('0x2a')]=_[_0x5284('0x2b')](_0x1c3223[_0x5284('0x2a')]);_0x1dc520[_0x5284('0x2c')]=_[_0x5284('0x2d')](_0x1dc520[_0x5284('0x27')],_0x1dc520[_0x5284('0x2a')]);_0x59738c[_0x5284('0x2e')]=_[_0x5284('0x2d')](_0x1dc520[_0x5284('0x27')],qs[_0x5284('0x2f')](_0x1c3223[_0x5284('0x2a')][_0x5284('0x2f')]));_0x59738c[_0x5284('0x2e')]=_0x59738c[_0x5284('0x2e')][_0x5284('0x30')]?_0x59738c[_0x5284('0x2e')]:_0x1dc520[_0x5284('0x27')];if(_0x1c3223['query']['includeAll']){_0x59738c[_0x5284('0x3a')]=[{'all':!![]}];}_0x59738c=_[_0x5284('0x36')]({},_0x59738c,_0x1c3223[_0x5284('0x38')]);return db[_0x5284('0x25')][_0x5284('0x3f')](_0x59738c)['then'](handleEntityNotFound(_0x2f42d7,null))['then'](respondWithResult(_0x2f42d7,null))[_0x5284('0x3c')](handleError(_0x2f42d7,null));};exports[_0x5284('0x40')]=function(_0x4e8447,_0x1f6c4a){return db[_0x5284('0x25')]['create'](_0x4e8447[_0x5284('0x41')],{})[_0x5284('0x21')](respondWithResult(_0x1f6c4a,0xc9))[_0x5284('0x3c')](handleError(_0x1f6c4a,null));};exports[_0x5284('0x20')]=function(_0x3be950,_0x4bb4de){if(_0x3be950[_0x5284('0x41')]['id']){delete _0x3be950['body']['id'];}return db[_0x5284('0x25')][_0x5284('0x3f')]({'where':{'id':_0x3be950[_0x5284('0x3e')]['id']}})['then'](handleEntityNotFound(_0x4bb4de,null))[_0x5284('0x21')](saveUpdates(_0x3be950[_0x5284('0x41')],null))[_0x5284('0x21')](respondWithResult(_0x4bb4de,null))['catch'](handleError(_0x4bb4de,null));};exports[_0x5284('0x22')]=function(_0x4e2f40,_0x144a1e){return db[_0x5284('0x25')][_0x5284('0x3f')]({'where':{'id':_0x4e2f40[_0x5284('0x3e')]['id']}})['then'](handleEntityNotFound(_0x144a1e,null))[_0x5284('0x21')](removeEntity(_0x144a1e,null))[_0x5284('0x3c')](handleError(_0x144a1e,null));};exports[_0x5284('0x42')]=function(_0x2cc2ec,_0x583dac,_0xb13ce){var _0x235965={};var _0xaecb0d={};var _0x1d65dd;var _0x24771c;return db[_0x5284('0x25')][_0x5284('0x43')]({'where':{'id':_0x2cc2ec[_0x5284('0x3e')]['id']}})[_0x5284('0x21')](handleEntityNotFound(_0x583dac,null))[_0x5284('0x21')](function(_0x499cc9){if(_0x499cc9){_0x1d65dd=_0x499cc9;_0xaecb0d[_0x5284('0x27')]=_[_0x5284('0x2b')](db[_0x5284('0x44')][_0x5284('0x45')]);_0xaecb0d[_0x5284('0x2a')]=_[_0x5284('0x2b')](_0x2cc2ec[_0x5284('0x2a')]);_0xaecb0d[_0x5284('0x2c')]=_[_0x5284('0x2d')](_0xaecb0d[_0x5284('0x27')],_0xaecb0d['query']);_0x235965[_0x5284('0x2e')]=_['intersection'](_0xaecb0d[_0x5284('0x27')],qs[_0x5284('0x2f')](_0x2cc2ec[_0x5284('0x2a')][_0x5284('0x2f')]));_0x235965[_0x5284('0x2e')]=_0x235965[_0x5284('0x2e')][_0x5284('0x30')]?_0x235965[_0x5284('0x2e')]:_0xaecb0d['model'];_0x235965[_0x5284('0x32')]=qs[_0x5284('0x33')](_0x2cc2ec[_0x5284('0x2a')][_0x5284('0x33')]);_0x235965[_0x5284('0x34')]=qs[_0x5284('0x2c')](_['pick'](_0x2cc2ec[_0x5284('0x2a')],_0xaecb0d['filters']));if(_0x2cc2ec[_0x5284('0x2a')][_0x5284('0x37')]){_0x235965[_0x5284('0x34')]=_[_0x5284('0x36')](_0x235965[_0x5284('0x34')],{'$or':_[_0x5284('0x28')](_0x235965[_0x5284('0x2e')],function(_0x5dc645){var _0x23fae1={};_0x23fae1[_0x5dc645]={'$like':'%'+_0x2cc2ec[_0x5284('0x2a')][_0x5284('0x37')]+'%'};return _0x23fae1;})});}_0x235965=_[_0x5284('0x36')]({},_0x235965,_0x2cc2ec[_0x5284('0x38')]);return _0x1d65dd[_0x5284('0x42')](_0x235965);}})[_0x5284('0x21')](function(_0x4a230a){if(_0x4a230a){_0x24771c=_0x4a230a[_0x5284('0x30')];if(!_0x2cc2ec[_0x5284('0x2a')]['hasOwnProperty'](_0x5284('0x46'))){_0x235965['limit']=qs['limit'](_0x2cc2ec[_0x5284('0x2a')]['limit']);_0x235965[_0x5284('0x19')]=qs[_0x5284('0x19')](_0x2cc2ec['query'][_0x5284('0x19')]);}return _0x1d65dd['getConfigurations'](_0x235965);}})[_0x5284('0x21')](function(_0x14f5d6){if(_0x14f5d6){return _0x14f5d6?{'count':_0x24771c,'rows':_0x14f5d6}:null;}})[_0x5284('0x21')](respondWithResult(_0x583dac,null))['catch'](handleError(_0x583dac,null));};exports[_0x5284('0x47')]=function(_0x156a73,_0xc7dc54,_0x19e6be){if(_0x156a73[_0x5284('0x41')]['id']){delete _0x156a73[_0x5284('0x41')]['id'];}return db[_0x5284('0x25')][_0x5284('0x43')]({'where':{'id':_0x156a73[_0x5284('0x3e')]['id']}})['then'](handleEntityNotFound(_0xc7dc54,null))[_0x5284('0x21')](function(_0x9f7d16){if(_0x9f7d16){_0x156a73[_0x5284('0x41')][_0x5284('0x48')]=_0x9f7d16['id'];_0x156a73[_0x5284('0x41')][_0x5284('0x49')]=integrations[_0x5284('0x4a')](_0x156a73[_0x5284('0x41')]['channel'],_0x156a73[_0x5284('0x41')][_0x5284('0x26')]);_0x156a73['body'][_0x5284('0x4b')]=integrations[_0x5284('0x4c')](_0x156a73[_0x5284('0x41')][_0x5284('0x4d')],_0x156a73[_0x5284('0x41')][_0x5284('0x26')]);return db['DeskConfiguration'][_0x5284('0x40')](_0x156a73[_0x5284('0x41')],{'include':[{'model':db[_0x5284('0x4e')],'as':_0x5284('0x49')},{'model':db[_0x5284('0x4e')],'as':_0x5284('0x4b')}]});}return null;})['then'](respondWithResult(_0xc7dc54,null))['catch'](handleError(_0xc7dc54,null));};exports['getFields']=function(_0x3cf207,_0x55ac8c,_0x478ae3){var _0x7376e7=[{'name':_0x5284('0x4f'),'label':_0x5284('0x4f'),'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 _0x463abf='';return db[_0x5284('0x25')][_0x5284('0x43')]({'where':{'id':_0x3cf207[_0x5284('0x3e')]['id']},'attributes':['id',_0x5284('0x50'),_0x5284('0x51'),_0x5284('0x52'),'password',_0x5284('0x53'),'consumerSecret','token','tokenSecret']})['then'](handleEntityNotFound(_0x55ac8c,null))[_0x5284('0x21')](function(_0x57a1e2){if(_0x57a1e2){_0x463abf=_0x57a1e2['remoteUri'];var _0x239e40=_0x463abf[_0x5284('0x54')](-0x1);if(_0x239e40==='/'){_0x463abf=_0x463abf[_0x5284('0x55')](0x0,_0x463abf[_0x5284('0x56')](_0x239e40));}var _0x47a580={'method':_0x5284('0x57'),'uri':util[_0x5284('0x58')]('%s/custom_fields',_0x463abf),'headers':{'Content-Type':_0x5284('0x59'),'Accept':_0x5284('0x59')},'json':!![]};if(_0x57a1e2['authType']==='basic'){_0x47a580[_0x5284('0x5a')][_0x5284('0x5b')]=util[_0x5284('0x58')](_0x5284('0x5c'),new Buffer(util[_0x5284('0x58')](_0x5284('0x5d'),_0x57a1e2['username'],_0x57a1e2[_0x5284('0x5e')]))['toString'](_0x5284('0x5f')));}return rp(_0x47a580)[_0x5284('0x21')](function(_0x2c075d){return _0x7376e7[_0x5284('0x60')](_['map'](_0x2c075d[_0x5284('0x61')]['entries'],function(_0x34847a){return{'id':_0x34847a[_0x5284('0x29')],'name':_0x34847a[_0x5284('0x29')],'type':_0x34847a[_0x5284('0x26')],'active':_0x34847a[_0x5284('0x62')],'label':_0x34847a[_0x5284('0x63')],'custom':!![]};}));});}})[_0x5284('0x21')](function(_0x40d8c2){return{'count':_0x40d8c2[_0x5284('0x30')],'rows':_0x40d8c2};})[_0x5284('0x21')](respondWithResult(_0x55ac8c,null))['catch'](function(_0x895c82){var _0x5ecdba=_0x3cf207[_0x5284('0x2a')]['test']?0x1f4:_0x895c82[_0x5284('0x64')]||0x1f4;logger[_0x5284('0x23')](_0x5284('0x65'),_0x5284('0x66'),_0x5ecdba,JSON[_0x5284('0x67')](_0x895c82));delete _0x895c82[_0x5284('0x29')];if(_0x5ecdba===0x191){_0x5ecdba=0x190;}_0x55ac8c[_0x5284('0x18')](_0x5ecdba)[_0x5284('0x68')](_0x3cf207[_0x5284('0x2a')][_0x5284('0x69')]?{'message':_0x5284('0x6a'),'statusCode':_0x895c82[_0x5284('0x64')]}:_0x895c82);});};