9ad96c3d50a7686eb4393e56cc8aafec20ecbf45
[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 _0xb01a=['model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','rows','catch','show','params','length','find','create','body','getConfigurations','findOne','FreshdeskConfiguration','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','channel','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','%s/%s','api/v2/ticket_fields','format','Basic\x20%s','toString','base64','requester','subject','description','priority','group','source','ticket_type','company','remove','includes','default','custom_text','custom_dropdown','choices','capitalize','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type'];(function(_0x3bea4,_0x56a1a5){var _0xf8e956=function(_0x489bd7){while(--_0x489bd7){_0x3bea4['push'](_0x3bea4['shift']());}};_0xf8e956(++_0x56a1a5);}(_0xb01a,0x1a1));var _0xab01=function(_0x3c371a,_0x3893fa){_0x3c371a=_0x3c371a-0x0;var _0x1ad099=_0xb01a[_0x3c371a];return _0x1ad099;};'use strict';var emlformat=require(_0xab01('0x0'));var rimraf=require(_0xab01('0x1'));var zipdir=require(_0xab01('0x2'));var jsonpatch=require(_0xab01('0x3'));var rp=require(_0xab01('0x4'));var moment=require(_0xab01('0x5'));var BPromise=require(_0xab01('0x6'));var Mustache=require(_0xab01('0x7'));var util=require(_0xab01('0x8'));var path=require(_0xab01('0x9'));var sox=require(_0xab01('0xa'));var csv=require(_0xab01('0xb'));var ejs=require(_0xab01('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xab01('0xd'));var squel=require(_0xab01('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xab01('0xf'));var toCsv=require(_0xab01('0xb'));var querystring=require('querystring');var Papa=require(_0xab01('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xab01('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xab01('0x12'));var logger=require(_0xab01('0x13'))('api');var utils=require(_0xab01('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xab01('0x15'))['db'];var integrations=require(_0xab01('0x16'));function respondWithStatusCode(_0x1ededa,_0xe9d23c){_0xe9d23c=_0xe9d23c||0xcc;return function(_0x449402){if(_0x449402){return _0x1ededa[_0xab01('0x17')](_0xe9d23c);}return _0x1ededa[_0xab01('0x18')](_0xe9d23c)[_0xab01('0x19')]();};}function respondWithResult(_0x509ceb,_0x4812c6){_0x4812c6=_0x4812c6||0xc8;return function(_0x512124){if(_0x512124){return _0x509ceb['status'](_0x4812c6)[_0xab01('0x1a')](_0x512124);}};}function respondWithFilteredResult(_0x4c0557,_0x2bfa8a){return function(_0x2d9c23){if(_0x2d9c23){var _0x26af11=typeof _0x2bfa8a[_0xab01('0x1b')]==='undefined'&&typeof _0x2bfa8a[_0xab01('0x1c')]==='undefined';var _0x2adbe5=_0x2d9c23[_0xab01('0x1d')];var _0x47e994=_0x26af11?0x0:_0x2bfa8a['offset'];var _0x22dd53=_0x26af11?_0x2d9c23[_0xab01('0x1d')]:_0x2bfa8a[_0xab01('0x1b')]+_0x2bfa8a[_0xab01('0x1c')];var _0x290d30;if(_0x22dd53>=_0x2adbe5){_0x22dd53=_0x2adbe5;_0x290d30=0xc8;}else{_0x290d30=0xce;}_0x4c0557[_0xab01('0x18')](_0x290d30);return _0x4c0557[_0xab01('0x1e')](_0xab01('0x1f'),_0x47e994+'-'+_0x22dd53+'/'+_0x2adbe5)[_0xab01('0x1a')](_0x2d9c23);}return null;};}function patchUpdates(_0x331daf){return function(_0x50d0bd){try{jsonpatch[_0xab01('0x20')](_0x50d0bd,_0x331daf,!![]);}catch(_0x80802a){return BPromise[_0xab01('0x21')](_0x80802a);}return _0x50d0bd[_0xab01('0x22')]();};}function saveUpdates(_0x405c93,_0x180344){return function(_0x380176){if(_0x380176){return _0x380176[_0xab01('0x23')](_0x405c93)['then'](function(_0x3fba2e){return _0x3fba2e;});}return null;};}function removeEntity(_0x152d5e,_0x27b430){return function(_0x343ae6){if(_0x343ae6){return _0x343ae6[_0xab01('0x24')]()[_0xab01('0x25')](function(){_0x152d5e[_0xab01('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1efebe,_0x16a719){return function(_0x2758d){if(!_0x2758d){_0x1efebe[_0xab01('0x17')](0x194);}return _0x2758d;};}function handleError(_0x27e549,_0x46088d){_0x46088d=_0x46088d||0x1f4;return function(_0x46af29){logger['error'](_0x46af29[_0xab01('0x26')]);if(_0x46af29[_0xab01('0x27')]){delete _0x46af29[_0xab01('0x27')];}_0x27e549[_0xab01('0x18')](_0x46088d)[_0xab01('0x28')](_0x46af29);};}exports[_0xab01('0x29')]=function(_0x51a927,_0x3c2474){var _0x209e10={},_0x4a22c0={},_0x65afdd={'count':0x0,'rows':[]};var _0x16cc49=_[_0xab01('0x2a')](db[_0xab01('0x2b')][_0xab01('0x2c')],function(_0x18b4de){return{'name':_0x18b4de[_0xab01('0x2d')],'type':_0x18b4de[_0xab01('0x2e')]['key']};});_0x4a22c0[_0xab01('0x2f')]=_[_0xab01('0x2a')](_0x16cc49,'name');_0x4a22c0[_0xab01('0x30')]=_[_0xab01('0x31')](_0x51a927[_0xab01('0x30')]);_0x4a22c0[_0xab01('0x32')]=_[_0xab01('0x33')](_0x4a22c0[_0xab01('0x2f')],_0x4a22c0['query']);_0x209e10[_0xab01('0x34')]=_[_0xab01('0x33')](_0x4a22c0[_0xab01('0x2f')],qs[_0xab01('0x35')](_0x51a927[_0xab01('0x30')][_0xab01('0x35')]));_0x209e10[_0xab01('0x34')]=_0x209e10['attributes']['length']?_0x209e10['attributes']:_0x4a22c0[_0xab01('0x2f')];if(!_0x51a927[_0xab01('0x30')][_0xab01('0x36')](_0xab01('0x37'))){_0x209e10[_0xab01('0x1c')]=qs[_0xab01('0x1c')](_0x51a927[_0xab01('0x30')][_0xab01('0x1c')]);_0x209e10[_0xab01('0x1b')]=qs[_0xab01('0x1b')](_0x51a927[_0xab01('0x30')][_0xab01('0x1b')]);}_0x209e10[_0xab01('0x38')]=qs[_0xab01('0x39')](_0x51a927[_0xab01('0x30')][_0xab01('0x39')]);_0x209e10['where']=qs['filters'](_[_0xab01('0x3a')](_0x51a927[_0xab01('0x30')],_0x4a22c0['filters']),_0x16cc49);if(_0x51a927[_0xab01('0x30')][_0xab01('0x3b')]){_0x209e10[_0xab01('0x3c')]=_['merge'](_0x209e10[_0xab01('0x3c')],{'$or':_['map'](_0x16cc49,function(_0x535b32){if(_0x535b32[_0xab01('0x2e')]!==_0xab01('0x3d')){var _0x595017={};_0x595017[_0x535b32[_0xab01('0x27')]]={'$like':'%'+_0x51a927[_0xab01('0x30')]['filter']+'%'};return _0x595017;}})});}_0x209e10=_[_0xab01('0x3e')]({},_0x209e10,_0x51a927[_0xab01('0x3f')]);var _0x265ec9={'where':_0x209e10[_0xab01('0x3c')]};return db[_0xab01('0x2b')][_0xab01('0x1d')](_0x265ec9)['then'](function(_0x109ad6){_0x65afdd[_0xab01('0x1d')]=_0x109ad6;if(_0x51a927[_0xab01('0x30')][_0xab01('0x40')]){_0x209e10[_0xab01('0x41')]=[{'all':!![]}];}return db['FreshdeskAccount']['findAll'](_0x209e10);})['then'](function(_0x3132d5){_0x65afdd[_0xab01('0x42')]=_0x3132d5;return _0x65afdd;})['then'](respondWithFilteredResult(_0x3c2474,_0x209e10))[_0xab01('0x43')](handleError(_0x3c2474,null));};exports[_0xab01('0x44')]=function(_0x1df4d9,_0x7d039e){var _0x3ef323={'raw':![],'where':{'id':_0x1df4d9[_0xab01('0x45')]['id']}},_0x1cb057={};_0x1cb057[_0xab01('0x2f')]=_[_0xab01('0x31')](db[_0xab01('0x2b')][_0xab01('0x2c')]);_0x1cb057[_0xab01('0x30')]=_[_0xab01('0x31')](_0x1df4d9[_0xab01('0x30')]);_0x1cb057[_0xab01('0x32')]=_[_0xab01('0x33')](_0x1cb057[_0xab01('0x2f')],_0x1cb057['query']);_0x3ef323['attributes']=_[_0xab01('0x33')](_0x1cb057[_0xab01('0x2f')],qs[_0xab01('0x35')](_0x1df4d9[_0xab01('0x30')][_0xab01('0x35')]));_0x3ef323[_0xab01('0x34')]=_0x3ef323['attributes'][_0xab01('0x46')]?_0x3ef323[_0xab01('0x34')]:_0x1cb057['model'];if(_0x1df4d9[_0xab01('0x30')][_0xab01('0x40')]){_0x3ef323[_0xab01('0x41')]=[{'all':!![]}];}_0x3ef323=_['merge']({},_0x3ef323,_0x1df4d9[_0xab01('0x3f')]);return db[_0xab01('0x2b')][_0xab01('0x47')](_0x3ef323)[_0xab01('0x25')](handleEntityNotFound(_0x7d039e,null))[_0xab01('0x25')](respondWithResult(_0x7d039e,null))['catch'](handleError(_0x7d039e,null));};exports[_0xab01('0x48')]=function(_0x5e5847,_0x79fa9f){return db[_0xab01('0x2b')][_0xab01('0x48')](_0x5e5847['body'],{})[_0xab01('0x25')](respondWithResult(_0x79fa9f,0xc9))[_0xab01('0x43')](handleError(_0x79fa9f,null));};exports[_0xab01('0x23')]=function(_0x1b11c4,_0x5e4316){if(_0x1b11c4[_0xab01('0x49')]['id']){delete _0x1b11c4[_0xab01('0x49')]['id'];}return db[_0xab01('0x2b')][_0xab01('0x47')]({'where':{'id':_0x1b11c4[_0xab01('0x45')]['id']}})['then'](handleEntityNotFound(_0x5e4316,null))[_0xab01('0x25')](saveUpdates(_0x1b11c4[_0xab01('0x49')],null))['then'](respondWithResult(_0x5e4316,null))[_0xab01('0x43')](handleError(_0x5e4316,null));};exports[_0xab01('0x24')]=function(_0x182d45,_0x1ccdbd){return db[_0xab01('0x2b')][_0xab01('0x47')]({'where':{'id':_0x182d45[_0xab01('0x45')]['id']}})['then'](handleEntityNotFound(_0x1ccdbd,null))['then'](removeEntity(_0x1ccdbd,null))[_0xab01('0x43')](handleError(_0x1ccdbd,null));};exports[_0xab01('0x4a')]=function(_0x1a0a14,_0x35ac7b,_0x4de07a){var _0x4d181a={};var _0x7eec31={};var _0x460fb7;var _0x1f1b6f;return db[_0xab01('0x2b')][_0xab01('0x4b')]({'where':{'id':_0x1a0a14[_0xab01('0x45')]['id']}})[_0xab01('0x25')](handleEntityNotFound(_0x35ac7b,null))['then'](function(_0x4f2af6){if(_0x4f2af6){_0x460fb7=_0x4f2af6;_0x7eec31[_0xab01('0x2f')]=_[_0xab01('0x31')](db[_0xab01('0x4c')][_0xab01('0x2c')]);_0x7eec31[_0xab01('0x30')]=_['keys'](_0x1a0a14['query']);_0x7eec31['filters']=_[_0xab01('0x33')](_0x7eec31[_0xab01('0x2f')],_0x7eec31[_0xab01('0x30')]);_0x4d181a[_0xab01('0x34')]=_[_0xab01('0x33')](_0x7eec31[_0xab01('0x2f')],qs[_0xab01('0x35')](_0x1a0a14[_0xab01('0x30')]['fields']));_0x4d181a[_0xab01('0x34')]=_0x4d181a[_0xab01('0x34')][_0xab01('0x46')]?_0x4d181a[_0xab01('0x34')]:_0x7eec31[_0xab01('0x2f')];_0x4d181a[_0xab01('0x38')]=qs[_0xab01('0x39')](_0x1a0a14[_0xab01('0x30')][_0xab01('0x39')]);_0x4d181a[_0xab01('0x3c')]=qs[_0xab01('0x32')](_[_0xab01('0x3a')](_0x1a0a14[_0xab01('0x30')],_0x7eec31[_0xab01('0x32')]));if(_0x1a0a14[_0xab01('0x30')][_0xab01('0x3b')]){_0x4d181a[_0xab01('0x3c')]=_['merge'](_0x4d181a[_0xab01('0x3c')],{'$or':_[_0xab01('0x2a')](_0x4d181a['attributes'],function(_0xacd26f){var _0x40a3ab={};_0x40a3ab[_0xacd26f]={'$like':'%'+_0x1a0a14[_0xab01('0x30')][_0xab01('0x3b')]+'%'};return _0x40a3ab;})});}_0x4d181a=_[_0xab01('0x3e')]({},_0x4d181a,_0x1a0a14[_0xab01('0x3f')]);return _0x460fb7['getConfigurations'](_0x4d181a);}})[_0xab01('0x25')](function(_0x96867e){if(_0x96867e){_0x1f1b6f=_0x96867e['length'];if(!_0x1a0a14['query']['hasOwnProperty'](_0xab01('0x37'))){_0x4d181a[_0xab01('0x1c')]=qs[_0xab01('0x1c')](_0x1a0a14[_0xab01('0x30')][_0xab01('0x1c')]);_0x4d181a['offset']=qs[_0xab01('0x1b')](_0x1a0a14[_0xab01('0x30')][_0xab01('0x1b')]);}return _0x460fb7[_0xab01('0x4a')](_0x4d181a);}})[_0xab01('0x25')](function(_0x117477){if(_0x117477){return _0x117477?{'count':_0x1f1b6f,'rows':_0x117477}:null;}})[_0xab01('0x25')](respondWithResult(_0x35ac7b,null))[_0xab01('0x43')](handleError(_0x35ac7b,null));};exports[_0xab01('0x4d')]=function(_0x4a260b,_0x9f3dba,_0x3a5f47){if(_0x4a260b['body']['id']){delete _0x4a260b[_0xab01('0x49')]['id'];}return db[_0xab01('0x2b')][_0xab01('0x4b')]({'where':{'id':_0x4a260b[_0xab01('0x45')]['id']}})[_0xab01('0x25')](handleEntityNotFound(_0x9f3dba,null))[_0xab01('0x25')](function(_0x5505da){if(_0x5505da){_0x4a260b[_0xab01('0x49')][_0xab01('0x4e')]=_0x5505da['id'];_0x4a260b[_0xab01('0x49')][_0xab01('0x4f')]=integrations[_0xab01('0x50')](_0x4a260b[_0xab01('0x49')]['channel'],_0x4a260b[_0xab01('0x49')][_0xab01('0x2e')]);_0x4a260b['body'][_0xab01('0x51')]=integrations['getDescriptions'](_0x4a260b['body'][_0xab01('0x52')],_0x4a260b['body']['type']);return db[_0xab01('0x4c')]['create'](_0x4a260b[_0xab01('0x49')],{'include':[{'model':db[_0xab01('0x53')],'as':'Subjects'},{'model':db['FreshdeskField'],'as':'Descriptions'}]});}return null;})[_0xab01('0x25')](respondWithResult(_0x9f3dba,null))[_0xab01('0x43')](handleError(_0x9f3dba,null));};exports[_0xab01('0x54')]=function(_0x38e126,_0x15e56b,_0x445263){var _0x1cf09f='';return db[_0xab01('0x2b')]['findOne']({'where':{'id':_0x38e126['params']['id']},'attributes':['id',_0xab01('0x55'),_0xab01('0x56')]})[_0xab01('0x25')](handleEntityNotFound(_0x15e56b,null))[_0xab01('0x25')](function(_0x1a9904){if(_0x1a9904){_0x1cf09f=_0x1a9904['remoteUri'];var _0x46ac1e=_0x1cf09f[_0xab01('0x57')](-0x1);if(_0x46ac1e==='/'){_0x1cf09f=_0x1cf09f[_0xab01('0x58')](0x0,_0x1cf09f[_0xab01('0x59')](_0x46ac1e));}return rp({'method':'GET','uri':util['format'](_0xab01('0x5a'),_0x1cf09f,_0xab01('0x5b')),'headers':{'Authorization':util[_0xab01('0x5c')](_0xab01('0x5d'),new Buffer(util[_0xab01('0x5c')]('%s:X',_0x1a9904[_0xab01('0x56')]))[_0xab01('0x5e')](_0xab01('0x5f')))},'json':!![]});}})[_0xab01('0x25')](function(_0xb682dc){if(_0xb682dc){var _0x16d2ee=[_0xab01('0x60'),_0xab01('0x61'),'agent',_0xab01('0x62'),_0xab01('0x18'),_0xab01('0x63'),_0xab01('0x64'),_0xab01('0x65'),_0xab01('0x66'),_0xab01('0x64'),_0xab01('0x67')];_[_0xab01('0x68')](_0xb682dc,function(_0x5db277){return _0x16d2ee[_0xab01('0x69')](_0x5db277[_0xab01('0x27')])||!_0x5db277[_0xab01('0x6a')]&&_0x5db277['type']!==_0xab01('0x6b')&&_0x5db277['type']!==_0xab01('0x6c');});return{'count':_0xb682dc['length'],'rows':_[_0xab01('0x2a')](_0xb682dc,function(_0x3ad39c){return{'id':_0x3ad39c[_0xab01('0x27')],'name':_0x3ad39c['label'],'custom':!_0x3ad39c[_0xab01('0x6a')],'options':_0x3ad39c[_0xab01('0x6d')]?_[_0xab01('0x2a')](_0x3ad39c[_0xab01('0x6d')],function(_0x584a0b){return{'name':_[_0xab01('0x6e')](_0x584a0b),'value':_0x584a0b};}):[]};})};}})[_0xab01('0x25')](respondWithResult(_0x15e56b,null))[_0xab01('0x43')](function(_0x389b29){var _0x3ed1a8=_0x38e126[_0xab01('0x30')][_0xab01('0x6f')]?0x1f4:_0x389b29['statusCode']||0x1f4;logger[_0xab01('0x70')](_0xab01('0x71'),_0xab01('0x54'),_0x3ed1a8,JSON[_0xab01('0x72')](_0x389b29));delete _0x389b29['name'];if(_0x3ed1a8===0x191){_0x3ed1a8=0x190;}_0x15e56b[_0xab01('0x18')](_0x3ed1a8)['send'](_0x38e126[_0xab01('0x30')][_0xab01('0x6f')]?{'message':'Wrong\x20credentials','statusCode':_0x389b29[_0xab01('0x73')]}:_0x389b29);});};