7bd08d74dbbd1398c77bd833528fd4a83b517117
[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 _0x4a03=['Basic\x20%s','%s:%s','toString','concat','_embedded','entries','label','test','getFields,\x20%s,\x20%s,\x20%s','stringify','send','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','undefined','offset','count','limit','apply','reject','save','then','destroy','end','sendStatus','stack','name','index','DeskAccount','rawAttributes','fieldName','type','key','map','filters','intersection','query','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','keys','find','create','body','update','getConfigurations','findOne','DeskConfiguration','AccountId','channel','Descriptions','getDescriptions','DeskField','Subjects','getFields','priority','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','remoteUri','slice','substring','lastIndexOf','GET','format','application/json','headers','Authorization'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x4a03,0xf7));var _0x34a0=function(_0x5d8f8d,_0x5da5bc){_0x5d8f8d=_0x5d8f8d-0x0;var _0x4ccc6b=_0x4a03[_0x5d8f8d];return _0x4ccc6b;};'use strict';var emlformat=require(_0x34a0('0x0'));var rimraf=require(_0x34a0('0x1'));var zipdir=require(_0x34a0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x34a0('0x3'));var moment=require(_0x34a0('0x4'));var BPromise=require(_0x34a0('0x5'));var Mustache=require(_0x34a0('0x6'));var util=require('util');var path=require(_0x34a0('0x7'));var sox=require(_0x34a0('0x8'));var csv=require(_0x34a0('0x9'));var ejs=require(_0x34a0('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x34a0('0xb'));var squel=require(_0x34a0('0xc'));var crypto=require(_0x34a0('0xd'));var jsforce=require(_0x34a0('0xe'));var deskjs=require(_0x34a0('0xf'));var toCsv=require(_0x34a0('0x9'));var querystring=require(_0x34a0('0x10'));var Papa=require(_0x34a0('0x11'));var Redis=require(_0x34a0('0x12'));var authService=require(_0x34a0('0x13'));var qs=require(_0x34a0('0x14'));var as=require(_0x34a0('0x15'));var hardwareService=require(_0x34a0('0x16'));var logger=require('../../config/logger')(_0x34a0('0x17'));var utils=require(_0x34a0('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x34a0('0x19'));var db=require(_0x34a0('0x1a'))['db'];var integrations=require(_0x34a0('0x1b'));function respondWithStatusCode(_0x37bcfa,_0x5b73bd){_0x5b73bd=_0x5b73bd||0xcc;return function(_0x30f4c4){if(_0x30f4c4){return _0x37bcfa['sendStatus'](_0x5b73bd);}return _0x37bcfa[_0x34a0('0x1c')](_0x5b73bd)['end']();};}function respondWithResult(_0x340749,_0x4974de){_0x4974de=_0x4974de||0xc8;return function(_0x2f65e9){if(_0x2f65e9){return _0x340749[_0x34a0('0x1c')](_0x4974de)[_0x34a0('0x1d')](_0x2f65e9);}};}function respondWithFilteredResult(_0x288af8,_0x40f642){return function(_0x2f3055){if(_0x2f3055){var _0x29aa8c=typeof _0x40f642['offset']===_0x34a0('0x1e')&&typeof _0x40f642['limit']==='undefined';var _0x595c6e=_0x2f3055['count'];var _0x3e3ed8=_0x29aa8c?0x0:_0x40f642[_0x34a0('0x1f')];var _0x949f8a=_0x29aa8c?_0x2f3055[_0x34a0('0x20')]:_0x40f642[_0x34a0('0x1f')]+_0x40f642[_0x34a0('0x21')];var _0x2000f9;if(_0x949f8a>=_0x595c6e){_0x949f8a=_0x595c6e;_0x2000f9=0xc8;}else{_0x2000f9=0xce;}_0x288af8['status'](_0x2000f9);return _0x288af8['set']('Content-Range',_0x3e3ed8+'-'+_0x949f8a+'/'+_0x595c6e)[_0x34a0('0x1d')](_0x2f3055);}return null;};}function patchUpdates(_0xd600fc){return function(_0x236bd1){try{jsonpatch[_0x34a0('0x22')](_0x236bd1,_0xd600fc,!![]);}catch(_0x5eea1a){return BPromise[_0x34a0('0x23')](_0x5eea1a);}return _0x236bd1[_0x34a0('0x24')]();};}function saveUpdates(_0x388233,_0x485656){return function(_0x2f04ee){if(_0x2f04ee){return _0x2f04ee['update'](_0x388233)[_0x34a0('0x25')](function(_0x1a0f29){return _0x1a0f29;});}return null;};}function removeEntity(_0x568cf1,_0x14bd9e){return function(_0x5e957e){if(_0x5e957e){return _0x5e957e[_0x34a0('0x26')]()['then'](function(){_0x568cf1[_0x34a0('0x1c')](0xcc)[_0x34a0('0x27')]();});}};}function handleEntityNotFound(_0x930e33,_0x2b360b){return function(_0x4998bc){if(!_0x4998bc){_0x930e33[_0x34a0('0x28')](0x194);}return _0x4998bc;};}function handleError(_0xa9c263,_0x4fc730){_0x4fc730=_0x4fc730||0x1f4;return function(_0x5daebf){logger['error'](_0x5daebf[_0x34a0('0x29')]);if(_0x5daebf[_0x34a0('0x2a')]){delete _0x5daebf[_0x34a0('0x2a')];}_0xa9c263[_0x34a0('0x1c')](_0x4fc730)['send'](_0x5daebf);};}exports[_0x34a0('0x2b')]=function(_0x176bbf,_0x11ac1a){var _0x36b98b={},_0x5d84de={},_0x1394c3={'count':0x0,'rows':[]};var _0x54c969=_['map'](db[_0x34a0('0x2c')][_0x34a0('0x2d')],function(_0x4de2bc){return{'name':_0x4de2bc[_0x34a0('0x2e')],'type':_0x4de2bc[_0x34a0('0x2f')][_0x34a0('0x30')]};});_0x5d84de['model']=_[_0x34a0('0x31')](_0x54c969,_0x34a0('0x2a'));_0x5d84de['query']=_['keys'](_0x176bbf['query']);_0x5d84de[_0x34a0('0x32')]=_[_0x34a0('0x33')](_0x5d84de['model'],_0x5d84de[_0x34a0('0x34')]);_0x36b98b[_0x34a0('0x35')]=_[_0x34a0('0x33')](_0x5d84de[_0x34a0('0x36')],qs[_0x34a0('0x37')](_0x176bbf[_0x34a0('0x34')][_0x34a0('0x37')]));_0x36b98b[_0x34a0('0x35')]=_0x36b98b['attributes'][_0x34a0('0x38')]?_0x36b98b[_0x34a0('0x35')]:_0x5d84de['model'];if(!_0x176bbf['query'][_0x34a0('0x39')](_0x34a0('0x3a'))){_0x36b98b[_0x34a0('0x21')]=qs[_0x34a0('0x21')](_0x176bbf[_0x34a0('0x34')]['limit']);_0x36b98b[_0x34a0('0x1f')]=qs['offset'](_0x176bbf[_0x34a0('0x34')][_0x34a0('0x1f')]);}_0x36b98b[_0x34a0('0x3b')]=qs[_0x34a0('0x3c')](_0x176bbf[_0x34a0('0x34')][_0x34a0('0x3c')]);_0x36b98b[_0x34a0('0x3d')]=qs[_0x34a0('0x32')](_[_0x34a0('0x3e')](_0x176bbf[_0x34a0('0x34')],_0x5d84de[_0x34a0('0x32')]),_0x54c969);if(_0x176bbf[_0x34a0('0x34')][_0x34a0('0x3f')]){_0x36b98b[_0x34a0('0x3d')]=_[_0x34a0('0x40')](_0x36b98b['where'],{'$or':_[_0x34a0('0x31')](_0x54c969,function(_0x13f1f5){if(_0x13f1f5[_0x34a0('0x2f')]!==_0x34a0('0x41')){var _0x4947c1={};_0x4947c1[_0x13f1f5[_0x34a0('0x2a')]]={'$like':'%'+_0x176bbf[_0x34a0('0x34')]['filter']+'%'};return _0x4947c1;}})});}_0x36b98b=_[_0x34a0('0x40')]({},_0x36b98b,_0x176bbf[_0x34a0('0x42')]);var _0x5bb9bd={'where':_0x36b98b[_0x34a0('0x3d')]};return db[_0x34a0('0x2c')][_0x34a0('0x20')](_0x5bb9bd)[_0x34a0('0x25')](function(_0x3ef71e){_0x1394c3[_0x34a0('0x20')]=_0x3ef71e;if(_0x176bbf['query'][_0x34a0('0x43')]){_0x36b98b[_0x34a0('0x44')]=[{'all':!![]}];}return db[_0x34a0('0x2c')][_0x34a0('0x45')](_0x36b98b);})[_0x34a0('0x25')](function(_0x2aea4d){_0x1394c3['rows']=_0x2aea4d;return _0x1394c3;})[_0x34a0('0x25')](respondWithFilteredResult(_0x11ac1a,_0x36b98b))[_0x34a0('0x46')](handleError(_0x11ac1a,null));};exports['show']=function(_0x3e7a49,_0xdf79db){var _0x3199f2={'raw':![],'where':{'id':_0x3e7a49[_0x34a0('0x47')]['id']}},_0x162d7d={};_0x162d7d['model']=_[_0x34a0('0x48')](db['DeskAccount'][_0x34a0('0x2d')]);_0x162d7d[_0x34a0('0x34')]=_[_0x34a0('0x48')](_0x3e7a49['query']);_0x162d7d[_0x34a0('0x32')]=_[_0x34a0('0x33')](_0x162d7d['model'],_0x162d7d['query']);_0x3199f2[_0x34a0('0x35')]=_[_0x34a0('0x33')](_0x162d7d['model'],qs[_0x34a0('0x37')](_0x3e7a49[_0x34a0('0x34')]['fields']));_0x3199f2[_0x34a0('0x35')]=_0x3199f2[_0x34a0('0x35')]['length']?_0x3199f2[_0x34a0('0x35')]:_0x162d7d[_0x34a0('0x36')];if(_0x3e7a49['query'][_0x34a0('0x43')]){_0x3199f2[_0x34a0('0x44')]=[{'all':!![]}];}_0x3199f2=_[_0x34a0('0x40')]({},_0x3199f2,_0x3e7a49[_0x34a0('0x42')]);return db[_0x34a0('0x2c')][_0x34a0('0x49')](_0x3199f2)['then'](handleEntityNotFound(_0xdf79db,null))['then'](respondWithResult(_0xdf79db,null))[_0x34a0('0x46')](handleError(_0xdf79db,null));};exports['create']=function(_0x1544e3,_0x5e261c){return db[_0x34a0('0x2c')][_0x34a0('0x4a')](_0x1544e3[_0x34a0('0x4b')],{})[_0x34a0('0x25')](respondWithResult(_0x5e261c,0xc9))['catch'](handleError(_0x5e261c,null));};exports[_0x34a0('0x4c')]=function(_0x3b4d4b,_0x2e7b62){if(_0x3b4d4b[_0x34a0('0x4b')]['id']){delete _0x3b4d4b['body']['id'];}return db[_0x34a0('0x2c')][_0x34a0('0x49')]({'where':{'id':_0x3b4d4b['params']['id']}})[_0x34a0('0x25')](handleEntityNotFound(_0x2e7b62,null))[_0x34a0('0x25')](saveUpdates(_0x3b4d4b[_0x34a0('0x4b')],null))['then'](respondWithResult(_0x2e7b62,null))['catch'](handleError(_0x2e7b62,null));};exports['destroy']=function(_0x3b4823,_0x53544f){return db['DeskAccount'][_0x34a0('0x49')]({'where':{'id':_0x3b4823[_0x34a0('0x47')]['id']}})['then'](handleEntityNotFound(_0x53544f,null))[_0x34a0('0x25')](removeEntity(_0x53544f,null))['catch'](handleError(_0x53544f,null));};exports[_0x34a0('0x4d')]=function(_0x48ac99,_0xc1ce82,_0x1efbb4){var _0x4fb636={};var _0x4f14ea={};var _0x940405;var _0x43a6bc;return db[_0x34a0('0x2c')][_0x34a0('0x4e')]({'where':{'id':_0x48ac99[_0x34a0('0x47')]['id']}})['then'](handleEntityNotFound(_0xc1ce82,null))[_0x34a0('0x25')](function(_0x167c64){if(_0x167c64){_0x940405=_0x167c64;_0x4f14ea[_0x34a0('0x36')]=_[_0x34a0('0x48')](db[_0x34a0('0x4f')]['rawAttributes']);_0x4f14ea[_0x34a0('0x34')]=_[_0x34a0('0x48')](_0x48ac99[_0x34a0('0x34')]);_0x4f14ea[_0x34a0('0x32')]=_[_0x34a0('0x33')](_0x4f14ea[_0x34a0('0x36')],_0x4f14ea[_0x34a0('0x34')]);_0x4fb636[_0x34a0('0x35')]=_[_0x34a0('0x33')](_0x4f14ea[_0x34a0('0x36')],qs[_0x34a0('0x37')](_0x48ac99[_0x34a0('0x34')][_0x34a0('0x37')]));_0x4fb636[_0x34a0('0x35')]=_0x4fb636[_0x34a0('0x35')]['length']?_0x4fb636[_0x34a0('0x35')]:_0x4f14ea['model'];_0x4fb636[_0x34a0('0x3b')]=qs['sort'](_0x48ac99[_0x34a0('0x34')][_0x34a0('0x3c')]);_0x4fb636[_0x34a0('0x3d')]=qs['filters'](_['pick'](_0x48ac99[_0x34a0('0x34')],_0x4f14ea[_0x34a0('0x32')]));if(_0x48ac99[_0x34a0('0x34')]['filter']){_0x4fb636[_0x34a0('0x3d')]=_['merge'](_0x4fb636[_0x34a0('0x3d')],{'$or':_[_0x34a0('0x31')](_0x4fb636[_0x34a0('0x35')],function(_0x19b9e8){var _0x4a89e7={};_0x4a89e7[_0x19b9e8]={'$like':'%'+_0x48ac99[_0x34a0('0x34')][_0x34a0('0x3f')]+'%'};return _0x4a89e7;})});}_0x4fb636=_['merge']({},_0x4fb636,_0x48ac99['options']);return _0x940405['getConfigurations'](_0x4fb636);}})[_0x34a0('0x25')](function(_0x25dd84){if(_0x25dd84){_0x43a6bc=_0x25dd84['length'];if(!_0x48ac99[_0x34a0('0x34')][_0x34a0('0x39')](_0x34a0('0x3a'))){_0x4fb636[_0x34a0('0x21')]=qs[_0x34a0('0x21')](_0x48ac99[_0x34a0('0x34')]['limit']);_0x4fb636[_0x34a0('0x1f')]=qs[_0x34a0('0x1f')](_0x48ac99[_0x34a0('0x34')][_0x34a0('0x1f')]);}return _0x940405[_0x34a0('0x4d')](_0x4fb636);}})[_0x34a0('0x25')](function(_0x13664a){if(_0x13664a){return _0x13664a?{'count':_0x43a6bc,'rows':_0x13664a}:null;}})[_0x34a0('0x25')](respondWithResult(_0xc1ce82,null))[_0x34a0('0x46')](handleError(_0xc1ce82,null));};exports['addConfiguration']=function(_0x387375,_0x3cfc20,_0x550706){if(_0x387375[_0x34a0('0x4b')]['id']){delete _0x387375[_0x34a0('0x4b')]['id'];}return db[_0x34a0('0x2c')][_0x34a0('0x4e')]({'where':{'id':_0x387375[_0x34a0('0x47')]['id']}})[_0x34a0('0x25')](handleEntityNotFound(_0x3cfc20,null))[_0x34a0('0x25')](function(_0x2921d6){if(_0x2921d6){_0x387375[_0x34a0('0x4b')][_0x34a0('0x50')]=_0x2921d6['id'];_0x387375[_0x34a0('0x4b')]['Subjects']=integrations['getSubjects'](_0x387375[_0x34a0('0x4b')][_0x34a0('0x51')],_0x387375[_0x34a0('0x4b')][_0x34a0('0x2f')]);_0x387375['body'][_0x34a0('0x52')]=integrations[_0x34a0('0x53')](_0x387375['body'][_0x34a0('0x51')],_0x387375[_0x34a0('0x4b')][_0x34a0('0x2f')]);return db[_0x34a0('0x4f')][_0x34a0('0x4a')](_0x387375[_0x34a0('0x4b')],{'include':[{'model':db[_0x34a0('0x54')],'as':_0x34a0('0x55')},{'model':db[_0x34a0('0x54')],'as':_0x34a0('0x52')}]});}return null;})[_0x34a0('0x25')](respondWithResult(_0x3cfc20,null))[_0x34a0('0x46')](handleError(_0x3cfc20,null));};exports[_0x34a0('0x56')]=function(_0x1a6306,_0x517afb,_0x23284d){var _0x5b1b9f=[{'name':_0x34a0('0x57'),'label':_0x34a0('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 _0x111f34='';return db[_0x34a0('0x2c')][_0x34a0('0x4e')]({'where':{'id':_0x1a6306[_0x34a0('0x47')]['id']},'attributes':['id','remoteUri',_0x34a0('0x58'),_0x34a0('0x59'),_0x34a0('0x5a'),_0x34a0('0x5b'),_0x34a0('0x5c'),_0x34a0('0x5d'),_0x34a0('0x5e')]})['then'](handleEntityNotFound(_0x517afb,null))['then'](function(_0x2c122c){if(_0x2c122c){_0x111f34=_0x2c122c[_0x34a0('0x5f')];var _0x53b19f=_0x111f34[_0x34a0('0x60')](-0x1);if(_0x53b19f==='/'){_0x111f34=_0x111f34[_0x34a0('0x61')](0x0,_0x111f34[_0x34a0('0x62')](_0x53b19f));}var _0x8d949={'method':_0x34a0('0x63'),'uri':util[_0x34a0('0x64')]('%s/custom_fields',_0x111f34),'headers':{'Content-Type':_0x34a0('0x65'),'Accept':_0x34a0('0x65')},'json':!![]};if(_0x2c122c[_0x34a0('0x58')]==='basic'){_0x8d949[_0x34a0('0x66')][_0x34a0('0x67')]=util['format'](_0x34a0('0x68'),new Buffer(util[_0x34a0('0x64')](_0x34a0('0x69'),_0x2c122c[_0x34a0('0x59')],_0x2c122c['password']))[_0x34a0('0x6a')]('base64'));}return rp(_0x8d949)[_0x34a0('0x25')](function(_0xc4c58a){return _0x5b1b9f[_0x34a0('0x6b')](_['map'](_0xc4c58a[_0x34a0('0x6c')][_0x34a0('0x6d')],function(_0x2659a8){return{'id':_0x2659a8['name'],'name':_0x2659a8[_0x34a0('0x2a')],'type':_0x2659a8[_0x34a0('0x2f')],'active':_0x2659a8['active'],'label':_0x2659a8[_0x34a0('0x6e')],'custom':!![]};}));});}})['then'](function(_0x95c886){return{'count':_0x95c886['length'],'rows':_0x95c886};})[_0x34a0('0x25')](respondWithResult(_0x517afb,null))[_0x34a0('0x46')](function(_0x895589){var _0x5f185b=_0x1a6306[_0x34a0('0x34')][_0x34a0('0x6f')]?0x1f4:_0x895589['statusCode']||0x1f4;logger['error'](_0x34a0('0x70'),'getFields',_0x5f185b,JSON[_0x34a0('0x71')](_0x895589));delete _0x895589['name'];if(_0x5f185b===0x191){_0x5f185b=0x190;}_0x517afb[_0x34a0('0x1c')](_0x5f185b)[_0x34a0('0x72')](_0x1a6306[_0x34a0('0x34')]['test']?{'message':_0x34a0('0x73'),'statusCode':_0x895589[_0x34a0('0x74')]}:_0x895589);});};