71ed476244419fcd90a126d0b6aed2e943730d71
[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 _0x8768=['index','DeskAccount','fieldName','type','key','model','map','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','update','destroy','getConfigurations','findOne','DeskConfiguration','order','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','remoteUri','authType','username','consumerKey','consumerSecret','token','slice','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','basic','Authorization','%s:%s','password','toString','base64','concat','_embedded','active','label','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','statusCode','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','json','undefined','count','offset','limit','Content-Range','apply','reject','then','stack','name'];(function(_0x3e2489,_0x41d9dd){var _0x2254ce=function(_0x227e46){while(--_0x227e46){_0x3e2489['push'](_0x3e2489['shift']());}};_0x2254ce(++_0x41d9dd);}(_0x8768,0x1b2));var _0x8876=function(_0x453f10,_0x3d497b){_0x453f10=_0x453f10-0x0;var _0x38ef3b=_0x8768[_0x453f10];return _0x38ef3b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8876('0x0'));var zipdir=require(_0x8876('0x1'));var jsonpatch=require(_0x8876('0x2'));var rp=require(_0x8876('0x3'));var moment=require(_0x8876('0x4'));var BPromise=require(_0x8876('0x5'));var Mustache=require('mustache');var util=require(_0x8876('0x6'));var path=require(_0x8876('0x7'));var sox=require(_0x8876('0x8'));var csv=require(_0x8876('0x9'));var ejs=require(_0x8876('0xa'));var fs=require('fs');var fs_extra=require(_0x8876('0xb'));var _=require(_0x8876('0xc'));var squel=require(_0x8876('0xd'));var crypto=require(_0x8876('0xe'));var jsforce=require(_0x8876('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x8876('0x9'));var querystring=require(_0x8876('0x10'));var Papa=require(_0x8876('0x11'));var Redis=require(_0x8876('0x12'));var authService=require(_0x8876('0x13'));var qs=require(_0x8876('0x14'));var as=require(_0x8876('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8876('0x16'))(_0x8876('0x17'));var utils=require(_0x8876('0x18'));var config=require(_0x8876('0x19'));var licenseUtil=require(_0x8876('0x1a'));var db=require('../../mysqldb')['db'];var integrations=require(_0x8876('0x1b'));function respondWithStatusCode(_0x3fbc06,_0x2417bf){_0x2417bf=_0x2417bf||0xcc;return function(_0x278b0e){if(_0x278b0e){return _0x3fbc06[_0x8876('0x1c')](_0x2417bf);}return _0x3fbc06['status'](_0x2417bf)[_0x8876('0x1d')]();};}function respondWithResult(_0x21f75c,_0x34f367){_0x34f367=_0x34f367||0xc8;return function(_0x34a8c9){if(_0x34a8c9){return _0x21f75c[_0x8876('0x1e')](_0x34f367)[_0x8876('0x1f')](_0x34a8c9);}};}function respondWithFilteredResult(_0x247ec0,_0x1e0d0f){return function(_0x39c4a1){if(_0x39c4a1){var _0x299245=typeof _0x1e0d0f['offset']===_0x8876('0x20')&&typeof _0x1e0d0f['limit']===_0x8876('0x20');var _0x4b57fb=_0x39c4a1[_0x8876('0x21')];var _0x8dc92=_0x299245?0x0:_0x1e0d0f[_0x8876('0x22')];var _0x4fb970=_0x299245?_0x39c4a1[_0x8876('0x21')]:_0x1e0d0f['offset']+_0x1e0d0f[_0x8876('0x23')];var _0x468f7b;if(_0x4fb970>=_0x4b57fb){_0x4fb970=_0x4b57fb;_0x468f7b=0xc8;}else{_0x468f7b=0xce;}_0x247ec0[_0x8876('0x1e')](_0x468f7b);return _0x247ec0['set'](_0x8876('0x24'),_0x8dc92+'-'+_0x4fb970+'/'+_0x4b57fb)[_0x8876('0x1f')](_0x39c4a1);}return null;};}function patchUpdates(_0x4919a0){return function(_0x32af7b){try{jsonpatch[_0x8876('0x25')](_0x32af7b,_0x4919a0,!![]);}catch(_0x40a4e5){return BPromise[_0x8876('0x26')](_0x40a4e5);}return _0x32af7b['save']();};}function saveUpdates(_0x40fdec,_0x37e1d4){return function(_0x30782e){if(_0x30782e){return _0x30782e['update'](_0x40fdec)[_0x8876('0x27')](function(_0x65236e){return _0x65236e;});}return null;};}function removeEntity(_0x1e2629,_0x415dd0){return function(_0x377e8e){if(_0x377e8e){return _0x377e8e['destroy']()[_0x8876('0x27')](function(){_0x1e2629[_0x8876('0x1e')](0xcc)[_0x8876('0x1d')]();});}};}function handleEntityNotFound(_0x45c155,_0x2b24be){return function(_0x56353e){if(!_0x56353e){_0x45c155[_0x8876('0x1c')](0x194);}return _0x56353e;};}function handleError(_0x3e1963,_0x3eeccc){_0x3eeccc=_0x3eeccc||0x1f4;return function(_0x1efd50){logger['error'](_0x1efd50[_0x8876('0x28')]);if(_0x1efd50['name']){delete _0x1efd50[_0x8876('0x29')];}_0x3e1963[_0x8876('0x1e')](_0x3eeccc)['send'](_0x1efd50);};}exports[_0x8876('0x2a')]=function(_0x47b50a,_0x4e4202){var _0x349cad={},_0x2c208e={},_0x4f4d91={'count':0x0,'rows':[]};var _0x2b3dc2=_['map'](db[_0x8876('0x2b')]['rawAttributes'],function(_0x5b0dc7){return{'name':_0x5b0dc7[_0x8876('0x2c')],'type':_0x5b0dc7[_0x8876('0x2d')][_0x8876('0x2e')]};});_0x2c208e[_0x8876('0x2f')]=_[_0x8876('0x30')](_0x2b3dc2,'name');_0x2c208e['query']=_[_0x8876('0x31')](_0x47b50a[_0x8876('0x32')]);_0x2c208e[_0x8876('0x33')]=_['intersection'](_0x2c208e['model'],_0x2c208e[_0x8876('0x32')]);_0x349cad[_0x8876('0x34')]=_[_0x8876('0x35')](_0x2c208e[_0x8876('0x2f')],qs[_0x8876('0x36')](_0x47b50a[_0x8876('0x32')][_0x8876('0x36')]));_0x349cad[_0x8876('0x34')]=_0x349cad['attributes'][_0x8876('0x37')]?_0x349cad[_0x8876('0x34')]:_0x2c208e[_0x8876('0x2f')];if(!_0x47b50a[_0x8876('0x32')][_0x8876('0x38')](_0x8876('0x39'))){_0x349cad[_0x8876('0x23')]=qs[_0x8876('0x23')](_0x47b50a[_0x8876('0x32')][_0x8876('0x23')]);_0x349cad['offset']=qs[_0x8876('0x22')](_0x47b50a[_0x8876('0x32')][_0x8876('0x22')]);}_0x349cad['order']=qs['sort'](_0x47b50a[_0x8876('0x32')][_0x8876('0x3a')]);_0x349cad[_0x8876('0x3b')]=qs[_0x8876('0x33')](_[_0x8876('0x3c')](_0x47b50a['query'],_0x2c208e[_0x8876('0x33')]),_0x2b3dc2);if(_0x47b50a[_0x8876('0x32')][_0x8876('0x3d')]){_0x349cad[_0x8876('0x3b')]=_[_0x8876('0x3e')](_0x349cad[_0x8876('0x3b')],{'$or':_['map'](_0x2b3dc2,function(_0x586778){if(_0x586778[_0x8876('0x2d')]!==_0x8876('0x3f')){var _0x29bad6={};_0x29bad6[_0x586778['name']]={'$like':'%'+_0x47b50a['query'][_0x8876('0x3d')]+'%'};return _0x29bad6;}})});}_0x349cad=_[_0x8876('0x3e')]({},_0x349cad,_0x47b50a[_0x8876('0x40')]);var _0x3736ec={'where':_0x349cad[_0x8876('0x3b')]};return db[_0x8876('0x2b')][_0x8876('0x21')](_0x3736ec)[_0x8876('0x27')](function(_0x261c9b){_0x4f4d91['count']=_0x261c9b;if(_0x47b50a[_0x8876('0x32')]['includeAll']){_0x349cad[_0x8876('0x41')]=[{'all':!![]}];}return db['DeskAccount'][_0x8876('0x42')](_0x349cad);})[_0x8876('0x27')](function(_0x10171a){_0x4f4d91[_0x8876('0x43')]=_0x10171a;return _0x4f4d91;})[_0x8876('0x27')](respondWithFilteredResult(_0x4e4202,_0x349cad))[_0x8876('0x44')](handleError(_0x4e4202,null));};exports[_0x8876('0x45')]=function(_0x406b99,_0x539c28){var _0x47bc74={'raw':![],'where':{'id':_0x406b99[_0x8876('0x46')]['id']}},_0x130a8e={};_0x130a8e[_0x8876('0x2f')]=_[_0x8876('0x31')](db[_0x8876('0x2b')][_0x8876('0x47')]);_0x130a8e['query']=_['keys'](_0x406b99[_0x8876('0x32')]);_0x130a8e[_0x8876('0x33')]=_[_0x8876('0x35')](_0x130a8e[_0x8876('0x2f')],_0x130a8e['query']);_0x47bc74[_0x8876('0x34')]=_[_0x8876('0x35')](_0x130a8e['model'],qs[_0x8876('0x36')](_0x406b99['query'][_0x8876('0x36')]));_0x47bc74[_0x8876('0x34')]=_0x47bc74[_0x8876('0x34')]['length']?_0x47bc74['attributes']:_0x130a8e[_0x8876('0x2f')];if(_0x406b99[_0x8876('0x32')]['includeAll']){_0x47bc74[_0x8876('0x41')]=[{'all':!![]}];}_0x47bc74=_['merge']({},_0x47bc74,_0x406b99[_0x8876('0x40')]);return db[_0x8876('0x2b')][_0x8876('0x48')](_0x47bc74)['then'](handleEntityNotFound(_0x539c28,null))[_0x8876('0x27')](respondWithResult(_0x539c28,null))['catch'](handleError(_0x539c28,null));};exports[_0x8876('0x49')]=function(_0x290217,_0x2cdfe8){return db[_0x8876('0x2b')][_0x8876('0x49')](_0x290217[_0x8876('0x4a')],{})[_0x8876('0x27')](respondWithResult(_0x2cdfe8,0xc9))[_0x8876('0x44')](handleError(_0x2cdfe8,null));};exports[_0x8876('0x4b')]=function(_0x41fb2d,_0x577e04){if(_0x41fb2d[_0x8876('0x4a')]['id']){delete _0x41fb2d[_0x8876('0x4a')]['id'];}return db[_0x8876('0x2b')][_0x8876('0x48')]({'where':{'id':_0x41fb2d[_0x8876('0x46')]['id']}})['then'](handleEntityNotFound(_0x577e04,null))[_0x8876('0x27')](saveUpdates(_0x41fb2d['body'],null))['then'](respondWithResult(_0x577e04,null))['catch'](handleError(_0x577e04,null));};exports[_0x8876('0x4c')]=function(_0x180830,_0x390e17){return db[_0x8876('0x2b')][_0x8876('0x48')]({'where':{'id':_0x180830[_0x8876('0x46')]['id']}})[_0x8876('0x27')](handleEntityNotFound(_0x390e17,null))[_0x8876('0x27')](removeEntity(_0x390e17,null))[_0x8876('0x44')](handleError(_0x390e17,null));};exports[_0x8876('0x4d')]=function(_0x10cb5f,_0x5f0520,_0xdde07c){var _0x2e7497={};var _0x52abfd={};var _0x56f545;var _0x500517;return db['DeskAccount'][_0x8876('0x4e')]({'where':{'id':_0x10cb5f[_0x8876('0x46')]['id']}})[_0x8876('0x27')](handleEntityNotFound(_0x5f0520,null))['then'](function(_0x364a5d){if(_0x364a5d){_0x56f545=_0x364a5d;_0x52abfd['model']=_[_0x8876('0x31')](db[_0x8876('0x4f')][_0x8876('0x47')]);_0x52abfd['query']=_[_0x8876('0x31')](_0x10cb5f[_0x8876('0x32')]);_0x52abfd[_0x8876('0x33')]=_[_0x8876('0x35')](_0x52abfd[_0x8876('0x2f')],_0x52abfd[_0x8876('0x32')]);_0x2e7497[_0x8876('0x34')]=_[_0x8876('0x35')](_0x52abfd['model'],qs[_0x8876('0x36')](_0x10cb5f[_0x8876('0x32')]['fields']));_0x2e7497[_0x8876('0x34')]=_0x2e7497[_0x8876('0x34')][_0x8876('0x37')]?_0x2e7497[_0x8876('0x34')]:_0x52abfd[_0x8876('0x2f')];_0x2e7497[_0x8876('0x50')]=qs['sort'](_0x10cb5f[_0x8876('0x32')][_0x8876('0x3a')]);_0x2e7497[_0x8876('0x3b')]=qs['filters'](_['pick'](_0x10cb5f[_0x8876('0x32')],_0x52abfd[_0x8876('0x33')]));if(_0x10cb5f['query'][_0x8876('0x3d')]){_0x2e7497[_0x8876('0x3b')]=_[_0x8876('0x3e')](_0x2e7497[_0x8876('0x3b')],{'$or':_[_0x8876('0x30')](_0x2e7497[_0x8876('0x34')],function(_0x41c70b){var _0x416a75={};_0x416a75[_0x41c70b]={'$like':'%'+_0x10cb5f[_0x8876('0x32')][_0x8876('0x3d')]+'%'};return _0x416a75;})});}_0x2e7497=_[_0x8876('0x3e')]({},_0x2e7497,_0x10cb5f[_0x8876('0x40')]);return _0x56f545[_0x8876('0x4d')](_0x2e7497);}})['then'](function(_0x30936c){if(_0x30936c){_0x500517=_0x30936c['length'];if(!_0x10cb5f[_0x8876('0x32')][_0x8876('0x38')]('nolimit')){_0x2e7497[_0x8876('0x23')]=qs[_0x8876('0x23')](_0x10cb5f[_0x8876('0x32')][_0x8876('0x23')]);_0x2e7497[_0x8876('0x22')]=qs[_0x8876('0x22')](_0x10cb5f['query']['offset']);}return _0x56f545[_0x8876('0x4d')](_0x2e7497);}})[_0x8876('0x27')](function(_0x159e00){if(_0x159e00){return _0x159e00?{'count':_0x500517,'rows':_0x159e00}:null;}})[_0x8876('0x27')](respondWithResult(_0x5f0520,null))[_0x8876('0x44')](handleError(_0x5f0520,null));};exports[_0x8876('0x51')]=function(_0x50a2e5,_0x584e9b,_0x5865df){if(_0x50a2e5[_0x8876('0x4a')]['id']){delete _0x50a2e5[_0x8876('0x4a')]['id'];}return db[_0x8876('0x2b')][_0x8876('0x4e')]({'where':{'id':_0x50a2e5[_0x8876('0x46')]['id']}})[_0x8876('0x27')](handleEntityNotFound(_0x584e9b,null))[_0x8876('0x27')](function(_0x551035){if(_0x551035){_0x50a2e5[_0x8876('0x4a')][_0x8876('0x52')]=_0x551035['id'];_0x50a2e5[_0x8876('0x4a')][_0x8876('0x53')]=integrations[_0x8876('0x54')](_0x50a2e5[_0x8876('0x4a')][_0x8876('0x55')],_0x50a2e5['body'][_0x8876('0x2d')]);_0x50a2e5[_0x8876('0x4a')][_0x8876('0x56')]=integrations[_0x8876('0x57')](_0x50a2e5[_0x8876('0x4a')]['channel'],_0x50a2e5[_0x8876('0x4a')][_0x8876('0x2d')]);return db[_0x8876('0x4f')][_0x8876('0x49')](_0x50a2e5[_0x8876('0x4a')],{'include':[{'model':db[_0x8876('0x58')],'as':'Subjects'},{'model':db[_0x8876('0x58')],'as':_0x8876('0x56')}]});}return null;})[_0x8876('0x27')](respondWithResult(_0x584e9b,null))[_0x8876('0x44')](handleError(_0x584e9b,null));};exports[_0x8876('0x59')]=function(_0x1cde7f,_0x1a7622,_0x2b6a3a){var _0x13b04b=[{'name':_0x8876('0x5a'),'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 _0x18eab0='';return db[_0x8876('0x2b')]['findOne']({'where':{'id':_0x1cde7f['params']['id']},'attributes':['id',_0x8876('0x5b'),_0x8876('0x5c'),_0x8876('0x5d'),'password',_0x8876('0x5e'),_0x8876('0x5f'),_0x8876('0x60'),'tokenSecret']})[_0x8876('0x27')](handleEntityNotFound(_0x1a7622,null))['then'](function(_0x4b8660){if(_0x4b8660){_0x18eab0=_0x4b8660['remoteUri'];var _0x4359a8=_0x18eab0[_0x8876('0x61')](-0x1);if(_0x4359a8==='/'){_0x18eab0=_0x18eab0[_0x8876('0x62')](0x0,_0x18eab0[_0x8876('0x63')](_0x4359a8));}var _0x4362aa={'method':_0x8876('0x64'),'uri':util[_0x8876('0x65')](_0x8876('0x66'),_0x18eab0),'headers':{'Content-Type':_0x8876('0x67'),'Accept':'application/json'},'json':!![]};if(_0x4b8660[_0x8876('0x5c')]===_0x8876('0x68')){_0x4362aa['headers'][_0x8876('0x69')]=util[_0x8876('0x65')]('Basic\x20%s',new Buffer(util[_0x8876('0x65')](_0x8876('0x6a'),_0x4b8660[_0x8876('0x5d')],_0x4b8660[_0x8876('0x6b')]))[_0x8876('0x6c')](_0x8876('0x6d')));}return rp(_0x4362aa)[_0x8876('0x27')](function(_0x2ff033){return _0x13b04b[_0x8876('0x6e')](_[_0x8876('0x30')](_0x2ff033[_0x8876('0x6f')]['entries'],function(_0xe4c2b6){return{'id':_0xe4c2b6[_0x8876('0x29')],'name':_0xe4c2b6[_0x8876('0x29')],'type':_0xe4c2b6[_0x8876('0x2d')],'active':_0xe4c2b6[_0x8876('0x70')],'label':_0xe4c2b6[_0x8876('0x71')],'custom':!![]};}));});}})[_0x8876('0x27')](function(_0x11660e){return{'count':_0x11660e[_0x8876('0x37')],'rows':_0x11660e};})[_0x8876('0x27')](respondWithResult(_0x1a7622,null))[_0x8876('0x44')](function(_0x472c86){var _0x34ad10=_0x1cde7f[_0x8876('0x32')][_0x8876('0x72')]?0x1f4:_0x472c86['statusCode']||0x1f4;logger['error'](_0x8876('0x73'),_0x8876('0x59'),_0x34ad10,JSON[_0x8876('0x74')](_0x472c86));delete _0x472c86['name'];if(_0x34ad10===0x191){_0x34ad10=0x190;}_0x1a7622[_0x8876('0x1e')](_0x34ad10)['send'](_0x1cde7f['query']['test']?{'message':_0x8876('0x75'),'statusCode':_0x472c86[_0x8876('0x76')]}:_0x472c86);});};