c3edda0e9b44287eb6a9aca89241c3e096e3ecbb
[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 _0x49aa=['channel','Descriptions','FreshdeskField','Subjects','getFields','apiKey','remoteUri','slice','substring','GET','api/v2/ticket_fields','format','Basic\x20%s','%s:X','toString','base64','subject','agent','description','priority','group','ticket_type','company','remove','custom_text','label','default','choices','test','getFields,\x20%s,\x20%s,\x20%s','stringify','send','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','stack','name','index','map','FreshdeskAccount','rawAttributes','fieldName','type','keys','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','includeAll','include','rows','catch','options','find','create','body','destroy','params','getConfigurations','FreshdeskConfiguration','addConfiguration','findOne','AccountId'];(function(_0x51a6e8,_0x3e754a){var _0xda6ca=function(_0x2bc0e4){while(--_0x2bc0e4){_0x51a6e8['push'](_0x51a6e8['shift']());}};_0xda6ca(++_0x3e754a);}(_0x49aa,0x173));var _0xa49a=function(_0x5480e8,_0x53641b){_0x5480e8=_0x5480e8-0x0;var _0x23daa9=_0x49aa[_0x5480e8];return _0x23daa9;};'use strict';var emlformat=require(_0xa49a('0x0'));var rimraf=require(_0xa49a('0x1'));var zipdir=require(_0xa49a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa49a('0x3'));var moment=require(_0xa49a('0x4'));var BPromise=require(_0xa49a('0x5'));var Mustache=require(_0xa49a('0x6'));var util=require(_0xa49a('0x7'));var path=require(_0xa49a('0x8'));var sox=require('sox');var csv=require(_0xa49a('0x9'));var ejs=require(_0xa49a('0xa'));var fs=require('fs');var fs_extra=require(_0xa49a('0xb'));var _=require(_0xa49a('0xc'));var squel=require(_0xa49a('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa49a('0xe'));var toCsv=require(_0xa49a('0x9'));var querystring=require(_0xa49a('0xf'));var Papa=require(_0xa49a('0x10'));var Redis=require(_0xa49a('0x11'));var authService=require(_0xa49a('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xa49a('0x13'));var hardwareService=require(_0xa49a('0x14'));var logger=require(_0xa49a('0x15'))(_0xa49a('0x16'));var utils=require(_0xa49a('0x17'));var config=require(_0xa49a('0x18'));var licenseUtil=require(_0xa49a('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0xa49a('0x1a'));function respondWithStatusCode(_0x355785,_0x1755ad){_0x1755ad=_0x1755ad||0xcc;return function(_0x406e6c){if(_0x406e6c){return _0x355785[_0xa49a('0x1b')](_0x1755ad);}return _0x355785[_0xa49a('0x1c')](_0x1755ad)[_0xa49a('0x1d')]();};}function respondWithResult(_0x55b4ef,_0x33021e){_0x33021e=_0x33021e||0xc8;return function(_0x1c0477){if(_0x1c0477){return _0x55b4ef[_0xa49a('0x1c')](_0x33021e)[_0xa49a('0x1e')](_0x1c0477);}};}function respondWithFilteredResult(_0x537aad,_0x35f807){return function(_0x70baa6){if(_0x70baa6){var _0x48b9e7=typeof _0x35f807[_0xa49a('0x1f')]===_0xa49a('0x20')&&typeof _0x35f807['limit']===_0xa49a('0x20');var _0x24a885=_0x70baa6[_0xa49a('0x21')];var _0x4c712d=_0x48b9e7?0x0:_0x35f807['offset'];var _0x3ad509=_0x48b9e7?_0x70baa6[_0xa49a('0x21')]:_0x35f807[_0xa49a('0x1f')]+_0x35f807[_0xa49a('0x22')];var _0x2cf98e;if(_0x3ad509>=_0x24a885){_0x3ad509=_0x24a885;_0x2cf98e=0xc8;}else{_0x2cf98e=0xce;}_0x537aad[_0xa49a('0x1c')](_0x2cf98e);return _0x537aad[_0xa49a('0x23')](_0xa49a('0x24'),_0x4c712d+'-'+_0x3ad509+'/'+_0x24a885)[_0xa49a('0x1e')](_0x70baa6);}return null;};}function patchUpdates(_0x54a95d){return function(_0x334d5f){try{jsonpatch[_0xa49a('0x25')](_0x334d5f,_0x54a95d,!![]);}catch(_0x855162){return BPromise['reject'](_0x855162);}return _0x334d5f[_0xa49a('0x26')]();};}function saveUpdates(_0x489328,_0x1cdbda){return function(_0x50c0ab){if(_0x50c0ab){return _0x50c0ab[_0xa49a('0x27')](_0x489328)[_0xa49a('0x28')](function(_0x8e597f){return _0x8e597f;});}return null;};}function removeEntity(_0x1a4f5c,_0xf533fb){return function(_0x5fb496){if(_0x5fb496){return _0x5fb496['destroy']()[_0xa49a('0x28')](function(){_0x1a4f5c[_0xa49a('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3300eb,_0x113e51){return function(_0x404c86){if(!_0x404c86){_0x3300eb['sendStatus'](0x194);}return _0x404c86;};}function handleError(_0x22dbb1,_0x3f3bcb){_0x3f3bcb=_0x3f3bcb||0x1f4;return function(_0x28b04f){logger['error'](_0x28b04f[_0xa49a('0x29')]);if(_0x28b04f[_0xa49a('0x2a')]){delete _0x28b04f[_0xa49a('0x2a')];}_0x22dbb1[_0xa49a('0x1c')](_0x3f3bcb)['send'](_0x28b04f);};}exports[_0xa49a('0x2b')]=function(_0x1d0704,_0x468d04){var _0x12aa63={},_0x1f5233={},_0x4576e5={'count':0x0,'rows':[]};var _0x53afb8=_[_0xa49a('0x2c')](db[_0xa49a('0x2d')][_0xa49a('0x2e')],function(_0x51833a){return{'name':_0x51833a[_0xa49a('0x2f')],'type':_0x51833a[_0xa49a('0x30')]['key']};});_0x1f5233['model']=_[_0xa49a('0x2c')](_0x53afb8,_0xa49a('0x2a'));_0x1f5233['query']=_[_0xa49a('0x31')](_0x1d0704[_0xa49a('0x32')]);_0x1f5233['filters']=_[_0xa49a('0x33')](_0x1f5233[_0xa49a('0x34')],_0x1f5233[_0xa49a('0x32')]);_0x12aa63[_0xa49a('0x35')]=_[_0xa49a('0x33')](_0x1f5233['model'],qs[_0xa49a('0x36')](_0x1d0704['query'][_0xa49a('0x36')]));_0x12aa63[_0xa49a('0x35')]=_0x12aa63[_0xa49a('0x35')][_0xa49a('0x37')]?_0x12aa63[_0xa49a('0x35')]:_0x1f5233[_0xa49a('0x34')];if(!_0x1d0704[_0xa49a('0x32')][_0xa49a('0x38')](_0xa49a('0x39'))){_0x12aa63[_0xa49a('0x22')]=qs[_0xa49a('0x22')](_0x1d0704[_0xa49a('0x32')][_0xa49a('0x22')]);_0x12aa63[_0xa49a('0x1f')]=qs[_0xa49a('0x1f')](_0x1d0704['query'][_0xa49a('0x1f')]);}_0x12aa63[_0xa49a('0x3a')]=qs['sort'](_0x1d0704[_0xa49a('0x32')][_0xa49a('0x3b')]);_0x12aa63[_0xa49a('0x3c')]=qs[_0xa49a('0x3d')](_[_0xa49a('0x3e')](_0x1d0704[_0xa49a('0x32')],_0x1f5233[_0xa49a('0x3d')]),_0x53afb8);if(_0x1d0704[_0xa49a('0x32')][_0xa49a('0x3f')]){_0x12aa63[_0xa49a('0x3c')]=_['merge'](_0x12aa63[_0xa49a('0x3c')],{'$or':_[_0xa49a('0x2c')](_0x53afb8,function(_0x17925b){if(_0x17925b[_0xa49a('0x30')]!==_0xa49a('0x40')){var _0x59307f={};_0x59307f[_0x17925b['name']]={'$like':'%'+_0x1d0704[_0xa49a('0x32')]['filter']+'%'};return _0x59307f;}})});}_0x12aa63=_[_0xa49a('0x41')]({},_0x12aa63,_0x1d0704['options']);var _0x125349={'where':_0x12aa63['where']};return db[_0xa49a('0x2d')][_0xa49a('0x21')](_0x125349)['then'](function(_0x451578){_0x4576e5[_0xa49a('0x21')]=_0x451578;if(_0x1d0704[_0xa49a('0x32')][_0xa49a('0x42')]){_0x12aa63[_0xa49a('0x43')]=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x12aa63);})[_0xa49a('0x28')](function(_0x5a7914){_0x4576e5[_0xa49a('0x44')]=_0x5a7914;return _0x4576e5;})[_0xa49a('0x28')](respondWithFilteredResult(_0x468d04,_0x12aa63))[_0xa49a('0x45')](handleError(_0x468d04,null));};exports['show']=function(_0xb27769,_0x29cb7c){var _0xd28952={'raw':![],'where':{'id':_0xb27769['params']['id']}},_0xd2e737={};_0xd2e737[_0xa49a('0x34')]=_[_0xa49a('0x31')](db['FreshdeskAccount'][_0xa49a('0x2e')]);_0xd2e737[_0xa49a('0x32')]=_[_0xa49a('0x31')](_0xb27769[_0xa49a('0x32')]);_0xd2e737['filters']=_['intersection'](_0xd2e737['model'],_0xd2e737[_0xa49a('0x32')]);_0xd28952['attributes']=_[_0xa49a('0x33')](_0xd2e737['model'],qs[_0xa49a('0x36')](_0xb27769['query'][_0xa49a('0x36')]));_0xd28952[_0xa49a('0x35')]=_0xd28952[_0xa49a('0x35')]['length']?_0xd28952[_0xa49a('0x35')]:_0xd2e737['model'];if(_0xb27769[_0xa49a('0x32')][_0xa49a('0x42')]){_0xd28952[_0xa49a('0x43')]=[{'all':!![]}];}_0xd28952=_[_0xa49a('0x41')]({},_0xd28952,_0xb27769[_0xa49a('0x46')]);return db['FreshdeskAccount'][_0xa49a('0x47')](_0xd28952)['then'](handleEntityNotFound(_0x29cb7c,null))['then'](respondWithResult(_0x29cb7c,null))[_0xa49a('0x45')](handleError(_0x29cb7c,null));};exports[_0xa49a('0x48')]=function(_0x473032,_0x3d6161){return db[_0xa49a('0x2d')][_0xa49a('0x48')](_0x473032[_0xa49a('0x49')],{})[_0xa49a('0x28')](respondWithResult(_0x3d6161,0xc9))[_0xa49a('0x45')](handleError(_0x3d6161,null));};exports[_0xa49a('0x27')]=function(_0x108e89,_0xee5e5a){if(_0x108e89[_0xa49a('0x49')]['id']){delete _0x108e89[_0xa49a('0x49')]['id'];}return db[_0xa49a('0x2d')]['find']({'where':{'id':_0x108e89['params']['id']}})['then'](handleEntityNotFound(_0xee5e5a,null))['then'](saveUpdates(_0x108e89[_0xa49a('0x49')],null))[_0xa49a('0x28')](respondWithResult(_0xee5e5a,null))[_0xa49a('0x45')](handleError(_0xee5e5a,null));};exports[_0xa49a('0x4a')]=function(_0x426d82,_0x41a7de){return db[_0xa49a('0x2d')][_0xa49a('0x47')]({'where':{'id':_0x426d82[_0xa49a('0x4b')]['id']}})[_0xa49a('0x28')](handleEntityNotFound(_0x41a7de,null))['then'](removeEntity(_0x41a7de,null))[_0xa49a('0x45')](handleError(_0x41a7de,null));};exports[_0xa49a('0x4c')]=function(_0x48e4ad,_0x4caf8f,_0x737d43){var _0x43d82e={};var _0xf0f693={};var _0x3a4b52;var _0x559c77;return db[_0xa49a('0x2d')]['findOne']({'where':{'id':_0x48e4ad[_0xa49a('0x4b')]['id']}})[_0xa49a('0x28')](handleEntityNotFound(_0x4caf8f,null))['then'](function(_0x20b955){if(_0x20b955){_0x3a4b52=_0x20b955;_0xf0f693[_0xa49a('0x34')]=_[_0xa49a('0x31')](db[_0xa49a('0x4d')]['rawAttributes']);_0xf0f693[_0xa49a('0x32')]=_[_0xa49a('0x31')](_0x48e4ad[_0xa49a('0x32')]);_0xf0f693[_0xa49a('0x3d')]=_[_0xa49a('0x33')](_0xf0f693['model'],_0xf0f693['query']);_0x43d82e[_0xa49a('0x35')]=_[_0xa49a('0x33')](_0xf0f693['model'],qs[_0xa49a('0x36')](_0x48e4ad[_0xa49a('0x32')]['fields']));_0x43d82e[_0xa49a('0x35')]=_0x43d82e[_0xa49a('0x35')][_0xa49a('0x37')]?_0x43d82e[_0xa49a('0x35')]:_0xf0f693[_0xa49a('0x34')];_0x43d82e[_0xa49a('0x3a')]=qs['sort'](_0x48e4ad[_0xa49a('0x32')][_0xa49a('0x3b')]);_0x43d82e[_0xa49a('0x3c')]=qs['filters'](_['pick'](_0x48e4ad[_0xa49a('0x32')],_0xf0f693['filters']));if(_0x48e4ad[_0xa49a('0x32')][_0xa49a('0x3f')]){_0x43d82e[_0xa49a('0x3c')]=_[_0xa49a('0x41')](_0x43d82e[_0xa49a('0x3c')],{'$or':_[_0xa49a('0x2c')](_0x43d82e[_0xa49a('0x35')],function(_0x20a918){var _0x3e0ab2={};_0x3e0ab2[_0x20a918]={'$like':'%'+_0x48e4ad[_0xa49a('0x32')][_0xa49a('0x3f')]+'%'};return _0x3e0ab2;})});}_0x43d82e=_[_0xa49a('0x41')]({},_0x43d82e,_0x48e4ad[_0xa49a('0x46')]);return _0x3a4b52['getConfigurations'](_0x43d82e);}})[_0xa49a('0x28')](function(_0x5cc961){if(_0x5cc961){_0x559c77=_0x5cc961[_0xa49a('0x37')];if(!_0x48e4ad[_0xa49a('0x32')]['hasOwnProperty']('nolimit')){_0x43d82e[_0xa49a('0x22')]=qs[_0xa49a('0x22')](_0x48e4ad[_0xa49a('0x32')][_0xa49a('0x22')]);_0x43d82e[_0xa49a('0x1f')]=qs[_0xa49a('0x1f')](_0x48e4ad[_0xa49a('0x32')][_0xa49a('0x1f')]);}return _0x3a4b52[_0xa49a('0x4c')](_0x43d82e);}})['then'](function(_0x14d2d0){if(_0x14d2d0){return _0x14d2d0?{'count':_0x559c77,'rows':_0x14d2d0}:null;}})[_0xa49a('0x28')](respondWithResult(_0x4caf8f,null))[_0xa49a('0x45')](handleError(_0x4caf8f,null));};exports[_0xa49a('0x4e')]=function(_0x190f2a,_0x525cef,_0x1452fb){if(_0x190f2a[_0xa49a('0x49')]['id']){delete _0x190f2a[_0xa49a('0x49')]['id'];}return db[_0xa49a('0x2d')][_0xa49a('0x4f')]({'where':{'id':_0x190f2a[_0xa49a('0x4b')]['id']}})[_0xa49a('0x28')](handleEntityNotFound(_0x525cef,null))['then'](function(_0x382396){if(_0x382396){_0x190f2a[_0xa49a('0x49')][_0xa49a('0x50')]=_0x382396['id'];_0x190f2a[_0xa49a('0x49')]['Subjects']=integrations['getSubjects'](_0x190f2a[_0xa49a('0x49')][_0xa49a('0x51')],_0x190f2a[_0xa49a('0x49')][_0xa49a('0x30')]);_0x190f2a[_0xa49a('0x49')][_0xa49a('0x52')]=integrations['getDescriptions'](_0x190f2a[_0xa49a('0x49')]['channel'],_0x190f2a[_0xa49a('0x49')][_0xa49a('0x30')]);return db[_0xa49a('0x4d')][_0xa49a('0x48')](_0x190f2a['body'],{'include':[{'model':db[_0xa49a('0x53')],'as':_0xa49a('0x54')},{'model':db[_0xa49a('0x53')],'as':'Descriptions'}]});}return null;})[_0xa49a('0x28')](respondWithResult(_0x525cef,null))[_0xa49a('0x45')](handleError(_0x525cef,null));};exports[_0xa49a('0x55')]=function(_0xe65f36,_0x19e21d,_0x42d6b2){var _0xf3f1fa='';return db[_0xa49a('0x2d')]['findOne']({'where':{'id':_0xe65f36[_0xa49a('0x4b')]['id']},'attributes':['id','remoteUri',_0xa49a('0x56')]})[_0xa49a('0x28')](handleEntityNotFound(_0x19e21d,null))[_0xa49a('0x28')](function(_0x4e8e6e){if(_0x4e8e6e){_0xf3f1fa=_0x4e8e6e[_0xa49a('0x57')];var _0x5b6938=_0xf3f1fa[_0xa49a('0x58')](-0x1);if(_0x5b6938==='/'){_0xf3f1fa=_0xf3f1fa[_0xa49a('0x59')](0x0,_0xf3f1fa['lastIndexOf'](_0x5b6938));}return rp({'method':_0xa49a('0x5a'),'uri':util['format']('%s/%s',_0xf3f1fa,_0xa49a('0x5b')),'headers':{'Authorization':util[_0xa49a('0x5c')](_0xa49a('0x5d'),new Buffer(util['format'](_0xa49a('0x5e'),_0x4e8e6e[_0xa49a('0x56')]))[_0xa49a('0x5f')](_0xa49a('0x60')))},'json':!![]});}})['then'](function(_0x2cb168){if(_0x2cb168){var _0x572135=['requester',_0xa49a('0x61'),_0xa49a('0x62'),_0xa49a('0x63'),'status',_0xa49a('0x64'),_0xa49a('0x65'),'source',_0xa49a('0x66'),_0xa49a('0x65'),_0xa49a('0x67')];_[_0xa49a('0x68')](_0x2cb168,function(_0x32bfc4){return _0x572135['includes'](_0x32bfc4['name'])||!_0x32bfc4['default']&&_0x32bfc4[_0xa49a('0x30')]!==_0xa49a('0x69')&&_0x32bfc4[_0xa49a('0x30')]!=='custom_dropdown';});return{'count':_0x2cb168[_0xa49a('0x37')],'rows':_[_0xa49a('0x2c')](_0x2cb168,function(_0x47844f){return{'id':_0x47844f[_0xa49a('0x2a')],'name':_0x47844f[_0xa49a('0x6a')],'custom':!_0x47844f[_0xa49a('0x6b')],'options':_0x47844f[_0xa49a('0x6c')]?_[_0xa49a('0x2c')](_0x47844f[_0xa49a('0x6c')],function(_0x484827){return{'name':_['capitalize'](_0x484827),'value':_0x484827};}):[]};})};}})['then'](respondWithResult(_0x19e21d,null))[_0xa49a('0x45')](function(_0x53ae13){var _0x243069=_0xe65f36['query'][_0xa49a('0x6d')]?0x1f4:_0x53ae13['statusCode']||0x1f4;logger['error'](_0xa49a('0x6e'),_0xa49a('0x55'),_0x243069,JSON[_0xa49a('0x6f')](_0x53ae13));delete _0x53ae13[_0xa49a('0x2a')];if(_0x243069===0x191){_0x243069=0x190;}_0x19e21d[_0xa49a('0x1c')](_0x243069)[_0xa49a('0x70')](_0xe65f36['query'][_0xa49a('0x6d')]?{'message':'Wrong\x20credentials','statusCode':_0x53ae13['statusCode']}:_0x53ae13);});};