0a1eb98b7e4c79b7a9ad014d1dbad9b096a68bec
[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 _0x131e=['VIRTUAL','filter','include','findAll','catch','show','params','keys','rawAttributes','includeAll','options','find','create','body','destroy','findOne','FreshdeskConfiguration','pick','getConfigurations','nolimit','AccountId','Subjects','getSubjects','Descriptions','channel','FreshdeskField','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','toString','subject','agent','description','priority','group','source','ticket_type','company','remove','includes','default','label','choices','capitalize','test','statusCode','getFields','stringify','Wrong\x20credentials','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','save','update','then','error','stack','name','send','index','FreshdeskAccount','type','model','map','query','filters','intersection','attributes','fields','length','order','sort','where','merge'];(function(_0x2bf141,_0x31eac7){var _0x48277b=function(_0x9fe560){while(--_0x9fe560){_0x2bf141['push'](_0x2bf141['shift']());}};_0x48277b(++_0x31eac7);}(_0x131e,0x1ec));var _0xe131=function(_0x4d98cc,_0x157083){_0x4d98cc=_0x4d98cc-0x0;var _0x52a86c=_0x131e[_0x4d98cc];return _0x52a86c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe131('0x0'));var rp=require(_0xe131('0x1'));var moment=require(_0xe131('0x2'));var BPromise=require(_0xe131('0x3'));var Mustache=require(_0xe131('0x4'));var util=require(_0xe131('0x5'));var path=require('path');var sox=require(_0xe131('0x6'));var csv=require(_0xe131('0x7'));var ejs=require(_0xe131('0x8'));var fs=require('fs');var fs_extra=require(_0xe131('0x9'));var _=require(_0xe131('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xe131('0x7'));var querystring=require(_0xe131('0xb'));var Papa=require('papaparse');var Redis=require(_0xe131('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xe131('0xd'));var as=require(_0xe131('0xe'));var hardwareService=require(_0xe131('0xf'));var logger=require(_0xe131('0x10'))(_0xe131('0x11'));var utils=require(_0xe131('0x12'));var config=require(_0xe131('0x13'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x5f0434,_0x14ed9a){_0x14ed9a=_0x14ed9a||0xcc;return function(_0x1714db){if(_0x1714db){return _0x5f0434[_0xe131('0x14')](_0x14ed9a);}return _0x5f0434[_0xe131('0x15')](_0x14ed9a)[_0xe131('0x16')]();};}function respondWithResult(_0x420cc2,_0x436549){_0x436549=_0x436549||0xc8;return function(_0x27120f){if(_0x27120f){return _0x420cc2[_0xe131('0x15')](_0x436549)['json'](_0x27120f);}};}function respondWithFilteredResult(_0x4aa1bf,_0x4dfbdf){return function(_0x5a6ca9){if(_0x5a6ca9){var _0x4987dc=typeof _0x4dfbdf[_0xe131('0x17')]===_0xe131('0x18')&&typeof _0x4dfbdf[_0xe131('0x19')]==='undefined';var _0x503e86=_0x5a6ca9[_0xe131('0x1a')];var _0x2e2bf8=_0x4987dc?0x0:_0x4dfbdf[_0xe131('0x17')];var _0x1a1e03=_0x4987dc?_0x5a6ca9[_0xe131('0x1a')]:_0x4dfbdf[_0xe131('0x17')]+_0x4dfbdf['limit'];var _0x4690b0;if(_0x1a1e03>=_0x503e86){_0x1a1e03=_0x503e86;_0x4690b0=0xc8;}else{_0x4690b0=0xce;}_0x4aa1bf[_0xe131('0x15')](_0x4690b0);return _0x4aa1bf[_0xe131('0x1b')](_0xe131('0x1c'),_0x2e2bf8+'-'+_0x1a1e03+'/'+_0x503e86)[_0xe131('0x1d')](_0x5a6ca9);}return null;};}function patchUpdates(_0x49b19e){return function(_0x4c24e5){try{jsonpatch[_0xe131('0x1e')](_0x4c24e5,_0x49b19e,!![]);}catch(_0x41c4e1){return BPromise['reject'](_0x41c4e1);}return _0x4c24e5[_0xe131('0x1f')]();};}function saveUpdates(_0x55b0c5,_0x49f304){return function(_0x19d141){if(_0x19d141){return _0x19d141[_0xe131('0x20')](_0x55b0c5)[_0xe131('0x21')](function(_0xecb533){return _0xecb533;});}return null;};}function removeEntity(_0x166409,_0x225278){return function(_0x2bcb68){if(_0x2bcb68){return _0x2bcb68['destroy']()[_0xe131('0x21')](function(){_0x166409[_0xe131('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e7cb8,_0x330638){return function(_0x5b2f47){if(!_0x5b2f47){_0x4e7cb8[_0xe131('0x14')](0x194);}return _0x5b2f47;};}function handleError(_0x3b95bf,_0x51e109){_0x51e109=_0x51e109||0x1f4;return function(_0x44935b){logger[_0xe131('0x22')](_0x44935b[_0xe131('0x23')]);if(_0x44935b['name']){delete _0x44935b[_0xe131('0x24')];}_0x3b95bf[_0xe131('0x15')](_0x51e109)[_0xe131('0x25')](_0x44935b);};}exports[_0xe131('0x26')]=function(_0xb306b4,_0x2fce8c){var _0x1ff557={},_0x3414f1={},_0x9f8c66={'count':0x0,'rows':[]};var _0x341294=_['map'](db[_0xe131('0x27')]['rawAttributes'],function(_0x155c67){return{'name':_0x155c67['fieldName'],'type':_0x155c67[_0xe131('0x28')]['key']};});_0x3414f1[_0xe131('0x29')]=_[_0xe131('0x2a')](_0x341294,_0xe131('0x24'));_0x3414f1['query']=_['keys'](_0xb306b4[_0xe131('0x2b')]);_0x3414f1[_0xe131('0x2c')]=_[_0xe131('0x2d')](_0x3414f1[_0xe131('0x29')],_0x3414f1[_0xe131('0x2b')]);_0x1ff557[_0xe131('0x2e')]=_[_0xe131('0x2d')](_0x3414f1[_0xe131('0x29')],qs['fields'](_0xb306b4['query'][_0xe131('0x2f')]));_0x1ff557[_0xe131('0x2e')]=_0x1ff557[_0xe131('0x2e')][_0xe131('0x30')]?_0x1ff557[_0xe131('0x2e')]:_0x3414f1[_0xe131('0x29')];if(!_0xb306b4[_0xe131('0x2b')]['hasOwnProperty']('nolimit')){_0x1ff557[_0xe131('0x19')]=qs['limit'](_0xb306b4[_0xe131('0x2b')]['limit']);_0x1ff557[_0xe131('0x17')]=qs['offset'](_0xb306b4[_0xe131('0x2b')]['offset']);}_0x1ff557[_0xe131('0x31')]=qs[_0xe131('0x32')](_0xb306b4[_0xe131('0x2b')][_0xe131('0x32')]);_0x1ff557[_0xe131('0x33')]=qs[_0xe131('0x2c')](_['pick'](_0xb306b4[_0xe131('0x2b')],_0x3414f1['filters']),_0x341294);if(_0xb306b4[_0xe131('0x2b')]['filter']){_0x1ff557[_0xe131('0x33')]=_[_0xe131('0x34')](_0x1ff557[_0xe131('0x33')],{'$or':_[_0xe131('0x2a')](_0x341294,function(_0xd8cf9d){if(_0xd8cf9d[_0xe131('0x28')]!==_0xe131('0x35')){var _0x5a5498={};_0x5a5498[_0xd8cf9d[_0xe131('0x24')]]={'$like':'%'+_0xb306b4['query'][_0xe131('0x36')]+'%'};return _0x5a5498;}})});}_0x1ff557=_[_0xe131('0x34')]({},_0x1ff557,_0xb306b4['options']);var _0x5a9a34={'where':_0x1ff557[_0xe131('0x33')]};return db['FreshdeskAccount']['count'](_0x5a9a34)[_0xe131('0x21')](function(_0x5b82e5){_0x9f8c66[_0xe131('0x1a')]=_0x5b82e5;if(_0xb306b4[_0xe131('0x2b')]['includeAll']){_0x1ff557[_0xe131('0x37')]=[{'all':!![]}];}return db[_0xe131('0x27')][_0xe131('0x38')](_0x1ff557);})[_0xe131('0x21')](function(_0xa077dd){_0x9f8c66['rows']=_0xa077dd;return _0x9f8c66;})['then'](respondWithFilteredResult(_0x2fce8c,_0x1ff557))[_0xe131('0x39')](handleError(_0x2fce8c,null));};exports[_0xe131('0x3a')]=function(_0x2a9a07,_0x58fe5c){var _0x34f5ae={'raw':![],'where':{'id':_0x2a9a07[_0xe131('0x3b')]['id']}},_0x112e78={};_0x112e78['model']=_[_0xe131('0x3c')](db[_0xe131('0x27')][_0xe131('0x3d')]);_0x112e78['query']=_[_0xe131('0x3c')](_0x2a9a07[_0xe131('0x2b')]);_0x112e78[_0xe131('0x2c')]=_['intersection'](_0x112e78[_0xe131('0x29')],_0x112e78[_0xe131('0x2b')]);_0x34f5ae[_0xe131('0x2e')]=_[_0xe131('0x2d')](_0x112e78[_0xe131('0x29')],qs[_0xe131('0x2f')](_0x2a9a07[_0xe131('0x2b')]['fields']));_0x34f5ae['attributes']=_0x34f5ae[_0xe131('0x2e')][_0xe131('0x30')]?_0x34f5ae[_0xe131('0x2e')]:_0x112e78[_0xe131('0x29')];if(_0x2a9a07[_0xe131('0x2b')][_0xe131('0x3e')]){_0x34f5ae['include']=[{'all':!![]}];}_0x34f5ae=_[_0xe131('0x34')]({},_0x34f5ae,_0x2a9a07[_0xe131('0x3f')]);return db[_0xe131('0x27')][_0xe131('0x40')](_0x34f5ae)[_0xe131('0x21')](handleEntityNotFound(_0x58fe5c,null))[_0xe131('0x21')](respondWithResult(_0x58fe5c,null))['catch'](handleError(_0x58fe5c,null));};exports[_0xe131('0x41')]=function(_0x1ce9b7,_0x173a71){return db[_0xe131('0x27')][_0xe131('0x41')](_0x1ce9b7[_0xe131('0x42')],{})[_0xe131('0x21')](respondWithResult(_0x173a71,0xc9))[_0xe131('0x39')](handleError(_0x173a71,null));};exports[_0xe131('0x20')]=function(_0x320699,_0x442f06){if(_0x320699['body']['id']){delete _0x320699[_0xe131('0x42')]['id'];}return db['FreshdeskAccount']['find']({'where':{'id':_0x320699[_0xe131('0x3b')]['id']}})[_0xe131('0x21')](handleEntityNotFound(_0x442f06,null))[_0xe131('0x21')](saveUpdates(_0x320699[_0xe131('0x42')],null))[_0xe131('0x21')](respondWithResult(_0x442f06,null))[_0xe131('0x39')](handleError(_0x442f06,null));};exports[_0xe131('0x43')]=function(_0x398c39,_0x81206e){return db[_0xe131('0x27')][_0xe131('0x40')]({'where':{'id':_0x398c39['params']['id']}})['then'](handleEntityNotFound(_0x81206e,null))[_0xe131('0x21')](removeEntity(_0x81206e,null))[_0xe131('0x39')](handleError(_0x81206e,null));};exports['getConfigurations']=function(_0x56893d,_0x2b934b,_0x564a29){var _0x5b0ab5={};var _0xe0d786={};var _0x34404e;var _0x32e45d;return db[_0xe131('0x27')][_0xe131('0x44')]({'where':{'id':_0x56893d[_0xe131('0x3b')]['id']}})['then'](handleEntityNotFound(_0x2b934b,null))['then'](function(_0x40d0cb){if(_0x40d0cb){_0x34404e=_0x40d0cb;_0xe0d786[_0xe131('0x29')]=_['keys'](db[_0xe131('0x45')][_0xe131('0x3d')]);_0xe0d786[_0xe131('0x2b')]=_[_0xe131('0x3c')](_0x56893d[_0xe131('0x2b')]);_0xe0d786[_0xe131('0x2c')]=_['intersection'](_0xe0d786[_0xe131('0x29')],_0xe0d786['query']);_0x5b0ab5['attributes']=_[_0xe131('0x2d')](_0xe0d786[_0xe131('0x29')],qs['fields'](_0x56893d['query'][_0xe131('0x2f')]));_0x5b0ab5[_0xe131('0x2e')]=_0x5b0ab5[_0xe131('0x2e')]['length']?_0x5b0ab5[_0xe131('0x2e')]:_0xe0d786[_0xe131('0x29')];_0x5b0ab5[_0xe131('0x31')]=qs[_0xe131('0x32')](_0x56893d[_0xe131('0x2b')]['sort']);_0x5b0ab5[_0xe131('0x33')]=qs['filters'](_[_0xe131('0x46')](_0x56893d[_0xe131('0x2b')],_0xe0d786[_0xe131('0x2c')]));if(_0x56893d[_0xe131('0x2b')]['filter']){_0x5b0ab5['where']=_['merge'](_0x5b0ab5[_0xe131('0x33')],{'$or':_['map'](_0x5b0ab5[_0xe131('0x2e')],function(_0x44f69f){var _0x413b70={};_0x413b70[_0x44f69f]={'$like':'%'+_0x56893d[_0xe131('0x2b')][_0xe131('0x36')]+'%'};return _0x413b70;})});}_0x5b0ab5=_[_0xe131('0x34')]({},_0x5b0ab5,_0x56893d[_0xe131('0x3f')]);return _0x34404e[_0xe131('0x47')](_0x5b0ab5);}})[_0xe131('0x21')](function(_0x14d4b5){if(_0x14d4b5){_0x32e45d=_0x14d4b5['length'];if(!_0x56893d['query']['hasOwnProperty'](_0xe131('0x48'))){_0x5b0ab5[_0xe131('0x19')]=qs[_0xe131('0x19')](_0x56893d[_0xe131('0x2b')]['limit']);_0x5b0ab5[_0xe131('0x17')]=qs[_0xe131('0x17')](_0x56893d[_0xe131('0x2b')][_0xe131('0x17')]);}return _0x34404e[_0xe131('0x47')](_0x5b0ab5);}})[_0xe131('0x21')](function(_0x52143e){if(_0x52143e){return _0x52143e?{'count':_0x32e45d,'rows':_0x52143e}:null;}})['then'](respondWithResult(_0x2b934b,null))[_0xe131('0x39')](handleError(_0x2b934b,null));};exports['addConfiguration']=function(_0x484a2e,_0x537d66,_0x1c194a){if(_0x484a2e['body']['id']){delete _0x484a2e[_0xe131('0x42')]['id'];}return db['FreshdeskAccount'][_0xe131('0x44')]({'where':{'id':_0x484a2e[_0xe131('0x3b')]['id']}})[_0xe131('0x21')](handleEntityNotFound(_0x537d66,null))[_0xe131('0x21')](function(_0x47d96b){if(_0x47d96b){_0x484a2e[_0xe131('0x42')][_0xe131('0x49')]=_0x47d96b['id'];_0x484a2e[_0xe131('0x42')][_0xe131('0x4a')]=integrations[_0xe131('0x4b')](_0x484a2e[_0xe131('0x42')]['channel'],_0x484a2e[_0xe131('0x42')][_0xe131('0x28')]);_0x484a2e['body'][_0xe131('0x4c')]=integrations['getDescriptions'](_0x484a2e['body'][_0xe131('0x4d')],_0x484a2e['body'][_0xe131('0x28')]);return db[_0xe131('0x45')][_0xe131('0x41')](_0x484a2e['body'],{'include':[{'model':db[_0xe131('0x4e')],'as':_0xe131('0x4a')},{'model':db[_0xe131('0x4e')],'as':_0xe131('0x4c')}]});}return null;})[_0xe131('0x21')](respondWithResult(_0x537d66,null))[_0xe131('0x39')](handleError(_0x537d66,null));};exports['getFields']=function(_0x592750,_0x68f7c3,_0x50725b){var _0x10b7b9='';return db['FreshdeskAccount'][_0xe131('0x44')]({'where':{'id':_0x592750[_0xe131('0x3b')]['id']},'attributes':['id',_0xe131('0x4f'),_0xe131('0x50')]})[_0xe131('0x21')](handleEntityNotFound(_0x68f7c3,null))[_0xe131('0x21')](function(_0x59beee){if(_0x59beee){_0x10b7b9=_0x59beee[_0xe131('0x4f')];var _0x1a4bf2=_0x10b7b9[_0xe131('0x51')](-0x1);if(_0x1a4bf2==='/'){_0x10b7b9=_0x10b7b9[_0xe131('0x52')](0x0,_0x10b7b9[_0xe131('0x53')](_0x1a4bf2));}return rp({'method':_0xe131('0x54'),'uri':util[_0xe131('0x55')](_0xe131('0x56'),_0x10b7b9,_0xe131('0x57')),'headers':{'Authorization':util[_0xe131('0x55')](_0xe131('0x58'),new Buffer(util[_0xe131('0x55')]('%s:X',_0x59beee[_0xe131('0x50')]))[_0xe131('0x59')]('base64'))},'json':!![]});}})[_0xe131('0x21')](function(_0x34d77b){if(_0x34d77b){var _0x216901=['requester',_0xe131('0x5a'),_0xe131('0x5b'),_0xe131('0x5c'),_0xe131('0x15'),_0xe131('0x5d'),_0xe131('0x5e'),_0xe131('0x5f'),_0xe131('0x60'),_0xe131('0x5e'),_0xe131('0x61')];_[_0xe131('0x62')](_0x34d77b,function(_0xcc8cd7){return _0x216901[_0xe131('0x63')](_0xcc8cd7[_0xe131('0x24')])||!_0xcc8cd7[_0xe131('0x64')]&&_0xcc8cd7['type']!=='custom_text'&&_0xcc8cd7[_0xe131('0x28')]!=='custom_dropdown';});return{'count':_0x34d77b[_0xe131('0x30')],'rows':_[_0xe131('0x2a')](_0x34d77b,function(_0x885ea7){return{'id':_0x885ea7[_0xe131('0x24')],'name':_0x885ea7[_0xe131('0x65')],'custom':!_0x885ea7['default'],'options':_0x885ea7[_0xe131('0x66')]?_['map'](_0x885ea7[_0xe131('0x66')],function(_0x23f9a8){return{'name':_[_0xe131('0x67')](_0x23f9a8),'value':_0x23f9a8};}):[]};})};}})[_0xe131('0x21')](respondWithResult(_0x68f7c3,null))['catch'](function(_0x1642d6){var _0x2df523=_0x592750[_0xe131('0x2b')][_0xe131('0x68')]?0x1f4:_0x1642d6[_0xe131('0x69')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0xe131('0x6a'),_0x2df523,JSON[_0xe131('0x6b')](_0x1642d6));delete _0x1642d6[_0xe131('0x24')];if(_0x2df523===0x191){_0x2df523=0x190;}_0x68f7c3['status'](_0x2df523)['send'](_0x592750[_0xe131('0x2b')][_0xe131('0x68')]?{'message':_0xe131('0x6c'),'statusCode':_0x1642d6[_0xe131('0x69')]}:_0x1642d6);});};