ed149325d19f97bffc321ada86fb3266e6d37b3f
[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 _0x3a51=['password','consumerKey','consumerSecret','token','slice','substring','GET','application/json','basic','headers','Authorization','format','Basic\x20%s','%s:%s','toString','base64','concat','_embedded','active','label','test','statusCode','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','undefined','limit','count','Content-Range','update','error','stack','name','send','rawAttributes','fieldName','type','model','map','query','filters','attributes','intersection','fields','length','nolimit','offset','order','sort','where','pick','filter','merge','VIRTUAL','options','then','includeAll','include','DeskAccount','rows','show','params','keys','find','create','catch','body','getConfigurations','findOne','DeskConfiguration','hasOwnProperty','Subjects','Descriptions','channel','DeskField','getFields','remoteUri'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x3a51,0x1bf));var _0x13a5=function(_0x41cae4,_0x460963){_0x41cae4=_0x41cae4-0x0;var _0x95f578=_0x3a51[_0x41cae4];return _0x95f578;};'use strict';var emlformat=require(_0x13a5('0x0'));var rimraf=require(_0x13a5('0x1'));var zipdir=require(_0x13a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x13a5('0x3'));var moment=require(_0x13a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x13a5('0x5'));var util=require(_0x13a5('0x6'));var path=require(_0x13a5('0x7'));var sox=require(_0x13a5('0x8'));var csv=require(_0x13a5('0x9'));var ejs=require(_0x13a5('0xa'));var fs=require('fs');var fs_extra=require(_0x13a5('0xb'));var _=require(_0x13a5('0xc'));var squel=require(_0x13a5('0xd'));var crypto=require(_0x13a5('0xe'));var jsforce=require(_0x13a5('0xf'));var deskjs=require(_0x13a5('0x10'));var toCsv=require(_0x13a5('0x9'));var querystring=require('querystring');var Papa=require(_0x13a5('0x11'));var Redis=require(_0x13a5('0x12'));var authService=require(_0x13a5('0x13'));var qs=require(_0x13a5('0x14'));var as=require(_0x13a5('0x15'));var hardwareService=require(_0x13a5('0x16'));var logger=require(_0x13a5('0x17'))(_0x13a5('0x18'));var utils=require(_0x13a5('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x13a5('0x1a'));var db=require('../../mysqldb')['db'];var integrations=require(_0x13a5('0x1b'));function respondWithStatusCode(_0x5011d7,_0x1d099d){_0x1d099d=_0x1d099d||0xcc;return function(_0x575622){if(_0x575622){return _0x5011d7[_0x13a5('0x1c')](_0x1d099d);}return _0x5011d7[_0x13a5('0x1d')](_0x1d099d)[_0x13a5('0x1e')]();};}function respondWithResult(_0x251e62,_0x3e3e5f){_0x3e3e5f=_0x3e3e5f||0xc8;return function(_0x101b4c){if(_0x101b4c){return _0x251e62[_0x13a5('0x1d')](_0x3e3e5f)['json'](_0x101b4c);}};}function respondWithFilteredResult(_0x5e90db,_0x6cd3f7){return function(_0x5ed49b){if(_0x5ed49b){var _0x2d1cb0=typeof _0x6cd3f7['offset']===_0x13a5('0x1f')&&typeof _0x6cd3f7[_0x13a5('0x20')]===_0x13a5('0x1f');var _0x5e1131=_0x5ed49b[_0x13a5('0x21')];var _0x47d4f6=_0x2d1cb0?0x0:_0x6cd3f7['offset'];var _0x23640b=_0x2d1cb0?_0x5ed49b[_0x13a5('0x21')]:_0x6cd3f7['offset']+_0x6cd3f7[_0x13a5('0x20')];var _0x293361;if(_0x23640b>=_0x5e1131){_0x23640b=_0x5e1131;_0x293361=0xc8;}else{_0x293361=0xce;}_0x5e90db[_0x13a5('0x1d')](_0x293361);return _0x5e90db['set'](_0x13a5('0x22'),_0x47d4f6+'-'+_0x23640b+'/'+_0x5e1131)['json'](_0x5ed49b);}return null;};}function patchUpdates(_0xe6a7f4){return function(_0x4287d9){try{jsonpatch['apply'](_0x4287d9,_0xe6a7f4,!![]);}catch(_0x2f3a26){return BPromise['reject'](_0x2f3a26);}return _0x4287d9['save']();};}function saveUpdates(_0x106f08,_0x3dc85b){return function(_0x106044){if(_0x106044){return _0x106044[_0x13a5('0x23')](_0x106f08)['then'](function(_0x1b8a8f){return _0x1b8a8f;});}return null;};}function removeEntity(_0x51c386,_0x22f21b){return function(_0x1a977b){if(_0x1a977b){return _0x1a977b['destroy']()['then'](function(){_0x51c386[_0x13a5('0x1d')](0xcc)[_0x13a5('0x1e')]();});}};}function handleEntityNotFound(_0x5dc7e4,_0x47f7ee){return function(_0x2ccbf3){if(!_0x2ccbf3){_0x5dc7e4[_0x13a5('0x1c')](0x194);}return _0x2ccbf3;};}function handleError(_0x188f69,_0x2a5c2a){_0x2a5c2a=_0x2a5c2a||0x1f4;return function(_0x36c943){logger[_0x13a5('0x24')](_0x36c943[_0x13a5('0x25')]);if(_0x36c943[_0x13a5('0x26')]){delete _0x36c943[_0x13a5('0x26')];}_0x188f69[_0x13a5('0x1d')](_0x2a5c2a)[_0x13a5('0x27')](_0x36c943);};}exports['index']=function(_0x4f8a68,_0x1581ec){var _0x160212={},_0x3f0d5d={},_0x2823ea={'count':0x0,'rows':[]};var _0x1d81f9=_['map'](db['DeskAccount'][_0x13a5('0x28')],function(_0x2f57ca){return{'name':_0x2f57ca[_0x13a5('0x29')],'type':_0x2f57ca[_0x13a5('0x2a')]['key']};});_0x3f0d5d[_0x13a5('0x2b')]=_[_0x13a5('0x2c')](_0x1d81f9,_0x13a5('0x26'));_0x3f0d5d[_0x13a5('0x2d')]=_['keys'](_0x4f8a68[_0x13a5('0x2d')]);_0x3f0d5d[_0x13a5('0x2e')]=_['intersection'](_0x3f0d5d['model'],_0x3f0d5d[_0x13a5('0x2d')]);_0x160212[_0x13a5('0x2f')]=_[_0x13a5('0x30')](_0x3f0d5d[_0x13a5('0x2b')],qs[_0x13a5('0x31')](_0x4f8a68[_0x13a5('0x2d')][_0x13a5('0x31')]));_0x160212[_0x13a5('0x2f')]=_0x160212[_0x13a5('0x2f')][_0x13a5('0x32')]?_0x160212[_0x13a5('0x2f')]:_0x3f0d5d['model'];if(!_0x4f8a68[_0x13a5('0x2d')]['hasOwnProperty'](_0x13a5('0x33'))){_0x160212[_0x13a5('0x20')]=qs['limit'](_0x4f8a68[_0x13a5('0x2d')][_0x13a5('0x20')]);_0x160212[_0x13a5('0x34')]=qs['offset'](_0x4f8a68['query']['offset']);}_0x160212[_0x13a5('0x35')]=qs[_0x13a5('0x36')](_0x4f8a68[_0x13a5('0x2d')][_0x13a5('0x36')]);_0x160212[_0x13a5('0x37')]=qs[_0x13a5('0x2e')](_[_0x13a5('0x38')](_0x4f8a68[_0x13a5('0x2d')],_0x3f0d5d[_0x13a5('0x2e')]),_0x1d81f9);if(_0x4f8a68[_0x13a5('0x2d')][_0x13a5('0x39')]){_0x160212['where']=_[_0x13a5('0x3a')](_0x160212[_0x13a5('0x37')],{'$or':_[_0x13a5('0x2c')](_0x1d81f9,function(_0x4bdb96){if(_0x4bdb96['type']!==_0x13a5('0x3b')){var _0x499841={};_0x499841[_0x4bdb96[_0x13a5('0x26')]]={'$like':'%'+_0x4f8a68[_0x13a5('0x2d')][_0x13a5('0x39')]+'%'};return _0x499841;}})});}_0x160212=_[_0x13a5('0x3a')]({},_0x160212,_0x4f8a68[_0x13a5('0x3c')]);var _0x2dc63f={'where':_0x160212['where']};return db['DeskAccount'][_0x13a5('0x21')](_0x2dc63f)[_0x13a5('0x3d')](function(_0x1806ee){_0x2823ea[_0x13a5('0x21')]=_0x1806ee;if(_0x4f8a68['query'][_0x13a5('0x3e')]){_0x160212[_0x13a5('0x3f')]=[{'all':!![]}];}return db[_0x13a5('0x40')]['findAll'](_0x160212);})['then'](function(_0x33806f){_0x2823ea[_0x13a5('0x41')]=_0x33806f;return _0x2823ea;})['then'](respondWithFilteredResult(_0x1581ec,_0x160212))['catch'](handleError(_0x1581ec,null));};exports[_0x13a5('0x42')]=function(_0x1c1f04,_0x2f3227){var _0x1ad795={'raw':![],'where':{'id':_0x1c1f04[_0x13a5('0x43')]['id']}},_0x4fb42d={};_0x4fb42d['model']=_[_0x13a5('0x44')](db[_0x13a5('0x40')]['rawAttributes']);_0x4fb42d['query']=_['keys'](_0x1c1f04[_0x13a5('0x2d')]);_0x4fb42d[_0x13a5('0x2e')]=_[_0x13a5('0x30')](_0x4fb42d['model'],_0x4fb42d[_0x13a5('0x2d')]);_0x1ad795[_0x13a5('0x2f')]=_[_0x13a5('0x30')](_0x4fb42d[_0x13a5('0x2b')],qs['fields'](_0x1c1f04[_0x13a5('0x2d')][_0x13a5('0x31')]));_0x1ad795[_0x13a5('0x2f')]=_0x1ad795[_0x13a5('0x2f')][_0x13a5('0x32')]?_0x1ad795[_0x13a5('0x2f')]:_0x4fb42d[_0x13a5('0x2b')];if(_0x1c1f04['query'][_0x13a5('0x3e')]){_0x1ad795[_0x13a5('0x3f')]=[{'all':!![]}];}_0x1ad795=_['merge']({},_0x1ad795,_0x1c1f04[_0x13a5('0x3c')]);return db[_0x13a5('0x40')][_0x13a5('0x45')](_0x1ad795)[_0x13a5('0x3d')](handleEntityNotFound(_0x2f3227,null))[_0x13a5('0x3d')](respondWithResult(_0x2f3227,null))['catch'](handleError(_0x2f3227,null));};exports[_0x13a5('0x46')]=function(_0x401673,_0x3b40d9){return db['DeskAccount'][_0x13a5('0x46')](_0x401673['body'],{})['then'](respondWithResult(_0x3b40d9,0xc9))[_0x13a5('0x47')](handleError(_0x3b40d9,null));};exports[_0x13a5('0x23')]=function(_0x23a1b7,_0x66449d){if(_0x23a1b7[_0x13a5('0x48')]['id']){delete _0x23a1b7[_0x13a5('0x48')]['id'];}return db[_0x13a5('0x40')][_0x13a5('0x45')]({'where':{'id':_0x23a1b7['params']['id']}})['then'](handleEntityNotFound(_0x66449d,null))[_0x13a5('0x3d')](saveUpdates(_0x23a1b7[_0x13a5('0x48')],null))['then'](respondWithResult(_0x66449d,null))['catch'](handleError(_0x66449d,null));};exports['destroy']=function(_0x8effe,_0x2ced5a){return db[_0x13a5('0x40')][_0x13a5('0x45')]({'where':{'id':_0x8effe[_0x13a5('0x43')]['id']}})[_0x13a5('0x3d')](handleEntityNotFound(_0x2ced5a,null))[_0x13a5('0x3d')](removeEntity(_0x2ced5a,null))[_0x13a5('0x47')](handleError(_0x2ced5a,null));};exports[_0x13a5('0x49')]=function(_0x45db3d,_0x2fb938,_0xe36ae1){var _0x2c0239={};var _0x5ed918={};var _0x1a36e9;var _0x39ddc3;return db['DeskAccount'][_0x13a5('0x4a')]({'where':{'id':_0x45db3d[_0x13a5('0x43')]['id']}})[_0x13a5('0x3d')](handleEntityNotFound(_0x2fb938,null))['then'](function(_0x39dc90){if(_0x39dc90){_0x1a36e9=_0x39dc90;_0x5ed918['model']=_[_0x13a5('0x44')](db[_0x13a5('0x4b')][_0x13a5('0x28')]);_0x5ed918[_0x13a5('0x2d')]=_[_0x13a5('0x44')](_0x45db3d['query']);_0x5ed918[_0x13a5('0x2e')]=_[_0x13a5('0x30')](_0x5ed918[_0x13a5('0x2b')],_0x5ed918['query']);_0x2c0239[_0x13a5('0x2f')]=_[_0x13a5('0x30')](_0x5ed918[_0x13a5('0x2b')],qs[_0x13a5('0x31')](_0x45db3d[_0x13a5('0x2d')][_0x13a5('0x31')]));_0x2c0239['attributes']=_0x2c0239['attributes'][_0x13a5('0x32')]?_0x2c0239[_0x13a5('0x2f')]:_0x5ed918['model'];_0x2c0239[_0x13a5('0x35')]=qs[_0x13a5('0x36')](_0x45db3d['query']['sort']);_0x2c0239['where']=qs[_0x13a5('0x2e')](_['pick'](_0x45db3d[_0x13a5('0x2d')],_0x5ed918['filters']));if(_0x45db3d[_0x13a5('0x2d')][_0x13a5('0x39')]){_0x2c0239[_0x13a5('0x37')]=_[_0x13a5('0x3a')](_0x2c0239['where'],{'$or':_[_0x13a5('0x2c')](_0x2c0239[_0x13a5('0x2f')],function(_0x307a6a){var _0x47e83b={};_0x47e83b[_0x307a6a]={'$like':'%'+_0x45db3d[_0x13a5('0x2d')][_0x13a5('0x39')]+'%'};return _0x47e83b;})});}_0x2c0239=_[_0x13a5('0x3a')]({},_0x2c0239,_0x45db3d['options']);return _0x1a36e9[_0x13a5('0x49')](_0x2c0239);}})['then'](function(_0x241763){if(_0x241763){_0x39ddc3=_0x241763[_0x13a5('0x32')];if(!_0x45db3d['query'][_0x13a5('0x4c')](_0x13a5('0x33'))){_0x2c0239[_0x13a5('0x20')]=qs['limit'](_0x45db3d[_0x13a5('0x2d')][_0x13a5('0x20')]);_0x2c0239['offset']=qs['offset'](_0x45db3d[_0x13a5('0x2d')][_0x13a5('0x34')]);}return _0x1a36e9[_0x13a5('0x49')](_0x2c0239);}})['then'](function(_0x223757){if(_0x223757){return _0x223757?{'count':_0x39ddc3,'rows':_0x223757}:null;}})[_0x13a5('0x3d')](respondWithResult(_0x2fb938,null))[_0x13a5('0x47')](handleError(_0x2fb938,null));};exports['addConfiguration']=function(_0x653791,_0x5f3011,_0x178df9){if(_0x653791[_0x13a5('0x48')]['id']){delete _0x653791[_0x13a5('0x48')]['id'];}return db[_0x13a5('0x40')]['findOne']({'where':{'id':_0x653791[_0x13a5('0x43')]['id']}})[_0x13a5('0x3d')](handleEntityNotFound(_0x5f3011,null))[_0x13a5('0x3d')](function(_0x33c129){if(_0x33c129){_0x653791[_0x13a5('0x48')]['AccountId']=_0x33c129['id'];_0x653791[_0x13a5('0x48')][_0x13a5('0x4d')]=integrations['getSubjects'](_0x653791[_0x13a5('0x48')]['channel'],_0x653791[_0x13a5('0x48')][_0x13a5('0x2a')]);_0x653791['body'][_0x13a5('0x4e')]=integrations['getDescriptions'](_0x653791[_0x13a5('0x48')][_0x13a5('0x4f')],_0x653791[_0x13a5('0x48')][_0x13a5('0x2a')]);return db[_0x13a5('0x4b')][_0x13a5('0x46')](_0x653791['body'],{'include':[{'model':db[_0x13a5('0x50')],'as':_0x13a5('0x4d')},{'model':db[_0x13a5('0x50')],'as':_0x13a5('0x4e')}]});}return null;})[_0x13a5('0x3d')](respondWithResult(_0x5f3011,null))['catch'](handleError(_0x5f3011,null));};exports[_0x13a5('0x51')]=function(_0x141248,_0x3390e8,_0x5667a3){var _0x11c832=[{'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 _0x28ea70='';return db[_0x13a5('0x40')][_0x13a5('0x4a')]({'where':{'id':_0x141248[_0x13a5('0x43')]['id']},'attributes':['id',_0x13a5('0x52'),'authType','username',_0x13a5('0x53'),_0x13a5('0x54'),_0x13a5('0x55'),_0x13a5('0x56'),'tokenSecret']})['then'](handleEntityNotFound(_0x3390e8,null))[_0x13a5('0x3d')](function(_0x1cff82){if(_0x1cff82){_0x28ea70=_0x1cff82['remoteUri'];var _0x262b11=_0x28ea70[_0x13a5('0x57')](-0x1);if(_0x262b11==='/'){_0x28ea70=_0x28ea70[_0x13a5('0x58')](0x0,_0x28ea70['lastIndexOf'](_0x262b11));}var _0x4f5661={'method':_0x13a5('0x59'),'uri':util['format']('%s/custom_fields',_0x28ea70),'headers':{'Content-Type':'application/json','Accept':_0x13a5('0x5a')},'json':!![]};if(_0x1cff82['authType']===_0x13a5('0x5b')){_0x4f5661[_0x13a5('0x5c')][_0x13a5('0x5d')]=util[_0x13a5('0x5e')](_0x13a5('0x5f'),new Buffer(util[_0x13a5('0x5e')](_0x13a5('0x60'),_0x1cff82['username'],_0x1cff82[_0x13a5('0x53')]))[_0x13a5('0x61')](_0x13a5('0x62')));}return rp(_0x4f5661)[_0x13a5('0x3d')](function(_0x24d6b7){return _0x11c832[_0x13a5('0x63')](_[_0x13a5('0x2c')](_0x24d6b7[_0x13a5('0x64')]['entries'],function(_0x2b2e59){return{'id':_0x2b2e59['name'],'name':_0x2b2e59[_0x13a5('0x26')],'type':_0x2b2e59['type'],'active':_0x2b2e59[_0x13a5('0x65')],'label':_0x2b2e59[_0x13a5('0x66')],'custom':!![]};}));});}})['then'](function(_0x3e02cd){return{'count':_0x3e02cd[_0x13a5('0x32')],'rows':_0x3e02cd};})[_0x13a5('0x3d')](respondWithResult(_0x3390e8,null))['catch'](function(_0x112424){var _0x13432c=_0x141248['query'][_0x13a5('0x67')]?0x1f4:_0x112424[_0x13a5('0x68')]||0x1f4;logger[_0x13a5('0x24')]('getFields,\x20%s,\x20%s,\x20%s',_0x13a5('0x51'),_0x13432c,JSON['stringify'](_0x112424));delete _0x112424['name'];if(_0x13432c===0x191){_0x13432c=0x190;}_0x3390e8[_0x13a5('0x1d')](_0x13432c)[_0x13a5('0x27')](_0x141248[_0x13a5('0x2d')]['test']?{'message':_0x13a5('0x69'),'statusCode':_0x112424[_0x13a5('0x68')]}:_0x112424);});};