10ac47b318e54870b9044f73844a01a023e4f46a
[motion2.git] / server / api / intFreshdeskAccount / intFreshdeskAccount.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 _0x112a=['apiKey','slice','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','toString','base64','requester','subject','description','priority','source','ticket_type','remove','includes','custom_text','custom_dropdown','label','default','choices','capitalize','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','where','merge','include','findAll','show','options','catch','create','body','params','destroy','find','getConfigurations','FreshdeskConfiguration','order','filter','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','FreshdeskField','Descriptions','findOne'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x112a,0x115));var _0xa112=function(_0x3a2e1b,_0x210e0b){_0x3a2e1b=_0x3a2e1b-0x0;var _0x4a64ed=_0x112a[_0x3a2e1b];return _0x4a64ed;};'use strict';var emlformat=require(_0xa112('0x0'));var rimraf=require(_0xa112('0x1'));var zipdir=require(_0xa112('0x2'));var jsonpatch=require(_0xa112('0x3'));var rp=require(_0xa112('0x4'));var moment=require(_0xa112('0x5'));var BPromise=require(_0xa112('0x6'));var Mustache=require(_0xa112('0x7'));var util=require(_0xa112('0x8'));var path=require(_0xa112('0x9'));var sox=require(_0xa112('0xa'));var csv=require(_0xa112('0xb'));var ejs=require(_0xa112('0xc'));var fs=require('fs');var fs_extra=require(_0xa112('0xd'));var _=require(_0xa112('0xe'));var squel=require(_0xa112('0xf'));var crypto=require(_0xa112('0x10'));var jsforce=require(_0xa112('0x11'));var deskjs=require(_0xa112('0x12'));var toCsv=require(_0xa112('0xb'));var querystring=require(_0xa112('0x13'));var Papa=require(_0xa112('0x14'));var Redis=require(_0xa112('0x15'));var authService=require('../../components/auth/service');var qs=require(_0xa112('0x16'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa112('0x17'));var logger=require(_0xa112('0x18'))(_0xa112('0x19'));var utils=require(_0xa112('0x1a'));var config=require(_0xa112('0x1b'));var licenseUtil=require(_0xa112('0x1c'));var db=require(_0xa112('0x1d'))['db'];var integrations=require(_0xa112('0x1e'));function respondWithStatusCode(_0xe52e4b,_0xb3af91){_0xb3af91=_0xb3af91||0xcc;return function(_0x24896c){if(_0x24896c){return _0xe52e4b[_0xa112('0x1f')](_0xb3af91);}return _0xe52e4b[_0xa112('0x20')](_0xb3af91)[_0xa112('0x21')]();};}function respondWithResult(_0x4ac80c,_0x2810ea){_0x2810ea=_0x2810ea||0xc8;return function(_0x3dfe44){if(_0x3dfe44){return _0x4ac80c[_0xa112('0x20')](_0x2810ea)[_0xa112('0x22')](_0x3dfe44);}};}function respondWithFilteredResult(_0x3271ff,_0x179d3e){return function(_0x37e7c9){if(_0x37e7c9){var _0x177d59=typeof _0x179d3e[_0xa112('0x23')]===_0xa112('0x24')&&typeof _0x179d3e[_0xa112('0x25')]===_0xa112('0x24');var _0x40ee4e=_0x37e7c9['count'];var _0x226242=_0x177d59?0x0:_0x179d3e[_0xa112('0x23')];var _0x3a55a3=_0x177d59?_0x37e7c9[_0xa112('0x26')]:_0x179d3e[_0xa112('0x23')]+_0x179d3e[_0xa112('0x25')];var _0x1c1b7e;if(_0x3a55a3>=_0x40ee4e){_0x3a55a3=_0x40ee4e;_0x1c1b7e=0xc8;}else{_0x1c1b7e=0xce;}_0x3271ff[_0xa112('0x20')](_0x1c1b7e);return _0x3271ff[_0xa112('0x27')](_0xa112('0x28'),_0x226242+'-'+_0x3a55a3+'/'+_0x40ee4e)['json'](_0x37e7c9);}return null;};}function patchUpdates(_0x55d05c){return function(_0x21896d){try{jsonpatch[_0xa112('0x29')](_0x21896d,_0x55d05c,!![]);}catch(_0x504500){return BPromise[_0xa112('0x2a')](_0x504500);}return _0x21896d[_0xa112('0x2b')]();};}function saveUpdates(_0x322afd,_0x2b4fc1){return function(_0x55a0d9){if(_0x55a0d9){return _0x55a0d9[_0xa112('0x2c')](_0x322afd)[_0xa112('0x2d')](function(_0x196d8b){return _0x196d8b;});}return null;};}function removeEntity(_0x461373,_0x540b7f){return function(_0x49ec06){if(_0x49ec06){return _0x49ec06['destroy']()[_0xa112('0x2d')](function(){_0x461373['status'](0xcc)[_0xa112('0x21')]();});}};}function handleEntityNotFound(_0x408b7a,_0x2f00df){return function(_0x4c036f){if(!_0x4c036f){_0x408b7a[_0xa112('0x1f')](0x194);}return _0x4c036f;};}function handleError(_0x18b983,_0x4f68c2){_0x4f68c2=_0x4f68c2||0x1f4;return function(_0x52a3c0){logger['error'](_0x52a3c0[_0xa112('0x2e')]);if(_0x52a3c0[_0xa112('0x2f')]){delete _0x52a3c0['name'];}_0x18b983[_0xa112('0x20')](_0x4f68c2)[_0xa112('0x30')](_0x52a3c0);};}exports[_0xa112('0x31')]=function(_0x21ff2a,_0x1d4497){var _0x48d6bd={},_0x468c41={},_0x33875d={'count':0x0,'rows':[]};var _0x5e6cc2=_[_0xa112('0x32')](db[_0xa112('0x33')][_0xa112('0x34')],function(_0xbe1ac7){return{'name':_0xbe1ac7[_0xa112('0x35')],'type':_0xbe1ac7[_0xa112('0x36')][_0xa112('0x37')]};});_0x468c41['model']=_['map'](_0x5e6cc2,_0xa112('0x2f'));_0x468c41[_0xa112('0x38')]=_[_0xa112('0x39')](_0x21ff2a['query']);_0x468c41[_0xa112('0x3a')]=_[_0xa112('0x3b')](_0x468c41[_0xa112('0x3c')],_0x468c41['query']);_0x48d6bd[_0xa112('0x3d')]=_[_0xa112('0x3b')](_0x468c41[_0xa112('0x3c')],qs[_0xa112('0x3e')](_0x21ff2a[_0xa112('0x38')][_0xa112('0x3e')]));_0x48d6bd[_0xa112('0x3d')]=_0x48d6bd[_0xa112('0x3d')][_0xa112('0x3f')]?_0x48d6bd[_0xa112('0x3d')]:_0x468c41[_0xa112('0x3c')];if(!_0x21ff2a[_0xa112('0x38')][_0xa112('0x40')](_0xa112('0x41'))){_0x48d6bd[_0xa112('0x25')]=qs[_0xa112('0x25')](_0x21ff2a[_0xa112('0x38')][_0xa112('0x25')]);_0x48d6bd[_0xa112('0x23')]=qs['offset'](_0x21ff2a[_0xa112('0x38')][_0xa112('0x23')]);}_0x48d6bd['order']=qs[_0xa112('0x42')](_0x21ff2a[_0xa112('0x38')]['sort']);_0x48d6bd['where']=qs[_0xa112('0x3a')](_[_0xa112('0x43')](_0x21ff2a[_0xa112('0x38')],_0x468c41[_0xa112('0x3a')]),_0x5e6cc2);if(_0x21ff2a[_0xa112('0x38')]['filter']){_0x48d6bd[_0xa112('0x44')]=_[_0xa112('0x45')](_0x48d6bd[_0xa112('0x44')],{'$or':_['map'](_0x5e6cc2,function(_0x1bbb58){if(_0x1bbb58[_0xa112('0x36')]!=='VIRTUAL'){var _0x9196a3={};_0x9196a3[_0x1bbb58['name']]={'$like':'%'+_0x21ff2a[_0xa112('0x38')]['filter']+'%'};return _0x9196a3;}})});}_0x48d6bd=_[_0xa112('0x45')]({},_0x48d6bd,_0x21ff2a['options']);var _0x4a0032={'where':_0x48d6bd[_0xa112('0x44')]};return db[_0xa112('0x33')][_0xa112('0x26')](_0x4a0032)[_0xa112('0x2d')](function(_0x176549){_0x33875d['count']=_0x176549;if(_0x21ff2a[_0xa112('0x38')]['includeAll']){_0x48d6bd[_0xa112('0x46')]=[{'all':!![]}];}return db['FreshdeskAccount'][_0xa112('0x47')](_0x48d6bd);})[_0xa112('0x2d')](function(_0x598467){_0x33875d['rows']=_0x598467;return _0x33875d;})['then'](respondWithFilteredResult(_0x1d4497,_0x48d6bd))['catch'](handleError(_0x1d4497,null));};exports[_0xa112('0x48')]=function(_0x57866e,_0x4b57cb){var _0x4a83e0={'raw':![],'where':{'id':_0x57866e['params']['id']}},_0x3ba626={};_0x3ba626['model']=_[_0xa112('0x39')](db['FreshdeskAccount'][_0xa112('0x34')]);_0x3ba626[_0xa112('0x38')]=_[_0xa112('0x39')](_0x57866e[_0xa112('0x38')]);_0x3ba626[_0xa112('0x3a')]=_[_0xa112('0x3b')](_0x3ba626[_0xa112('0x3c')],_0x3ba626[_0xa112('0x38')]);_0x4a83e0[_0xa112('0x3d')]=_[_0xa112('0x3b')](_0x3ba626[_0xa112('0x3c')],qs[_0xa112('0x3e')](_0x57866e['query']['fields']));_0x4a83e0[_0xa112('0x3d')]=_0x4a83e0[_0xa112('0x3d')][_0xa112('0x3f')]?_0x4a83e0[_0xa112('0x3d')]:_0x3ba626['model'];if(_0x57866e[_0xa112('0x38')]['includeAll']){_0x4a83e0[_0xa112('0x46')]=[{'all':!![]}];}_0x4a83e0=_[_0xa112('0x45')]({},_0x4a83e0,_0x57866e[_0xa112('0x49')]);return db[_0xa112('0x33')]['find'](_0x4a83e0)['then'](handleEntityNotFound(_0x4b57cb,null))[_0xa112('0x2d')](respondWithResult(_0x4b57cb,null))[_0xa112('0x4a')](handleError(_0x4b57cb,null));};exports[_0xa112('0x4b')]=function(_0x121b02,_0x22d3b1){return db[_0xa112('0x33')][_0xa112('0x4b')](_0x121b02[_0xa112('0x4c')],{})[_0xa112('0x2d')](respondWithResult(_0x22d3b1,0xc9))[_0xa112('0x4a')](handleError(_0x22d3b1,null));};exports[_0xa112('0x2c')]=function(_0x1d85ea,_0x17204f){if(_0x1d85ea[_0xa112('0x4c')]['id']){delete _0x1d85ea[_0xa112('0x4c')]['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x1d85ea[_0xa112('0x4d')]['id']}})[_0xa112('0x2d')](handleEntityNotFound(_0x17204f,null))['then'](saveUpdates(_0x1d85ea[_0xa112('0x4c')],null))[_0xa112('0x2d')](respondWithResult(_0x17204f,null))[_0xa112('0x4a')](handleError(_0x17204f,null));};exports[_0xa112('0x4e')]=function(_0x4ad225,_0x115032){return db[_0xa112('0x33')][_0xa112('0x4f')]({'where':{'id':_0x4ad225[_0xa112('0x4d')]['id']}})[_0xa112('0x2d')](handleEntityNotFound(_0x115032,null))[_0xa112('0x2d')](removeEntity(_0x115032,null))[_0xa112('0x4a')](handleError(_0x115032,null));};exports[_0xa112('0x50')]=function(_0x18b43d,_0x2de018,_0x407ec6){var _0x185786={};var _0x19e3be={};var _0x10534e;var _0x2a1ad8;return db[_0xa112('0x33')]['findOne']({'where':{'id':_0x18b43d[_0xa112('0x4d')]['id']}})[_0xa112('0x2d')](handleEntityNotFound(_0x2de018,null))[_0xa112('0x2d')](function(_0x8c4d07){if(_0x8c4d07){_0x10534e=_0x8c4d07;_0x19e3be[_0xa112('0x3c')]=_[_0xa112('0x39')](db[_0xa112('0x51')][_0xa112('0x34')]);_0x19e3be[_0xa112('0x38')]=_['keys'](_0x18b43d[_0xa112('0x38')]);_0x19e3be['filters']=_[_0xa112('0x3b')](_0x19e3be['model'],_0x19e3be[_0xa112('0x38')]);_0x185786[_0xa112('0x3d')]=_[_0xa112('0x3b')](_0x19e3be[_0xa112('0x3c')],qs['fields'](_0x18b43d[_0xa112('0x38')][_0xa112('0x3e')]));_0x185786[_0xa112('0x3d')]=_0x185786['attributes'][_0xa112('0x3f')]?_0x185786[_0xa112('0x3d')]:_0x19e3be[_0xa112('0x3c')];_0x185786[_0xa112('0x52')]=qs[_0xa112('0x42')](_0x18b43d['query']['sort']);_0x185786[_0xa112('0x44')]=qs[_0xa112('0x3a')](_[_0xa112('0x43')](_0x18b43d[_0xa112('0x38')],_0x19e3be[_0xa112('0x3a')]));if(_0x18b43d[_0xa112('0x38')][_0xa112('0x53')]){_0x185786[_0xa112('0x44')]=_[_0xa112('0x45')](_0x185786[_0xa112('0x44')],{'$or':_[_0xa112('0x32')](_0x185786[_0xa112('0x3d')],function(_0x40e15f){var _0x2482bd={};_0x2482bd[_0x40e15f]={'$like':'%'+_0x18b43d[_0xa112('0x38')][_0xa112('0x53')]+'%'};return _0x2482bd;})});}_0x185786=_['merge']({},_0x185786,_0x18b43d[_0xa112('0x49')]);return _0x10534e[_0xa112('0x50')](_0x185786);}})[_0xa112('0x2d')](function(_0x1449f5){if(_0x1449f5){_0x2a1ad8=_0x1449f5[_0xa112('0x3f')];if(!_0x18b43d[_0xa112('0x38')]['hasOwnProperty'](_0xa112('0x41'))){_0x185786[_0xa112('0x25')]=qs[_0xa112('0x25')](_0x18b43d[_0xa112('0x38')]['limit']);_0x185786[_0xa112('0x23')]=qs[_0xa112('0x23')](_0x18b43d['query'][_0xa112('0x23')]);}return _0x10534e[_0xa112('0x50')](_0x185786);}})['then'](function(_0x3cadfe){if(_0x3cadfe){return _0x3cadfe?{'count':_0x2a1ad8,'rows':_0x3cadfe}:null;}})['then'](respondWithResult(_0x2de018,null))[_0xa112('0x4a')](handleError(_0x2de018,null));};exports[_0xa112('0x54')]=function(_0x54d54c,_0x393667,_0x241fce){if(_0x54d54c['body']['id']){delete _0x54d54c[_0xa112('0x4c')]['id'];}return db[_0xa112('0x33')]['findOne']({'where':{'id':_0x54d54c['params']['id']}})[_0xa112('0x2d')](handleEntityNotFound(_0x393667,null))[_0xa112('0x2d')](function(_0x1498ea){if(_0x1498ea){_0x54d54c['body'][_0xa112('0x55')]=_0x1498ea['id'];_0x54d54c[_0xa112('0x4c')][_0xa112('0x56')]=integrations[_0xa112('0x57')](_0x54d54c[_0xa112('0x4c')]['channel'],_0x54d54c[_0xa112('0x4c')]['type']);_0x54d54c[_0xa112('0x4c')]['Descriptions']=integrations[_0xa112('0x58')](_0x54d54c['body']['channel'],_0x54d54c['body'][_0xa112('0x36')]);return db[_0xa112('0x51')][_0xa112('0x4b')](_0x54d54c[_0xa112('0x4c')],{'include':[{'model':db[_0xa112('0x59')],'as':'Subjects'},{'model':db[_0xa112('0x59')],'as':_0xa112('0x5a')}]});}return null;})[_0xa112('0x2d')](respondWithResult(_0x393667,null))[_0xa112('0x4a')](handleError(_0x393667,null));};exports['getFields']=function(_0x4025c0,_0x1dee16,_0x1bde5e){var _0x34a7e9='';return db['FreshdeskAccount'][_0xa112('0x5b')]({'where':{'id':_0x4025c0['params']['id']},'attributes':['id','remoteUri',_0xa112('0x5c')]})[_0xa112('0x2d')](handleEntityNotFound(_0x1dee16,null))[_0xa112('0x2d')](function(_0x4c7468){if(_0x4c7468){_0x34a7e9=_0x4c7468['remoteUri'];var _0x218cb8=_0x34a7e9[_0xa112('0x5d')](-0x1);if(_0x218cb8==='/'){_0x34a7e9=_0x34a7e9['substring'](0x0,_0x34a7e9[_0xa112('0x5e')](_0x218cb8));}return rp({'method':_0xa112('0x5f'),'uri':util[_0xa112('0x60')](_0xa112('0x61'),_0x34a7e9,_0xa112('0x62')),'headers':{'Authorization':util[_0xa112('0x60')](_0xa112('0x63'),new Buffer(util['format']('%s:X',_0x4c7468[_0xa112('0x5c')]))[_0xa112('0x64')](_0xa112('0x65')))},'json':!![]});}})[_0xa112('0x2d')](function(_0x166360){if(_0x166360){var _0xbe7a85=[_0xa112('0x66'),_0xa112('0x67'),'agent',_0xa112('0x68'),_0xa112('0x20'),_0xa112('0x69'),'group',_0xa112('0x6a'),_0xa112('0x6b'),'group','company'];_[_0xa112('0x6c')](_0x166360,function(_0x3ddcd9){return _0xbe7a85[_0xa112('0x6d')](_0x3ddcd9[_0xa112('0x2f')])||!_0x3ddcd9['default']&&_0x3ddcd9[_0xa112('0x36')]!==_0xa112('0x6e')&&_0x3ddcd9[_0xa112('0x36')]!==_0xa112('0x6f');});return{'count':_0x166360[_0xa112('0x3f')],'rows':_[_0xa112('0x32')](_0x166360,function(_0x458a91){return{'id':_0x458a91['name'],'name':_0x458a91[_0xa112('0x70')],'custom':!_0x458a91[_0xa112('0x71')],'options':_0x458a91[_0xa112('0x72')]?_['map'](_0x458a91[_0xa112('0x72')],function(_0x80d737){return{'name':_[_0xa112('0x73')](_0x80d737),'value':_0x80d737};}):[]};})};}})[_0xa112('0x2d')](respondWithResult(_0x1dee16,null))['catch'](function(_0x5a5694){var _0x449b83=_0x4025c0[_0xa112('0x38')][_0xa112('0x74')]?0x1f4:_0x5a5694[_0xa112('0x75')]||0x1f4;logger[_0xa112('0x76')](_0xa112('0x77'),_0xa112('0x78'),_0x449b83,JSON[_0xa112('0x79')](_0x5a5694));delete _0x5a5694[_0xa112('0x2f')];if(_0x449b83===0x191){_0x449b83=0x190;}_0x1dee16['status'](_0x449b83)[_0xa112('0x30')](_0x4025c0[_0xa112('0x38')][_0xa112('0x74')]?{'message':_0xa112('0x7a'),'statusCode':_0x5a5694['statusCode']}:_0x5a5694);});};