c0f8bc86ef4cc1ff9fdfa92a5ecbc983ef630a57
[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 _0xfea1=['error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','test','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','name','send','index','DeskAccount','rawAttributes','fieldName','map','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','type','options','include','findAll','rows','catch','show','keys','fields','find','create','body','params','getConfigurations','findOne','where','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','DeskField','priority','authType','username','password','consumerKey','consumerSecret','token','tokenSecret','remoteUri','slice','substring','lastIndexOf','GET','%s/custom_fields','application/json','headers','Authorization','format','Basic\x20%s','%s:%s','toString','concat','_embedded','active','label'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0xfea1,0x1d7));var _0x1fea=function(_0x2d460c,_0x4f08c0){_0x2d460c=_0x2d460c-0x0;var _0xf6fc4c=_0xfea1[_0x2d460c];return _0xf6fc4c;};'use strict';var emlformat=require(_0x1fea('0x0'));var rimraf=require(_0x1fea('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1fea('0x2'));var rp=require(_0x1fea('0x3'));var moment=require(_0x1fea('0x4'));var BPromise=require(_0x1fea('0x5'));var Mustache=require('mustache');var util=require(_0x1fea('0x6'));var path=require(_0x1fea('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1fea('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1fea('0x9'));var squel=require('squel');var crypto=require(_0x1fea('0xa'));var jsforce=require(_0x1fea('0xb'));var deskjs=require(_0x1fea('0xc'));var toCsv=require(_0x1fea('0xd'));var querystring=require(_0x1fea('0xe'));var Papa=require(_0x1fea('0xf'));var Redis=require(_0x1fea('0x10'));var authService=require(_0x1fea('0x11'));var qs=require(_0x1fea('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x1fea('0x13'));var utils=require('../../config/utils');var config=require(_0x1fea('0x14'));var licenseUtil=require(_0x1fea('0x15'));var db=require(_0x1fea('0x16'))['db'];var integrations=require(_0x1fea('0x17'));function respondWithStatusCode(_0x2f9bf4,_0xa6b4e3){_0xa6b4e3=_0xa6b4e3||0xcc;return function(_0x41729e){if(_0x41729e){return _0x2f9bf4[_0x1fea('0x18')](_0xa6b4e3);}return _0x2f9bf4[_0x1fea('0x19')](_0xa6b4e3)[_0x1fea('0x1a')]();};}function respondWithResult(_0xabea4a,_0x222542){_0x222542=_0x222542||0xc8;return function(_0x76ae24){if(_0x76ae24){return _0xabea4a[_0x1fea('0x19')](_0x222542)[_0x1fea('0x1b')](_0x76ae24);}};}function respondWithFilteredResult(_0x5b9177,_0xa25fc4){return function(_0x47faf4){if(_0x47faf4){var _0x61ca80=typeof _0xa25fc4[_0x1fea('0x1c')]==='undefined'&&typeof _0xa25fc4['limit']===_0x1fea('0x1d');var _0x150285=_0x47faf4[_0x1fea('0x1e')];var _0x43f50c=_0x61ca80?0x0:_0xa25fc4[_0x1fea('0x1c')];var _0x588dd8=_0x61ca80?_0x47faf4[_0x1fea('0x1e')]:_0xa25fc4[_0x1fea('0x1c')]+_0xa25fc4[_0x1fea('0x1f')];var _0x27334e;if(_0x588dd8>=_0x150285){_0x588dd8=_0x150285;_0x27334e=0xc8;}else{_0x27334e=0xce;}_0x5b9177[_0x1fea('0x19')](_0x27334e);return _0x5b9177[_0x1fea('0x20')](_0x1fea('0x21'),_0x43f50c+'-'+_0x588dd8+'/'+_0x150285)['json'](_0x47faf4);}return null;};}function patchUpdates(_0x4b0b89){return function(_0x3fb7a4){try{jsonpatch[_0x1fea('0x22')](_0x3fb7a4,_0x4b0b89,!![]);}catch(_0x467099){return BPromise[_0x1fea('0x23')](_0x467099);}return _0x3fb7a4[_0x1fea('0x24')]();};}function saveUpdates(_0x490350,_0x2db5b8){return function(_0x3ba918){if(_0x3ba918){return _0x3ba918[_0x1fea('0x25')](_0x490350)[_0x1fea('0x26')](function(_0x6a3e62){return _0x6a3e62;});}return null;};}function removeEntity(_0xe8546f,_0x38b6a2){return function(_0x478933){if(_0x478933){return _0x478933[_0x1fea('0x27')]()[_0x1fea('0x26')](function(){_0xe8546f[_0x1fea('0x19')](0xcc)[_0x1fea('0x1a')]();});}};}function handleEntityNotFound(_0x364c3e,_0x248d41){return function(_0x211e2a){if(!_0x211e2a){_0x364c3e[_0x1fea('0x18')](0x194);}return _0x211e2a;};}function handleError(_0x2032ae,_0x2d7c4f){_0x2d7c4f=_0x2d7c4f||0x1f4;return function(_0x16b60a){logger['error'](_0x16b60a['stack']);if(_0x16b60a[_0x1fea('0x28')]){delete _0x16b60a[_0x1fea('0x28')];}_0x2032ae[_0x1fea('0x19')](_0x2d7c4f)[_0x1fea('0x29')](_0x16b60a);};}exports[_0x1fea('0x2a')]=function(_0x289931,_0x1a5514){var _0x1d73d4={},_0xe3dd73={},_0x53fc21={'count':0x0,'rows':[]};var _0x2640dd=_['map'](db[_0x1fea('0x2b')][_0x1fea('0x2c')],function(_0x36df04){return{'name':_0x36df04[_0x1fea('0x2d')],'type':_0x36df04['type']['key']};});_0xe3dd73['model']=_[_0x1fea('0x2e')](_0x2640dd,'name');_0xe3dd73['query']=_['keys'](_0x289931[_0x1fea('0x2f')]);_0xe3dd73[_0x1fea('0x30')]=_[_0x1fea('0x31')](_0xe3dd73[_0x1fea('0x32')],_0xe3dd73['query']);_0x1d73d4['attributes']=_[_0x1fea('0x31')](_0xe3dd73[_0x1fea('0x32')],qs['fields'](_0x289931[_0x1fea('0x2f')]['fields']));_0x1d73d4['attributes']=_0x1d73d4[_0x1fea('0x33')][_0x1fea('0x34')]?_0x1d73d4[_0x1fea('0x33')]:_0xe3dd73[_0x1fea('0x32')];if(!_0x289931[_0x1fea('0x2f')][_0x1fea('0x35')](_0x1fea('0x36'))){_0x1d73d4[_0x1fea('0x1f')]=qs[_0x1fea('0x1f')](_0x289931[_0x1fea('0x2f')]['limit']);_0x1d73d4['offset']=qs['offset'](_0x289931[_0x1fea('0x2f')][_0x1fea('0x1c')]);}_0x1d73d4[_0x1fea('0x37')]=qs[_0x1fea('0x38')](_0x289931[_0x1fea('0x2f')][_0x1fea('0x38')]);_0x1d73d4['where']=qs[_0x1fea('0x30')](_[_0x1fea('0x39')](_0x289931[_0x1fea('0x2f')],_0xe3dd73[_0x1fea('0x30')]),_0x2640dd);if(_0x289931[_0x1fea('0x2f')][_0x1fea('0x3a')]){_0x1d73d4['where']=_[_0x1fea('0x3b')](_0x1d73d4['where'],{'$or':_['map'](_0x2640dd,function(_0x4b42c7){if(_0x4b42c7[_0x1fea('0x3c')]!=='VIRTUAL'){var _0xa275ac={};_0xa275ac[_0x4b42c7[_0x1fea('0x28')]]={'$like':'%'+_0x289931[_0x1fea('0x2f')][_0x1fea('0x3a')]+'%'};return _0xa275ac;}})});}_0x1d73d4=_[_0x1fea('0x3b')]({},_0x1d73d4,_0x289931[_0x1fea('0x3d')]);var _0x205fc6={'where':_0x1d73d4['where']};return db[_0x1fea('0x2b')][_0x1fea('0x1e')](_0x205fc6)['then'](function(_0x53bc26){_0x53fc21[_0x1fea('0x1e')]=_0x53bc26;if(_0x289931[_0x1fea('0x2f')]['includeAll']){_0x1d73d4[_0x1fea('0x3e')]=[{'all':!![]}];}return db['DeskAccount'][_0x1fea('0x3f')](_0x1d73d4);})[_0x1fea('0x26')](function(_0x1ca0c1){_0x53fc21[_0x1fea('0x40')]=_0x1ca0c1;return _0x53fc21;})['then'](respondWithFilteredResult(_0x1a5514,_0x1d73d4))[_0x1fea('0x41')](handleError(_0x1a5514,null));};exports[_0x1fea('0x42')]=function(_0x51a756,_0xa497f5){var _0xf6d079={'raw':![],'where':{'id':_0x51a756['params']['id']}},_0x1a4c30={};_0x1a4c30['model']=_[_0x1fea('0x43')](db[_0x1fea('0x2b')]['rawAttributes']);_0x1a4c30['query']=_[_0x1fea('0x43')](_0x51a756['query']);_0x1a4c30[_0x1fea('0x30')]=_[_0x1fea('0x31')](_0x1a4c30[_0x1fea('0x32')],_0x1a4c30[_0x1fea('0x2f')]);_0xf6d079['attributes']=_[_0x1fea('0x31')](_0x1a4c30[_0x1fea('0x32')],qs[_0x1fea('0x44')](_0x51a756['query']['fields']));_0xf6d079['attributes']=_0xf6d079[_0x1fea('0x33')]['length']?_0xf6d079['attributes']:_0x1a4c30[_0x1fea('0x32')];if(_0x51a756[_0x1fea('0x2f')]['includeAll']){_0xf6d079[_0x1fea('0x3e')]=[{'all':!![]}];}_0xf6d079=_[_0x1fea('0x3b')]({},_0xf6d079,_0x51a756[_0x1fea('0x3d')]);return db['DeskAccount'][_0x1fea('0x45')](_0xf6d079)[_0x1fea('0x26')](handleEntityNotFound(_0xa497f5,null))[_0x1fea('0x26')](respondWithResult(_0xa497f5,null))[_0x1fea('0x41')](handleError(_0xa497f5,null));};exports[_0x1fea('0x46')]=function(_0x3a3556,_0x53e388){return db[_0x1fea('0x2b')][_0x1fea('0x46')](_0x3a3556[_0x1fea('0x47')],{})[_0x1fea('0x26')](respondWithResult(_0x53e388,0xc9))[_0x1fea('0x41')](handleError(_0x53e388,null));};exports[_0x1fea('0x25')]=function(_0x12f7d0,_0x4fa33a){if(_0x12f7d0[_0x1fea('0x47')]['id']){delete _0x12f7d0[_0x1fea('0x47')]['id'];}return db[_0x1fea('0x2b')][_0x1fea('0x45')]({'where':{'id':_0x12f7d0[_0x1fea('0x48')]['id']}})[_0x1fea('0x26')](handleEntityNotFound(_0x4fa33a,null))[_0x1fea('0x26')](saveUpdates(_0x12f7d0[_0x1fea('0x47')],null))[_0x1fea('0x26')](respondWithResult(_0x4fa33a,null))[_0x1fea('0x41')](handleError(_0x4fa33a,null));};exports[_0x1fea('0x27')]=function(_0x500afe,_0x108ea6){return db[_0x1fea('0x2b')]['find']({'where':{'id':_0x500afe[_0x1fea('0x48')]['id']}})[_0x1fea('0x26')](handleEntityNotFound(_0x108ea6,null))[_0x1fea('0x26')](removeEntity(_0x108ea6,null))[_0x1fea('0x41')](handleError(_0x108ea6,null));};exports[_0x1fea('0x49')]=function(_0x19a1c0,_0x2b5c22,_0x111e91){var _0xffe9b5={};var _0x37b640={};var _0x51cc0a;var _0x13da35;return db['DeskAccount'][_0x1fea('0x4a')]({'where':{'id':_0x19a1c0[_0x1fea('0x48')]['id']}})[_0x1fea('0x26')](handleEntityNotFound(_0x2b5c22,null))[_0x1fea('0x26')](function(_0x564ec5){if(_0x564ec5){_0x51cc0a=_0x564ec5;_0x37b640['model']=_[_0x1fea('0x43')](db['DeskConfiguration'][_0x1fea('0x2c')]);_0x37b640[_0x1fea('0x2f')]=_[_0x1fea('0x43')](_0x19a1c0[_0x1fea('0x2f')]);_0x37b640['filters']=_[_0x1fea('0x31')](_0x37b640[_0x1fea('0x32')],_0x37b640[_0x1fea('0x2f')]);_0xffe9b5['attributes']=_['intersection'](_0x37b640['model'],qs['fields'](_0x19a1c0[_0x1fea('0x2f')][_0x1fea('0x44')]));_0xffe9b5[_0x1fea('0x33')]=_0xffe9b5['attributes'][_0x1fea('0x34')]?_0xffe9b5[_0x1fea('0x33')]:_0x37b640[_0x1fea('0x32')];_0xffe9b5[_0x1fea('0x37')]=qs[_0x1fea('0x38')](_0x19a1c0[_0x1fea('0x2f')]['sort']);_0xffe9b5[_0x1fea('0x4b')]=qs['filters'](_[_0x1fea('0x39')](_0x19a1c0['query'],_0x37b640[_0x1fea('0x30')]));if(_0x19a1c0[_0x1fea('0x2f')]['filter']){_0xffe9b5[_0x1fea('0x4b')]=_[_0x1fea('0x3b')](_0xffe9b5[_0x1fea('0x4b')],{'$or':_[_0x1fea('0x2e')](_0xffe9b5['attributes'],function(_0x350e8d){var _0x30219a={};_0x30219a[_0x350e8d]={'$like':'%'+_0x19a1c0[_0x1fea('0x2f')][_0x1fea('0x3a')]+'%'};return _0x30219a;})});}_0xffe9b5=_['merge']({},_0xffe9b5,_0x19a1c0[_0x1fea('0x3d')]);return _0x51cc0a[_0x1fea('0x49')](_0xffe9b5);}})['then'](function(_0xcfcfd0){if(_0xcfcfd0){_0x13da35=_0xcfcfd0[_0x1fea('0x34')];if(!_0x19a1c0[_0x1fea('0x2f')][_0x1fea('0x35')](_0x1fea('0x36'))){_0xffe9b5['limit']=qs[_0x1fea('0x1f')](_0x19a1c0[_0x1fea('0x2f')][_0x1fea('0x1f')]);_0xffe9b5[_0x1fea('0x1c')]=qs['offset'](_0x19a1c0[_0x1fea('0x2f')][_0x1fea('0x1c')]);}return _0x51cc0a[_0x1fea('0x49')](_0xffe9b5);}})[_0x1fea('0x26')](function(_0x193847){if(_0x193847){return _0x193847?{'count':_0x13da35,'rows':_0x193847}:null;}})[_0x1fea('0x26')](respondWithResult(_0x2b5c22,null))['catch'](handleError(_0x2b5c22,null));};exports[_0x1fea('0x4c')]=function(_0x451c2a,_0x512feb,_0x5e1d90){if(_0x451c2a[_0x1fea('0x47')]['id']){delete _0x451c2a[_0x1fea('0x47')]['id'];}return db[_0x1fea('0x2b')][_0x1fea('0x4a')]({'where':{'id':_0x451c2a['params']['id']}})[_0x1fea('0x26')](handleEntityNotFound(_0x512feb,null))[_0x1fea('0x26')](function(_0x4f7063){if(_0x4f7063){_0x451c2a[_0x1fea('0x47')][_0x1fea('0x4d')]=_0x4f7063['id'];_0x451c2a[_0x1fea('0x47')][_0x1fea('0x4e')]=integrations[_0x1fea('0x4f')](_0x451c2a[_0x1fea('0x47')]['channel'],_0x451c2a['body'][_0x1fea('0x3c')]);_0x451c2a[_0x1fea('0x47')][_0x1fea('0x50')]=integrations[_0x1fea('0x51')](_0x451c2a[_0x1fea('0x47')][_0x1fea('0x52')],_0x451c2a[_0x1fea('0x47')][_0x1fea('0x3c')]);return db['DeskConfiguration'][_0x1fea('0x46')](_0x451c2a[_0x1fea('0x47')],{'include':[{'model':db[_0x1fea('0x53')],'as':'Subjects'},{'model':db['DeskField'],'as':'Descriptions'}]});}return null;})[_0x1fea('0x26')](respondWithResult(_0x512feb,null))['catch'](handleError(_0x512feb,null));};exports['getFields']=function(_0x43c3c8,_0x8b3042,_0x270b5f){var _0x57d4c0=[{'name':_0x1fea('0x54'),'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 _0x46fdd2='';return db[_0x1fea('0x2b')][_0x1fea('0x4a')]({'where':{'id':_0x43c3c8[_0x1fea('0x48')]['id']},'attributes':['id','remoteUri',_0x1fea('0x55'),_0x1fea('0x56'),_0x1fea('0x57'),_0x1fea('0x58'),_0x1fea('0x59'),_0x1fea('0x5a'),_0x1fea('0x5b')]})[_0x1fea('0x26')](handleEntityNotFound(_0x8b3042,null))[_0x1fea('0x26')](function(_0x468c72){if(_0x468c72){_0x46fdd2=_0x468c72[_0x1fea('0x5c')];var _0x43c9df=_0x46fdd2[_0x1fea('0x5d')](-0x1);if(_0x43c9df==='/'){_0x46fdd2=_0x46fdd2[_0x1fea('0x5e')](0x0,_0x46fdd2[_0x1fea('0x5f')](_0x43c9df));}var _0x2bb198={'method':_0x1fea('0x60'),'uri':util['format'](_0x1fea('0x61'),_0x46fdd2),'headers':{'Content-Type':_0x1fea('0x62'),'Accept':_0x1fea('0x62')},'json':!![]};if(_0x468c72[_0x1fea('0x55')]==='basic'){_0x2bb198[_0x1fea('0x63')][_0x1fea('0x64')]=util[_0x1fea('0x65')](_0x1fea('0x66'),new Buffer(util[_0x1fea('0x65')](_0x1fea('0x67'),_0x468c72[_0x1fea('0x56')],_0x468c72[_0x1fea('0x57')]))[_0x1fea('0x68')]('base64'));}return rp(_0x2bb198)[_0x1fea('0x26')](function(_0x1bd726){return _0x57d4c0[_0x1fea('0x69')](_[_0x1fea('0x2e')](_0x1bd726[_0x1fea('0x6a')]['entries'],function(_0x36145c){return{'id':_0x36145c[_0x1fea('0x28')],'name':_0x36145c[_0x1fea('0x28')],'type':_0x36145c['type'],'active':_0x36145c[_0x1fea('0x6b')],'label':_0x36145c[_0x1fea('0x6c')],'custom':!![]};}));});}})[_0x1fea('0x26')](function(_0x2c5b52){return{'count':_0x2c5b52[_0x1fea('0x34')],'rows':_0x2c5b52};})[_0x1fea('0x26')](respondWithResult(_0x8b3042,null))['catch'](function(_0x51f094){var _0x40dbca=_0x43c3c8[_0x1fea('0x2f')]['test']?0x1f4:_0x51f094['statusCode']||0x1f4;logger[_0x1fea('0x6d')](_0x1fea('0x6e'),_0x1fea('0x6f'),_0x40dbca,JSON[_0x1fea('0x70')](_0x51f094));delete _0x51f094['name'];if(_0x40dbca===0x191){_0x40dbca=0x190;}_0x8b3042[_0x1fea('0x19')](_0x40dbca)[_0x1fea('0x29')](_0x43c3c8['query'][_0x1fea('0x71')]?{'message':_0x1fea('0x72'),'statusCode':_0x51f094[_0x1fea('0x73')]}:_0x51f094);});};