Built motion from commit 092f8824.|2.5.49
[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 _0x99d7=['Basic\x20%s','%s:%s','toString','concat','_embedded','active','label','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','rimraf','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','sendStatus','send','index','map','rawAttributes','fieldName','type','key','model','name','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','includeAll','include','rows','show','params','keys','DeskAccount','find','catch','create','body','findOne','DeskConfiguration','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','username','password','consumerSecret','tokenSecret','slice','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','Authorization'];(function(_0x5dceb6,_0x1dcbe5){var _0x898077=function(_0x524d25){while(--_0x524d25){_0x5dceb6['push'](_0x5dceb6['shift']());}};_0x898077(++_0x1dcbe5);}(_0x99d7,0x80));var _0x799d=function(_0x51d7f6,_0x92fe4){_0x51d7f6=_0x51d7f6-0x0;var _0xa5c618=_0x99d7[_0x51d7f6];return _0xa5c618;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x799d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x799d('0x1'));var moment=require('moment');var BPromise=require(_0x799d('0x2'));var Mustache=require(_0x799d('0x3'));var util=require(_0x799d('0x4'));var path=require(_0x799d('0x5'));var sox=require(_0x799d('0x6'));var csv=require(_0x799d('0x7'));var ejs=require(_0x799d('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x799d('0x9'));var crypto=require(_0x799d('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x799d('0xb'));var Papa=require(_0x799d('0xc'));var Redis=require(_0x799d('0xd'));var authService=require(_0x799d('0xe'));var qs=require(_0x799d('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x799d('0x10'))(_0x799d('0x11'));var utils=require(_0x799d('0x12'));var config=require(_0x799d('0x13'));var licenseUtil=require(_0x799d('0x14'));var db=require(_0x799d('0x15'))['db'];var integrations=require(_0x799d('0x16'));function respondWithStatusCode(_0x158cec,_0x4552e5){_0x4552e5=_0x4552e5||0xcc;return function(_0x349c62){if(_0x349c62){return _0x158cec['sendStatus'](_0x4552e5);}return _0x158cec[_0x799d('0x17')](_0x4552e5)[_0x799d('0x18')]();};}function respondWithResult(_0x3d85b4,_0x4c341a){_0x4c341a=_0x4c341a||0xc8;return function(_0x593fb9){if(_0x593fb9){return _0x3d85b4[_0x799d('0x17')](_0x4c341a)[_0x799d('0x19')](_0x593fb9);}};}function respondWithFilteredResult(_0x397055,_0x26f65b){return function(_0x443ea1){if(_0x443ea1){var _0x153f38=typeof _0x26f65b[_0x799d('0x1a')]===_0x799d('0x1b')&&typeof _0x26f65b[_0x799d('0x1c')]===_0x799d('0x1b');var _0x1abcd4=_0x443ea1[_0x799d('0x1d')];var _0x2d04ec=_0x153f38?0x0:_0x26f65b[_0x799d('0x1a')];var _0x13945d=_0x153f38?_0x443ea1[_0x799d('0x1d')]:_0x26f65b[_0x799d('0x1a')]+_0x26f65b['limit'];var _0x1c68bd;if(_0x13945d>=_0x1abcd4){_0x13945d=_0x1abcd4;_0x1c68bd=0xc8;}else{_0x1c68bd=0xce;}_0x397055[_0x799d('0x17')](_0x1c68bd);return _0x397055[_0x799d('0x1e')](_0x799d('0x1f'),_0x2d04ec+'-'+_0x13945d+'/'+_0x1abcd4)[_0x799d('0x19')](_0x443ea1);}return null;};}function patchUpdates(_0x109b5e){return function(_0x1a3fb3){try{jsonpatch[_0x799d('0x20')](_0x1a3fb3,_0x109b5e,!![]);}catch(_0x392724){return BPromise[_0x799d('0x21')](_0x392724);}return _0x1a3fb3[_0x799d('0x22')]();};}function saveUpdates(_0x53df61,_0x398207){return function(_0x487403){if(_0x487403){return _0x487403[_0x799d('0x23')](_0x53df61)['then'](function(_0xcbfb99){return _0xcbfb99;});}return null;};}function removeEntity(_0x434649,_0x7f03da){return function(_0x5611c2){if(_0x5611c2){return _0x5611c2[_0x799d('0x24')]()[_0x799d('0x25')](function(){_0x434649['status'](0xcc)[_0x799d('0x18')]();});}};}function handleEntityNotFound(_0x3cdbac,_0x2e04e0){return function(_0x56044c){if(!_0x56044c){_0x3cdbac[_0x799d('0x26')](0x194);}return _0x56044c;};}function handleError(_0x1831e2,_0x305a26){_0x305a26=_0x305a26||0x1f4;return function(_0x404078){logger['error'](_0x404078['stack']);if(_0x404078['name']){delete _0x404078['name'];}_0x1831e2[_0x799d('0x17')](_0x305a26)[_0x799d('0x27')](_0x404078);};}exports[_0x799d('0x28')]=function(_0xfb98d7,_0x32b0f7){var _0x3837d3={},_0x4fecfb={},_0x2f897c={'count':0x0,'rows':[]};var _0x2df436=_[_0x799d('0x29')](db['DeskAccount'][_0x799d('0x2a')],function(_0x4b79f8){return{'name':_0x4b79f8[_0x799d('0x2b')],'type':_0x4b79f8[_0x799d('0x2c')][_0x799d('0x2d')]};});_0x4fecfb[_0x799d('0x2e')]=_[_0x799d('0x29')](_0x2df436,_0x799d('0x2f'));_0x4fecfb[_0x799d('0x30')]=_['keys'](_0xfb98d7['query']);_0x4fecfb['filters']=_[_0x799d('0x31')](_0x4fecfb['model'],_0x4fecfb[_0x799d('0x30')]);_0x3837d3[_0x799d('0x32')]=_[_0x799d('0x31')](_0x4fecfb[_0x799d('0x2e')],qs[_0x799d('0x33')](_0xfb98d7[_0x799d('0x30')][_0x799d('0x33')]));_0x3837d3[_0x799d('0x32')]=_0x3837d3[_0x799d('0x32')][_0x799d('0x34')]?_0x3837d3[_0x799d('0x32')]:_0x4fecfb['model'];if(!_0xfb98d7[_0x799d('0x30')][_0x799d('0x35')](_0x799d('0x36'))){_0x3837d3[_0x799d('0x1c')]=qs[_0x799d('0x1c')](_0xfb98d7[_0x799d('0x30')]['limit']);_0x3837d3[_0x799d('0x1a')]=qs[_0x799d('0x1a')](_0xfb98d7[_0x799d('0x30')][_0x799d('0x1a')]);}_0x3837d3[_0x799d('0x37')]=qs[_0x799d('0x38')](_0xfb98d7['query'][_0x799d('0x38')]);_0x3837d3[_0x799d('0x39')]=qs['filters'](_[_0x799d('0x3a')](_0xfb98d7[_0x799d('0x30')],_0x4fecfb[_0x799d('0x3b')]),_0x2df436);if(_0xfb98d7[_0x799d('0x30')][_0x799d('0x3c')]){_0x3837d3['where']=_[_0x799d('0x3d')](_0x3837d3['where'],{'$or':_['map'](_0x2df436,function(_0x88a9b1){if(_0x88a9b1[_0x799d('0x2c')]!==_0x799d('0x3e')){var _0x429e1e={};_0x429e1e[_0x88a9b1['name']]={'$like':'%'+_0xfb98d7[_0x799d('0x30')][_0x799d('0x3c')]+'%'};return _0x429e1e;}})});}_0x3837d3=_['merge']({},_0x3837d3,_0xfb98d7[_0x799d('0x3f')]);var _0x2f8cb1={'where':_0x3837d3['where']};return db['DeskAccount']['count'](_0x2f8cb1)['then'](function(_0x5741bc){_0x2f897c[_0x799d('0x1d')]=_0x5741bc;if(_0xfb98d7['query'][_0x799d('0x40')]){_0x3837d3[_0x799d('0x41')]=[{'all':!![]}];}return db['DeskAccount']['findAll'](_0x3837d3);})[_0x799d('0x25')](function(_0x11aa1f){_0x2f897c[_0x799d('0x42')]=_0x11aa1f;return _0x2f897c;})[_0x799d('0x25')](respondWithFilteredResult(_0x32b0f7,_0x3837d3))['catch'](handleError(_0x32b0f7,null));};exports[_0x799d('0x43')]=function(_0x201cc1,_0x3aac80){var _0x36d785={'raw':![],'where':{'id':_0x201cc1[_0x799d('0x44')]['id']}},_0x504a27={};_0x504a27[_0x799d('0x2e')]=_[_0x799d('0x45')](db[_0x799d('0x46')][_0x799d('0x2a')]);_0x504a27[_0x799d('0x30')]=_[_0x799d('0x45')](_0x201cc1[_0x799d('0x30')]);_0x504a27[_0x799d('0x3b')]=_['intersection'](_0x504a27[_0x799d('0x2e')],_0x504a27[_0x799d('0x30')]);_0x36d785[_0x799d('0x32')]=_['intersection'](_0x504a27['model'],qs[_0x799d('0x33')](_0x201cc1['query'][_0x799d('0x33')]));_0x36d785[_0x799d('0x32')]=_0x36d785[_0x799d('0x32')][_0x799d('0x34')]?_0x36d785['attributes']:_0x504a27['model'];if(_0x201cc1[_0x799d('0x30')][_0x799d('0x40')]){_0x36d785['include']=[{'all':!![]}];}_0x36d785=_[_0x799d('0x3d')]({},_0x36d785,_0x201cc1[_0x799d('0x3f')]);return db[_0x799d('0x46')][_0x799d('0x47')](_0x36d785)[_0x799d('0x25')](handleEntityNotFound(_0x3aac80,null))[_0x799d('0x25')](respondWithResult(_0x3aac80,null))[_0x799d('0x48')](handleError(_0x3aac80,null));};exports[_0x799d('0x49')]=function(_0x28d995,_0x5da0b2){return db['DeskAccount'][_0x799d('0x49')](_0x28d995[_0x799d('0x4a')],{})['then'](respondWithResult(_0x5da0b2,0xc9))['catch'](handleError(_0x5da0b2,null));};exports[_0x799d('0x23')]=function(_0x45fb78,_0xb5be3){if(_0x45fb78[_0x799d('0x4a')]['id']){delete _0x45fb78[_0x799d('0x4a')]['id'];}return db[_0x799d('0x46')][_0x799d('0x47')]({'where':{'id':_0x45fb78['params']['id']}})[_0x799d('0x25')](handleEntityNotFound(_0xb5be3,null))['then'](saveUpdates(_0x45fb78[_0x799d('0x4a')],null))[_0x799d('0x25')](respondWithResult(_0xb5be3,null))[_0x799d('0x48')](handleError(_0xb5be3,null));};exports[_0x799d('0x24')]=function(_0x4851e8,_0x278cb4){return db[_0x799d('0x46')][_0x799d('0x47')]({'where':{'id':_0x4851e8['params']['id']}})[_0x799d('0x25')](handleEntityNotFound(_0x278cb4,null))['then'](removeEntity(_0x278cb4,null))[_0x799d('0x48')](handleError(_0x278cb4,null));};exports['getConfigurations']=function(_0x2aefd0,_0x59fce8,_0x3a38ca){var _0x212847={};var _0x5f1763={};var _0xb1dff8;var _0x299d2a;return db[_0x799d('0x46')][_0x799d('0x4b')]({'where':{'id':_0x2aefd0[_0x799d('0x44')]['id']}})[_0x799d('0x25')](handleEntityNotFound(_0x59fce8,null))[_0x799d('0x25')](function(_0x21c1cb){if(_0x21c1cb){_0xb1dff8=_0x21c1cb;_0x5f1763[_0x799d('0x2e')]=_[_0x799d('0x45')](db[_0x799d('0x4c')][_0x799d('0x2a')]);_0x5f1763['query']=_['keys'](_0x2aefd0[_0x799d('0x30')]);_0x5f1763['filters']=_['intersection'](_0x5f1763[_0x799d('0x2e')],_0x5f1763[_0x799d('0x30')]);_0x212847['attributes']=_[_0x799d('0x31')](_0x5f1763['model'],qs[_0x799d('0x33')](_0x2aefd0[_0x799d('0x30')][_0x799d('0x33')]));_0x212847[_0x799d('0x32')]=_0x212847[_0x799d('0x32')][_0x799d('0x34')]?_0x212847[_0x799d('0x32')]:_0x5f1763[_0x799d('0x2e')];_0x212847[_0x799d('0x37')]=qs[_0x799d('0x38')](_0x2aefd0[_0x799d('0x30')][_0x799d('0x38')]);_0x212847[_0x799d('0x39')]=qs['filters'](_[_0x799d('0x3a')](_0x2aefd0[_0x799d('0x30')],_0x5f1763[_0x799d('0x3b')]));if(_0x2aefd0[_0x799d('0x30')][_0x799d('0x3c')]){_0x212847[_0x799d('0x39')]=_['merge'](_0x212847[_0x799d('0x39')],{'$or':_[_0x799d('0x29')](_0x212847[_0x799d('0x32')],function(_0x16cd22){var _0x57f59f={};_0x57f59f[_0x16cd22]={'$like':'%'+_0x2aefd0[_0x799d('0x30')][_0x799d('0x3c')]+'%'};return _0x57f59f;})});}_0x212847=_[_0x799d('0x3d')]({},_0x212847,_0x2aefd0['options']);return _0xb1dff8[_0x799d('0x4d')](_0x212847);}})[_0x799d('0x25')](function(_0x32f0bb){if(_0x32f0bb){_0x299d2a=_0x32f0bb[_0x799d('0x34')];if(!_0x2aefd0[_0x799d('0x30')][_0x799d('0x35')](_0x799d('0x36'))){_0x212847[_0x799d('0x1c')]=qs[_0x799d('0x1c')](_0x2aefd0[_0x799d('0x30')][_0x799d('0x1c')]);_0x212847[_0x799d('0x1a')]=qs[_0x799d('0x1a')](_0x2aefd0['query'][_0x799d('0x1a')]);}return _0xb1dff8[_0x799d('0x4d')](_0x212847);}})[_0x799d('0x25')](function(_0x48fafc){if(_0x48fafc){return _0x48fafc?{'count':_0x299d2a,'rows':_0x48fafc}:null;}})[_0x799d('0x25')](respondWithResult(_0x59fce8,null))[_0x799d('0x48')](handleError(_0x59fce8,null));};exports[_0x799d('0x4e')]=function(_0x14f190,_0x382508,_0x15d878){if(_0x14f190[_0x799d('0x4a')]['id']){delete _0x14f190['body']['id'];}return db['DeskAccount'][_0x799d('0x4b')]({'where':{'id':_0x14f190[_0x799d('0x44')]['id']}})['then'](handleEntityNotFound(_0x382508,null))[_0x799d('0x25')](function(_0x5bd41a){if(_0x5bd41a){_0x14f190[_0x799d('0x4a')][_0x799d('0x4f')]=_0x5bd41a['id'];_0x14f190[_0x799d('0x4a')][_0x799d('0x50')]=integrations[_0x799d('0x51')](_0x14f190['body'][_0x799d('0x52')],_0x14f190[_0x799d('0x4a')][_0x799d('0x2c')]);_0x14f190[_0x799d('0x4a')][_0x799d('0x53')]=integrations[_0x799d('0x54')](_0x14f190[_0x799d('0x4a')]['channel'],_0x14f190['body'][_0x799d('0x2c')]);return db['DeskConfiguration']['create'](_0x14f190['body'],{'include':[{'model':db[_0x799d('0x55')],'as':'Subjects'},{'model':db[_0x799d('0x55')],'as':_0x799d('0x53')}]});}return null;})[_0x799d('0x25')](respondWithResult(_0x382508,null))[_0x799d('0x48')](handleError(_0x382508,null));};exports[_0x799d('0x56')]=function(_0xb9706c,_0x24af95,_0x33c28){var _0xae9558=[{'name':_0x799d('0x57'),'label':_0x799d('0x57'),'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 _0x193dae='';return db['DeskAccount']['findOne']({'where':{'id':_0xb9706c[_0x799d('0x44')]['id']},'attributes':['id',_0x799d('0x58'),'authType',_0x799d('0x59'),_0x799d('0x5a'),'consumerKey',_0x799d('0x5b'),'token',_0x799d('0x5c')]})[_0x799d('0x25')](handleEntityNotFound(_0x24af95,null))[_0x799d('0x25')](function(_0x24f645){if(_0x24f645){_0x193dae=_0x24f645[_0x799d('0x58')];var _0x5f4d26=_0x193dae[_0x799d('0x5d')](-0x1);if(_0x5f4d26==='/'){_0x193dae=_0x193dae[_0x799d('0x5e')](0x0,_0x193dae[_0x799d('0x5f')](_0x5f4d26));}var _0x40241b={'method':_0x799d('0x60'),'uri':util[_0x799d('0x61')](_0x799d('0x62'),_0x193dae),'headers':{'Content-Type':_0x799d('0x63'),'Accept':_0x799d('0x63')},'json':!![]};if(_0x24f645['authType']===_0x799d('0x64')){_0x40241b['headers'][_0x799d('0x65')]=util[_0x799d('0x61')](_0x799d('0x66'),new Buffer(util[_0x799d('0x61')](_0x799d('0x67'),_0x24f645[_0x799d('0x59')],_0x24f645[_0x799d('0x5a')]))[_0x799d('0x68')]('base64'));}return rp(_0x40241b)[_0x799d('0x25')](function(_0x18012a){return _0xae9558[_0x799d('0x69')](_['map'](_0x18012a[_0x799d('0x6a')]['entries'],function(_0x1a4ae3){return{'id':_0x1a4ae3['name'],'name':_0x1a4ae3[_0x799d('0x2f')],'type':_0x1a4ae3[_0x799d('0x2c')],'active':_0x1a4ae3[_0x799d('0x6b')],'label':_0x1a4ae3[_0x799d('0x6c')],'custom':!![]};}));});}})[_0x799d('0x25')](function(_0x133bad){return{'count':_0x133bad[_0x799d('0x34')],'rows':_0x133bad};})[_0x799d('0x25')](respondWithResult(_0x24af95,null))[_0x799d('0x48')](function(_0x41b0d3){var _0x501c25=_0xb9706c[_0x799d('0x30')]['test']?0x1f4:_0x41b0d3[_0x799d('0x6d')]||0x1f4;logger[_0x799d('0x6e')](_0x799d('0x6f'),_0x799d('0x56'),_0x501c25,JSON[_0x799d('0x70')](_0x41b0d3));delete _0x41b0d3[_0x799d('0x2f')];if(_0x501c25===0x191){_0x501c25=0x190;}_0x24af95[_0x799d('0x17')](_0x501c25)[_0x799d('0x27')](_0xb9706c['query'][_0x799d('0x71')]?{'message':_0x799d('0x72'),'statusCode':_0x41b0d3[_0x799d('0x6d')]}:_0x41b0d3);});};