fe1dc58294ca164cf66af5b3b679a1aaba994e6b
[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 _0x9790=['type','VIRTUAL','includeAll','include','findAll','catch','show','params','intersection','options','body','update','find','destroy','getConfigurations','findOne','DeskConfiguration','rawAttributes','order','filter','AccountId','Subjects','channel','Descriptions','getDescriptions','create','getFields','priority','remoteUri','authType','username','password','consumerSecret','token','slice','lastIndexOf','GET','format','application/json','basic','headers','Authorization','Basic\x20%s','toString','concat','_embedded','active','label','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','offset','undefined','count','set','Content-Range','json','apply','reject','save','then','error','stack','send','index','map','DeskAccount','key','model','name','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','merge'];(function(_0x359500,_0x5875d6){var _0x2340b8=function(_0x20cfcf){while(--_0x20cfcf){_0x359500['push'](_0x359500['shift']());}};_0x2340b8(++_0x5875d6);}(_0x9790,0xa3));var _0x0979=function(_0x450ad9,_0x1152f7){_0x450ad9=_0x450ad9-0x0;var _0x17e64e=_0x9790[_0x450ad9];return _0x17e64e;};'use strict';var emlformat=require(_0x0979('0x0'));var rimraf=require(_0x0979('0x1'));var zipdir=require(_0x0979('0x2'));var jsonpatch=require(_0x0979('0x3'));var rp=require('request-promise');var moment=require(_0x0979('0x4'));var BPromise=require(_0x0979('0x5'));var Mustache=require(_0x0979('0x6'));var util=require('util');var path=require(_0x0979('0x7'));var sox=require(_0x0979('0x8'));var csv=require(_0x0979('0x9'));var ejs=require(_0x0979('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0979('0xb'));var squel=require(_0x0979('0xc'));var crypto=require('crypto');var jsforce=require(_0x0979('0xd'));var deskjs=require(_0x0979('0xe'));var toCsv=require(_0x0979('0x9'));var querystring=require('querystring');var Papa=require(_0x0979('0xf'));var Redis=require(_0x0979('0x10'));var authService=require(_0x0979('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x0979('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0979('0x13'))(_0x0979('0x14'));var utils=require(_0x0979('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0979('0x16'))['db'];var integrations=require(_0x0979('0x17'));function respondWithStatusCode(_0xa1e974,_0x532458){_0x532458=_0x532458||0xcc;return function(_0xd312e0){if(_0xd312e0){return _0xa1e974[_0x0979('0x18')](_0x532458);}return _0xa1e974['status'](_0x532458)[_0x0979('0x19')]();};}function respondWithResult(_0x403a91,_0x1190f5){_0x1190f5=_0x1190f5||0xc8;return function(_0x51dcbe){if(_0x51dcbe){return _0x403a91[_0x0979('0x1a')](_0x1190f5)['json'](_0x51dcbe);}};}function respondWithFilteredResult(_0x901849,_0xc0b0e1){return function(_0x415b61){if(_0x415b61){var _0x17d0d1=typeof _0xc0b0e1[_0x0979('0x1b')]===_0x0979('0x1c')&&typeof _0xc0b0e1['limit']==='undefined';var _0x554a19=_0x415b61[_0x0979('0x1d')];var _0x5a8424=_0x17d0d1?0x0:_0xc0b0e1[_0x0979('0x1b')];var _0x521d8f=_0x17d0d1?_0x415b61[_0x0979('0x1d')]:_0xc0b0e1['offset']+_0xc0b0e1['limit'];var _0x474254;if(_0x521d8f>=_0x554a19){_0x521d8f=_0x554a19;_0x474254=0xc8;}else{_0x474254=0xce;}_0x901849['status'](_0x474254);return _0x901849[_0x0979('0x1e')](_0x0979('0x1f'),_0x5a8424+'-'+_0x521d8f+'/'+_0x554a19)[_0x0979('0x20')](_0x415b61);}return null;};}function patchUpdates(_0x37191c){return function(_0x2bbd3f){try{jsonpatch[_0x0979('0x21')](_0x2bbd3f,_0x37191c,!![]);}catch(_0x4bf41e){return BPromise[_0x0979('0x22')](_0x4bf41e);}return _0x2bbd3f[_0x0979('0x23')]();};}function saveUpdates(_0x359d87,_0x215304){return function(_0x1b91ab){if(_0x1b91ab){return _0x1b91ab['update'](_0x359d87)[_0x0979('0x24')](function(_0x3a38c8){return _0x3a38c8;});}return null;};}function removeEntity(_0x9be3de,_0x234466){return function(_0x53368d){if(_0x53368d){return _0x53368d['destroy']()[_0x0979('0x24')](function(){_0x9be3de[_0x0979('0x1a')](0xcc)[_0x0979('0x19')]();});}};}function handleEntityNotFound(_0x32e6be,_0x2e7b42){return function(_0x4874d8){if(!_0x4874d8){_0x32e6be[_0x0979('0x18')](0x194);}return _0x4874d8;};}function handleError(_0x1514f8,_0x2254a1){_0x2254a1=_0x2254a1||0x1f4;return function(_0x37fc22){logger[_0x0979('0x25')](_0x37fc22[_0x0979('0x26')]);if(_0x37fc22['name']){delete _0x37fc22['name'];}_0x1514f8[_0x0979('0x1a')](_0x2254a1)[_0x0979('0x27')](_0x37fc22);};}exports[_0x0979('0x28')]=function(_0x3c973d,_0x15f0b1){var _0x5e6a21={},_0x1a7be9={},_0x50a9e2={'count':0x0,'rows':[]};var _0x5d6cd8=_[_0x0979('0x29')](db[_0x0979('0x2a')]['rawAttributes'],function(_0x5a03c8){return{'name':_0x5a03c8['fieldName'],'type':_0x5a03c8['type'][_0x0979('0x2b')]};});_0x1a7be9[_0x0979('0x2c')]=_['map'](_0x5d6cd8,_0x0979('0x2d'));_0x1a7be9[_0x0979('0x2e')]=_[_0x0979('0x2f')](_0x3c973d[_0x0979('0x2e')]);_0x1a7be9[_0x0979('0x30')]=_['intersection'](_0x1a7be9['model'],_0x1a7be9['query']);_0x5e6a21[_0x0979('0x31')]=_['intersection'](_0x1a7be9[_0x0979('0x2c')],qs['fields'](_0x3c973d[_0x0979('0x2e')][_0x0979('0x32')]));_0x5e6a21['attributes']=_0x5e6a21[_0x0979('0x31')][_0x0979('0x33')]?_0x5e6a21[_0x0979('0x31')]:_0x1a7be9[_0x0979('0x2c')];if(!_0x3c973d['query'][_0x0979('0x34')](_0x0979('0x35'))){_0x5e6a21[_0x0979('0x36')]=qs[_0x0979('0x36')](_0x3c973d[_0x0979('0x2e')][_0x0979('0x36')]);_0x5e6a21[_0x0979('0x1b')]=qs[_0x0979('0x1b')](_0x3c973d[_0x0979('0x2e')][_0x0979('0x1b')]);}_0x5e6a21['order']=qs[_0x0979('0x37')](_0x3c973d[_0x0979('0x2e')][_0x0979('0x37')]);_0x5e6a21[_0x0979('0x38')]=qs['filters'](_[_0x0979('0x39')](_0x3c973d['query'],_0x1a7be9[_0x0979('0x30')]),_0x5d6cd8);if(_0x3c973d[_0x0979('0x2e')]['filter']){_0x5e6a21[_0x0979('0x38')]=_[_0x0979('0x3a')](_0x5e6a21[_0x0979('0x38')],{'$or':_[_0x0979('0x29')](_0x5d6cd8,function(_0x5f37e5){if(_0x5f37e5[_0x0979('0x3b')]!==_0x0979('0x3c')){var _0x340e93={};_0x340e93[_0x5f37e5[_0x0979('0x2d')]]={'$like':'%'+_0x3c973d[_0x0979('0x2e')]['filter']+'%'};return _0x340e93;}})});}_0x5e6a21=_[_0x0979('0x3a')]({},_0x5e6a21,_0x3c973d['options']);var _0x3222f0={'where':_0x5e6a21[_0x0979('0x38')]};return db[_0x0979('0x2a')][_0x0979('0x1d')](_0x3222f0)[_0x0979('0x24')](function(_0x268032){_0x50a9e2[_0x0979('0x1d')]=_0x268032;if(_0x3c973d[_0x0979('0x2e')][_0x0979('0x3d')]){_0x5e6a21[_0x0979('0x3e')]=[{'all':!![]}];}return db[_0x0979('0x2a')][_0x0979('0x3f')](_0x5e6a21);})['then'](function(_0xd12461){_0x50a9e2['rows']=_0xd12461;return _0x50a9e2;})[_0x0979('0x24')](respondWithFilteredResult(_0x15f0b1,_0x5e6a21))[_0x0979('0x40')](handleError(_0x15f0b1,null));};exports[_0x0979('0x41')]=function(_0x172be3,_0x188f0e){var _0x583e21={'raw':![],'where':{'id':_0x172be3[_0x0979('0x42')]['id']}},_0x8a9650={};_0x8a9650[_0x0979('0x2c')]=_['keys'](db['DeskAccount']['rawAttributes']);_0x8a9650[_0x0979('0x2e')]=_['keys'](_0x172be3['query']);_0x8a9650[_0x0979('0x30')]=_[_0x0979('0x43')](_0x8a9650[_0x0979('0x2c')],_0x8a9650['query']);_0x583e21[_0x0979('0x31')]=_[_0x0979('0x43')](_0x8a9650[_0x0979('0x2c')],qs[_0x0979('0x32')](_0x172be3[_0x0979('0x2e')][_0x0979('0x32')]));_0x583e21['attributes']=_0x583e21['attributes'][_0x0979('0x33')]?_0x583e21[_0x0979('0x31')]:_0x8a9650[_0x0979('0x2c')];if(_0x172be3['query'][_0x0979('0x3d')]){_0x583e21[_0x0979('0x3e')]=[{'all':!![]}];}_0x583e21=_[_0x0979('0x3a')]({},_0x583e21,_0x172be3[_0x0979('0x44')]);return db[_0x0979('0x2a')]['find'](_0x583e21)[_0x0979('0x24')](handleEntityNotFound(_0x188f0e,null))[_0x0979('0x24')](respondWithResult(_0x188f0e,null))[_0x0979('0x40')](handleError(_0x188f0e,null));};exports['create']=function(_0x14a347,_0x45f11b){return db[_0x0979('0x2a')]['create'](_0x14a347[_0x0979('0x45')],{})[_0x0979('0x24')](respondWithResult(_0x45f11b,0xc9))[_0x0979('0x40')](handleError(_0x45f11b,null));};exports[_0x0979('0x46')]=function(_0x22f699,_0x33245f){if(_0x22f699[_0x0979('0x45')]['id']){delete _0x22f699['body']['id'];}return db['DeskAccount'][_0x0979('0x47')]({'where':{'id':_0x22f699[_0x0979('0x42')]['id']}})[_0x0979('0x24')](handleEntityNotFound(_0x33245f,null))[_0x0979('0x24')](saveUpdates(_0x22f699[_0x0979('0x45')],null))[_0x0979('0x24')](respondWithResult(_0x33245f,null))[_0x0979('0x40')](handleError(_0x33245f,null));};exports[_0x0979('0x48')]=function(_0x568982,_0x351917){return db['DeskAccount'][_0x0979('0x47')]({'where':{'id':_0x568982[_0x0979('0x42')]['id']}})[_0x0979('0x24')](handleEntityNotFound(_0x351917,null))[_0x0979('0x24')](removeEntity(_0x351917,null))[_0x0979('0x40')](handleError(_0x351917,null));};exports[_0x0979('0x49')]=function(_0x35804d,_0x572d29,_0x41b679){var _0x6b012c={};var _0x53b714={};var _0x16a6f6;var _0x30f127;return db[_0x0979('0x2a')][_0x0979('0x4a')]({'where':{'id':_0x35804d[_0x0979('0x42')]['id']}})[_0x0979('0x24')](handleEntityNotFound(_0x572d29,null))[_0x0979('0x24')](function(_0x27b46c){if(_0x27b46c){_0x16a6f6=_0x27b46c;_0x53b714[_0x0979('0x2c')]=_[_0x0979('0x2f')](db[_0x0979('0x4b')][_0x0979('0x4c')]);_0x53b714[_0x0979('0x2e')]=_[_0x0979('0x2f')](_0x35804d[_0x0979('0x2e')]);_0x53b714[_0x0979('0x30')]=_['intersection'](_0x53b714[_0x0979('0x2c')],_0x53b714['query']);_0x6b012c[_0x0979('0x31')]=_[_0x0979('0x43')](_0x53b714[_0x0979('0x2c')],qs[_0x0979('0x32')](_0x35804d[_0x0979('0x2e')]['fields']));_0x6b012c[_0x0979('0x31')]=_0x6b012c[_0x0979('0x31')][_0x0979('0x33')]?_0x6b012c[_0x0979('0x31')]:_0x53b714[_0x0979('0x2c')];_0x6b012c[_0x0979('0x4d')]=qs[_0x0979('0x37')](_0x35804d['query'][_0x0979('0x37')]);_0x6b012c[_0x0979('0x38')]=qs[_0x0979('0x30')](_['pick'](_0x35804d['query'],_0x53b714[_0x0979('0x30')]));if(_0x35804d[_0x0979('0x2e')][_0x0979('0x4e')]){_0x6b012c[_0x0979('0x38')]=_[_0x0979('0x3a')](_0x6b012c[_0x0979('0x38')],{'$or':_['map'](_0x6b012c[_0x0979('0x31')],function(_0x7e9555){var _0x373462={};_0x373462[_0x7e9555]={'$like':'%'+_0x35804d[_0x0979('0x2e')][_0x0979('0x4e')]+'%'};return _0x373462;})});}_0x6b012c=_['merge']({},_0x6b012c,_0x35804d['options']);return _0x16a6f6['getConfigurations'](_0x6b012c);}})[_0x0979('0x24')](function(_0x42d662){if(_0x42d662){_0x30f127=_0x42d662[_0x0979('0x33')];if(!_0x35804d[_0x0979('0x2e')][_0x0979('0x34')]('nolimit')){_0x6b012c[_0x0979('0x36')]=qs[_0x0979('0x36')](_0x35804d['query']['limit']);_0x6b012c['offset']=qs[_0x0979('0x1b')](_0x35804d[_0x0979('0x2e')]['offset']);}return _0x16a6f6[_0x0979('0x49')](_0x6b012c);}})[_0x0979('0x24')](function(_0x384534){if(_0x384534){return _0x384534?{'count':_0x30f127,'rows':_0x384534}:null;}})[_0x0979('0x24')](respondWithResult(_0x572d29,null))[_0x0979('0x40')](handleError(_0x572d29,null));};exports['addConfiguration']=function(_0x3b86b7,_0x273f05,_0x2dc1c0){if(_0x3b86b7['body']['id']){delete _0x3b86b7[_0x0979('0x45')]['id'];}return db[_0x0979('0x2a')][_0x0979('0x4a')]({'where':{'id':_0x3b86b7['params']['id']}})[_0x0979('0x24')](handleEntityNotFound(_0x273f05,null))[_0x0979('0x24')](function(_0xfdac16){if(_0xfdac16){_0x3b86b7['body'][_0x0979('0x4f')]=_0xfdac16['id'];_0x3b86b7[_0x0979('0x45')][_0x0979('0x50')]=integrations['getSubjects'](_0x3b86b7[_0x0979('0x45')][_0x0979('0x51')],_0x3b86b7['body']['type']);_0x3b86b7[_0x0979('0x45')][_0x0979('0x52')]=integrations[_0x0979('0x53')](_0x3b86b7['body'][_0x0979('0x51')],_0x3b86b7[_0x0979('0x45')][_0x0979('0x3b')]);return db[_0x0979('0x4b')][_0x0979('0x54')](_0x3b86b7[_0x0979('0x45')],{'include':[{'model':db['DeskField'],'as':'Subjects'},{'model':db['DeskField'],'as':_0x0979('0x52')}]});}return null;})[_0x0979('0x24')](respondWithResult(_0x273f05,null))[_0x0979('0x40')](handleError(_0x273f05,null));};exports[_0x0979('0x55')]=function(_0x51756e,_0x5c052d,_0x37faa6){var _0x1663c9=[{'name':_0x0979('0x56'),'label':_0x0979('0x56'),'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 _0x3886f7='';return db[_0x0979('0x2a')][_0x0979('0x4a')]({'where':{'id':_0x51756e[_0x0979('0x42')]['id']},'attributes':['id',_0x0979('0x57'),_0x0979('0x58'),_0x0979('0x59'),_0x0979('0x5a'),'consumerKey',_0x0979('0x5b'),_0x0979('0x5c'),'tokenSecret']})[_0x0979('0x24')](handleEntityNotFound(_0x5c052d,null))[_0x0979('0x24')](function(_0x59192a){if(_0x59192a){_0x3886f7=_0x59192a['remoteUri'];var _0x1d156b=_0x3886f7[_0x0979('0x5d')](-0x1);if(_0x1d156b==='/'){_0x3886f7=_0x3886f7['substring'](0x0,_0x3886f7[_0x0979('0x5e')](_0x1d156b));}var _0x2fc947={'method':_0x0979('0x5f'),'uri':util[_0x0979('0x60')]('%s/custom_fields',_0x3886f7),'headers':{'Content-Type':_0x0979('0x61'),'Accept':_0x0979('0x61')},'json':!![]};if(_0x59192a['authType']===_0x0979('0x62')){_0x2fc947[_0x0979('0x63')][_0x0979('0x64')]=util[_0x0979('0x60')](_0x0979('0x65'),new Buffer(util[_0x0979('0x60')]('%s:%s',_0x59192a['username'],_0x59192a[_0x0979('0x5a')]))[_0x0979('0x66')]('base64'));}return rp(_0x2fc947)[_0x0979('0x24')](function(_0x56da44){return _0x1663c9[_0x0979('0x67')](_[_0x0979('0x29')](_0x56da44[_0x0979('0x68')]['entries'],function(_0x29216b){return{'id':_0x29216b['name'],'name':_0x29216b[_0x0979('0x2d')],'type':_0x29216b[_0x0979('0x3b')],'active':_0x29216b[_0x0979('0x69')],'label':_0x29216b[_0x0979('0x6a')],'custom':!![]};}));});}})[_0x0979('0x24')](function(_0x454cd3){return{'count':_0x454cd3['length'],'rows':_0x454cd3};})[_0x0979('0x24')](respondWithResult(_0x5c052d,null))['catch'](function(_0x300799){var _0x555f2f=_0x51756e['query'][_0x0979('0x6b')]?0x1f4:_0x300799[_0x0979('0x6c')]||0x1f4;logger['error'](_0x0979('0x6d'),'getFields',_0x555f2f,JSON[_0x0979('0x6e')](_0x300799));delete _0x300799[_0x0979('0x2d')];if(_0x555f2f===0x191){_0x555f2f=0x190;}_0x5c052d[_0x0979('0x1a')](_0x555f2f)[_0x0979('0x27')](_0x51756e[_0x0979('0x2e')][_0x0979('0x6b')]?{'message':'Wrong\x20credentials','statusCode':_0x300799[_0x0979('0x6c')]}:_0x300799);});};