27f05ca2688c16ec17f63babeb17f393edfef5b8
[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 _0x9a38=['fieldName','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','include','then','catch','show','params','keys','includeAll','find','create','body','getConfigurations','DeskConfiguration','rawAttributes','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','getDescriptions','DeskField','Descriptions','getFields','priority','remoteUri','authType','consumerKey','consumerSecret','token','tokenSecret','slice','GET','format','application/json','basic','headers','Authorization','Basic\x20%s','password','toString','concat','entries','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','destroy','error','stack','name','send','index','DeskAccount'];(function(_0x3f6565,_0x12a8bb){var _0x4abd23=function(_0x56dce7){while(--_0x56dce7){_0x3f6565['push'](_0x3f6565['shift']());}};_0x4abd23(++_0x12a8bb);}(_0x9a38,0x12c));var _0x89a3=function(_0x531695,_0x91f94c){_0x531695=_0x531695-0x0;var _0x1216b2=_0x9a38[_0x531695];return _0x1216b2;};'use strict';var emlformat=require(_0x89a3('0x0'));var rimraf=require(_0x89a3('0x1'));var zipdir=require(_0x89a3('0x2'));var jsonpatch=require(_0x89a3('0x3'));var rp=require(_0x89a3('0x4'));var moment=require(_0x89a3('0x5'));var BPromise=require(_0x89a3('0x6'));var Mustache=require('mustache');var util=require(_0x89a3('0x7'));var path=require(_0x89a3('0x8'));var sox=require('sox');var csv=require(_0x89a3('0x9'));var ejs=require(_0x89a3('0xa'));var fs=require('fs');var fs_extra=require(_0x89a3('0xb'));var _=require(_0x89a3('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x89a3('0xd'));var toCsv=require('to-csv');var querystring=require(_0x89a3('0xe'));var Papa=require('papaparse');var Redis=require(_0x89a3('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x89a3('0x10'));var as=require(_0x89a3('0x11'));var hardwareService=require(_0x89a3('0x12'));var logger=require(_0x89a3('0x13'))('api');var utils=require(_0x89a3('0x14'));var config=require(_0x89a3('0x15'));var licenseUtil=require(_0x89a3('0x16'));var db=require(_0x89a3('0x17'))['db'];var integrations=require(_0x89a3('0x18'));function respondWithStatusCode(_0x26de6f,_0x53a2d8){_0x53a2d8=_0x53a2d8||0xcc;return function(_0x448e05){if(_0x448e05){return _0x26de6f[_0x89a3('0x19')](_0x53a2d8);}return _0x26de6f[_0x89a3('0x1a')](_0x53a2d8)[_0x89a3('0x1b')]();};}function respondWithResult(_0x3962d6,_0x59f4e7){_0x59f4e7=_0x59f4e7||0xc8;return function(_0x5a3774){if(_0x5a3774){return _0x3962d6['status'](_0x59f4e7)[_0x89a3('0x1c')](_0x5a3774);}};}function respondWithFilteredResult(_0x3b1874,_0x5c4aa3){return function(_0x18c926){if(_0x18c926){var _0x3fed12=typeof _0x5c4aa3[_0x89a3('0x1d')]===_0x89a3('0x1e')&&typeof _0x5c4aa3['limit']===_0x89a3('0x1e');var _0x40dd05=_0x18c926['count'];var _0x229c1f=_0x3fed12?0x0:_0x5c4aa3[_0x89a3('0x1d')];var _0x5462af=_0x3fed12?_0x18c926[_0x89a3('0x1f')]:_0x5c4aa3[_0x89a3('0x1d')]+_0x5c4aa3[_0x89a3('0x20')];var _0x251cee;if(_0x5462af>=_0x40dd05){_0x5462af=_0x40dd05;_0x251cee=0xc8;}else{_0x251cee=0xce;}_0x3b1874[_0x89a3('0x1a')](_0x251cee);return _0x3b1874[_0x89a3('0x21')]('Content-Range',_0x229c1f+'-'+_0x5462af+'/'+_0x40dd05)[_0x89a3('0x1c')](_0x18c926);}return null;};}function patchUpdates(_0x5474ee){return function(_0x48b722){try{jsonpatch[_0x89a3('0x22')](_0x48b722,_0x5474ee,!![]);}catch(_0x2b693f){return BPromise[_0x89a3('0x23')](_0x2b693f);}return _0x48b722[_0x89a3('0x24')]();};}function saveUpdates(_0x57c37b,_0x50de27){return function(_0x1e767c){if(_0x1e767c){return _0x1e767c[_0x89a3('0x25')](_0x57c37b)['then'](function(_0x16ddf6){return _0x16ddf6;});}return null;};}function removeEntity(_0x58fc67,_0x59a252){return function(_0x2f107f){if(_0x2f107f){return _0x2f107f[_0x89a3('0x26')]()['then'](function(){_0x58fc67['status'](0xcc)[_0x89a3('0x1b')]();});}};}function handleEntityNotFound(_0x1ccdf6,_0x264af1){return function(_0x3f3184){if(!_0x3f3184){_0x1ccdf6[_0x89a3('0x19')](0x194);}return _0x3f3184;};}function handleError(_0x524287,_0x53dbfc){_0x53dbfc=_0x53dbfc||0x1f4;return function(_0x1b1739){logger[_0x89a3('0x27')](_0x1b1739[_0x89a3('0x28')]);if(_0x1b1739[_0x89a3('0x29')]){delete _0x1b1739[_0x89a3('0x29')];}_0x524287['status'](_0x53dbfc)[_0x89a3('0x2a')](_0x1b1739);};}exports[_0x89a3('0x2b')]=function(_0x4e0e1a,_0x2c13c){var _0x3c0b62={},_0x3da647={},_0x11a4dd={'count':0x0,'rows':[]};var _0x166831=_['map'](db[_0x89a3('0x2c')]['rawAttributes'],function(_0x60ab7a){return{'name':_0x60ab7a[_0x89a3('0x2d')],'type':_0x60ab7a['type'][_0x89a3('0x2e')]};});_0x3da647[_0x89a3('0x2f')]=_[_0x89a3('0x30')](_0x166831,_0x89a3('0x29'));_0x3da647[_0x89a3('0x31')]=_['keys'](_0x4e0e1a[_0x89a3('0x31')]);_0x3da647[_0x89a3('0x32')]=_[_0x89a3('0x33')](_0x3da647[_0x89a3('0x2f')],_0x3da647[_0x89a3('0x31')]);_0x3c0b62[_0x89a3('0x34')]=_[_0x89a3('0x33')](_0x3da647[_0x89a3('0x2f')],qs[_0x89a3('0x35')](_0x4e0e1a[_0x89a3('0x31')]['fields']));_0x3c0b62[_0x89a3('0x34')]=_0x3c0b62['attributes'][_0x89a3('0x36')]?_0x3c0b62[_0x89a3('0x34')]:_0x3da647['model'];if(!_0x4e0e1a[_0x89a3('0x31')][_0x89a3('0x37')](_0x89a3('0x38'))){_0x3c0b62[_0x89a3('0x20')]=qs[_0x89a3('0x20')](_0x4e0e1a[_0x89a3('0x31')][_0x89a3('0x20')]);_0x3c0b62[_0x89a3('0x1d')]=qs[_0x89a3('0x1d')](_0x4e0e1a['query'][_0x89a3('0x1d')]);}_0x3c0b62[_0x89a3('0x39')]=qs[_0x89a3('0x3a')](_0x4e0e1a[_0x89a3('0x31')]['sort']);_0x3c0b62[_0x89a3('0x3b')]=qs['filters'](_[_0x89a3('0x3c')](_0x4e0e1a[_0x89a3('0x31')],_0x3da647[_0x89a3('0x32')]),_0x166831);if(_0x4e0e1a[_0x89a3('0x31')]['filter']){_0x3c0b62[_0x89a3('0x3b')]=_[_0x89a3('0x3d')](_0x3c0b62[_0x89a3('0x3b')],{'$or':_[_0x89a3('0x30')](_0x166831,function(_0x95c318){if(_0x95c318[_0x89a3('0x3e')]!==_0x89a3('0x3f')){var _0x38853a={};_0x38853a[_0x95c318['name']]={'$like':'%'+_0x4e0e1a[_0x89a3('0x31')][_0x89a3('0x40')]+'%'};return _0x38853a;}})});}_0x3c0b62=_[_0x89a3('0x3d')]({},_0x3c0b62,_0x4e0e1a[_0x89a3('0x41')]);var _0x498492={'where':_0x3c0b62[_0x89a3('0x3b')]};return db[_0x89a3('0x2c')][_0x89a3('0x1f')](_0x498492)['then'](function(_0x314509){_0x11a4dd[_0x89a3('0x1f')]=_0x314509;if(_0x4e0e1a[_0x89a3('0x31')]['includeAll']){_0x3c0b62[_0x89a3('0x42')]=[{'all':!![]}];}return db[_0x89a3('0x2c')]['findAll'](_0x3c0b62);})[_0x89a3('0x43')](function(_0x43e41b){_0x11a4dd['rows']=_0x43e41b;return _0x11a4dd;})[_0x89a3('0x43')](respondWithFilteredResult(_0x2c13c,_0x3c0b62))[_0x89a3('0x44')](handleError(_0x2c13c,null));};exports[_0x89a3('0x45')]=function(_0x46f11a,_0x2c2dab){var _0x5aebc3={'raw':![],'where':{'id':_0x46f11a[_0x89a3('0x46')]['id']}},_0x4eabf8={};_0x4eabf8['model']=_['keys'](db[_0x89a3('0x2c')]['rawAttributes']);_0x4eabf8[_0x89a3('0x31')]=_[_0x89a3('0x47')](_0x46f11a[_0x89a3('0x31')]);_0x4eabf8[_0x89a3('0x32')]=_[_0x89a3('0x33')](_0x4eabf8[_0x89a3('0x2f')],_0x4eabf8['query']);_0x5aebc3['attributes']=_[_0x89a3('0x33')](_0x4eabf8[_0x89a3('0x2f')],qs['fields'](_0x46f11a[_0x89a3('0x31')][_0x89a3('0x35')]));_0x5aebc3[_0x89a3('0x34')]=_0x5aebc3[_0x89a3('0x34')]['length']?_0x5aebc3[_0x89a3('0x34')]:_0x4eabf8[_0x89a3('0x2f')];if(_0x46f11a[_0x89a3('0x31')][_0x89a3('0x48')]){_0x5aebc3['include']=[{'all':!![]}];}_0x5aebc3=_[_0x89a3('0x3d')]({},_0x5aebc3,_0x46f11a[_0x89a3('0x41')]);return db[_0x89a3('0x2c')][_0x89a3('0x49')](_0x5aebc3)[_0x89a3('0x43')](handleEntityNotFound(_0x2c2dab,null))[_0x89a3('0x43')](respondWithResult(_0x2c2dab,null))[_0x89a3('0x44')](handleError(_0x2c2dab,null));};exports[_0x89a3('0x4a')]=function(_0x192ffd,_0x16cc02){return db[_0x89a3('0x2c')][_0x89a3('0x4a')](_0x192ffd[_0x89a3('0x4b')],{})['then'](respondWithResult(_0x16cc02,0xc9))['catch'](handleError(_0x16cc02,null));};exports[_0x89a3('0x25')]=function(_0x584e32,_0x154e88){if(_0x584e32[_0x89a3('0x4b')]['id']){delete _0x584e32[_0x89a3('0x4b')]['id'];}return db[_0x89a3('0x2c')][_0x89a3('0x49')]({'where':{'id':_0x584e32['params']['id']}})[_0x89a3('0x43')](handleEntityNotFound(_0x154e88,null))[_0x89a3('0x43')](saveUpdates(_0x584e32['body'],null))['then'](respondWithResult(_0x154e88,null))['catch'](handleError(_0x154e88,null));};exports[_0x89a3('0x26')]=function(_0x275441,_0x35b1b9){return db[_0x89a3('0x2c')]['find']({'where':{'id':_0x275441[_0x89a3('0x46')]['id']}})[_0x89a3('0x43')](handleEntityNotFound(_0x35b1b9,null))[_0x89a3('0x43')](removeEntity(_0x35b1b9,null))['catch'](handleError(_0x35b1b9,null));};exports[_0x89a3('0x4c')]=function(_0xf0f317,_0x32baa8,_0x5ea2fe){var _0x292e2d={};var _0x5a96c4={};var _0x21b273;var _0x4e5d07;return db[_0x89a3('0x2c')]['findOne']({'where':{'id':_0xf0f317[_0x89a3('0x46')]['id']}})[_0x89a3('0x43')](handleEntityNotFound(_0x32baa8,null))['then'](function(_0x1535a6){if(_0x1535a6){_0x21b273=_0x1535a6;_0x5a96c4['model']=_['keys'](db[_0x89a3('0x4d')][_0x89a3('0x4e')]);_0x5a96c4[_0x89a3('0x31')]=_['keys'](_0xf0f317[_0x89a3('0x31')]);_0x5a96c4['filters']=_['intersection'](_0x5a96c4[_0x89a3('0x2f')],_0x5a96c4[_0x89a3('0x31')]);_0x292e2d[_0x89a3('0x34')]=_[_0x89a3('0x33')](_0x5a96c4[_0x89a3('0x2f')],qs[_0x89a3('0x35')](_0xf0f317[_0x89a3('0x31')][_0x89a3('0x35')]));_0x292e2d['attributes']=_0x292e2d['attributes'][_0x89a3('0x36')]?_0x292e2d[_0x89a3('0x34')]:_0x5a96c4['model'];_0x292e2d['order']=qs[_0x89a3('0x3a')](_0xf0f317[_0x89a3('0x31')][_0x89a3('0x3a')]);_0x292e2d[_0x89a3('0x3b')]=qs[_0x89a3('0x32')](_[_0x89a3('0x3c')](_0xf0f317['query'],_0x5a96c4[_0x89a3('0x32')]));if(_0xf0f317['query'][_0x89a3('0x40')]){_0x292e2d[_0x89a3('0x3b')]=_[_0x89a3('0x3d')](_0x292e2d[_0x89a3('0x3b')],{'$or':_[_0x89a3('0x30')](_0x292e2d['attributes'],function(_0x44fbf8){var _0x21a190={};_0x21a190[_0x44fbf8]={'$like':'%'+_0xf0f317[_0x89a3('0x31')][_0x89a3('0x40')]+'%'};return _0x21a190;})});}_0x292e2d=_[_0x89a3('0x3d')]({},_0x292e2d,_0xf0f317[_0x89a3('0x41')]);return _0x21b273[_0x89a3('0x4c')](_0x292e2d);}})['then'](function(_0x326258){if(_0x326258){_0x4e5d07=_0x326258['length'];if(!_0xf0f317[_0x89a3('0x31')][_0x89a3('0x37')](_0x89a3('0x38'))){_0x292e2d[_0x89a3('0x20')]=qs[_0x89a3('0x20')](_0xf0f317[_0x89a3('0x31')][_0x89a3('0x20')]);_0x292e2d[_0x89a3('0x1d')]=qs['offset'](_0xf0f317[_0x89a3('0x31')][_0x89a3('0x1d')]);}return _0x21b273['getConfigurations'](_0x292e2d);}})['then'](function(_0x2a0ef0){if(_0x2a0ef0){return _0x2a0ef0?{'count':_0x4e5d07,'rows':_0x2a0ef0}:null;}})[_0x89a3('0x43')](respondWithResult(_0x32baa8,null))['catch'](handleError(_0x32baa8,null));};exports[_0x89a3('0x4f')]=function(_0x68d1bc,_0x419426,_0x186157){if(_0x68d1bc[_0x89a3('0x4b')]['id']){delete _0x68d1bc[_0x89a3('0x4b')]['id'];}return db[_0x89a3('0x2c')][_0x89a3('0x50')]({'where':{'id':_0x68d1bc[_0x89a3('0x46')]['id']}})[_0x89a3('0x43')](handleEntityNotFound(_0x419426,null))[_0x89a3('0x43')](function(_0x218d8e){if(_0x218d8e){_0x68d1bc[_0x89a3('0x4b')][_0x89a3('0x51')]=_0x218d8e['id'];_0x68d1bc[_0x89a3('0x4b')][_0x89a3('0x52')]=integrations[_0x89a3('0x53')](_0x68d1bc[_0x89a3('0x4b')][_0x89a3('0x54')],_0x68d1bc[_0x89a3('0x4b')][_0x89a3('0x3e')]);_0x68d1bc[_0x89a3('0x4b')]['Descriptions']=integrations[_0x89a3('0x55')](_0x68d1bc['body']['channel'],_0x68d1bc['body']['type']);return db[_0x89a3('0x4d')]['create'](_0x68d1bc[_0x89a3('0x4b')],{'include':[{'model':db[_0x89a3('0x56')],'as':'Subjects'},{'model':db[_0x89a3('0x56')],'as':_0x89a3('0x57')}]});}return null;})[_0x89a3('0x43')](respondWithResult(_0x419426,null))[_0x89a3('0x44')](handleError(_0x419426,null));};exports[_0x89a3('0x58')]=function(_0x124eb0,_0x3efa0f,_0x14d5f2){var _0x5d9440=[{'name':_0x89a3('0x59'),'label':_0x89a3('0x59'),'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 _0x5af5b6='';return db[_0x89a3('0x2c')][_0x89a3('0x50')]({'where':{'id':_0x124eb0[_0x89a3('0x46')]['id']},'attributes':['id',_0x89a3('0x5a'),_0x89a3('0x5b'),'username','password',_0x89a3('0x5c'),_0x89a3('0x5d'),_0x89a3('0x5e'),_0x89a3('0x5f')]})['then'](handleEntityNotFound(_0x3efa0f,null))[_0x89a3('0x43')](function(_0x2f4818){if(_0x2f4818){_0x5af5b6=_0x2f4818[_0x89a3('0x5a')];var _0x882cd4=_0x5af5b6[_0x89a3('0x60')](-0x1);if(_0x882cd4==='/'){_0x5af5b6=_0x5af5b6['substring'](0x0,_0x5af5b6['lastIndexOf'](_0x882cd4));}var _0x58dac8={'method':_0x89a3('0x61'),'uri':util[_0x89a3('0x62')]('%s/custom_fields',_0x5af5b6),'headers':{'Content-Type':_0x89a3('0x63'),'Accept':_0x89a3('0x63')},'json':!![]};if(_0x2f4818[_0x89a3('0x5b')]===_0x89a3('0x64')){_0x58dac8[_0x89a3('0x65')][_0x89a3('0x66')]=util[_0x89a3('0x62')](_0x89a3('0x67'),new Buffer(util[_0x89a3('0x62')]('%s:%s',_0x2f4818['username'],_0x2f4818[_0x89a3('0x68')]))[_0x89a3('0x69')]('base64'));}return rp(_0x58dac8)[_0x89a3('0x43')](function(_0x4b7ec6){return _0x5d9440[_0x89a3('0x6a')](_[_0x89a3('0x30')](_0x4b7ec6['_embedded'][_0x89a3('0x6b')],function(_0x55344b){return{'id':_0x55344b[_0x89a3('0x29')],'name':_0x55344b[_0x89a3('0x29')],'type':_0x55344b[_0x89a3('0x3e')],'active':_0x55344b[_0x89a3('0x6c')],'label':_0x55344b[_0x89a3('0x6d')],'custom':!![]};}));});}})[_0x89a3('0x43')](function(_0x5c04c5){return{'count':_0x5c04c5[_0x89a3('0x36')],'rows':_0x5c04c5};})[_0x89a3('0x43')](respondWithResult(_0x3efa0f,null))['catch'](function(_0x13e587){var _0x21dc66=_0x124eb0[_0x89a3('0x31')][_0x89a3('0x6e')]?0x1f4:_0x13e587[_0x89a3('0x6f')]||0x1f4;logger['error'](_0x89a3('0x70'),_0x89a3('0x58'),_0x21dc66,JSON[_0x89a3('0x71')](_0x13e587));delete _0x13e587[_0x89a3('0x29')];if(_0x21dc66===0x191){_0x21dc66=0x190;}_0x3efa0f[_0x89a3('0x1a')](_0x21dc66)[_0x89a3('0x2a')](_0x124eb0[_0x89a3('0x31')][_0x89a3('0x6e')]?{'message':_0x89a3('0x72'),'statusCode':_0x13e587[_0x89a3('0x6f')]}:_0x13e587);});};