39ee7ff28eccc4809e09ecb7bef6a924c7541194
[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 _0x50a8=['../../components/integrations/configuration','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','save','destroy','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','options','FreshdeskAccount','includeAll','include','findAll','rows','show','params','keys','length','catch','create','find','getConfigurations','findOne','FreshdeskConfiguration','filter','body','AccountId','getSubjects','Descriptions','getDescriptions','Subjects','FreshdeskField','apiKey','remoteUri','slice','substring','GET','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','base64','requester','subject','agent','group','source','company','remove','includes','default','custom_text','custom_dropdown','choices','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','eml-format','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x50a8,0x198));var _0x850a=function(_0x56eb70,_0x2bd75c){_0x56eb70=_0x56eb70-0x0;var _0x47f1fe=_0x50a8[_0x56eb70];return _0x47f1fe;};'use strict';var emlformat=require(_0x850a('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x850a('0x1'));var moment=require('moment');var BPromise=require(_0x850a('0x2'));var Mustache=require(_0x850a('0x3'));var util=require(_0x850a('0x4'));var path=require(_0x850a('0x5'));var sox=require(_0x850a('0x6'));var csv=require(_0x850a('0x7'));var ejs=require(_0x850a('0x8'));var fs=require('fs');var fs_extra=require(_0x850a('0x9'));var _=require(_0x850a('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x850a('0xb'));var deskjs=require(_0x850a('0xc'));var toCsv=require(_0x850a('0x7'));var querystring=require(_0x850a('0xd'));var Papa=require('papaparse');var Redis=require(_0x850a('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x850a('0xf'));var hardwareService=require(_0x850a('0x10'));var logger=require(_0x850a('0x11'))(_0x850a('0x12'));var utils=require(_0x850a('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x850a('0x14'));function respondWithStatusCode(_0x4d591d,_0x45cd78){_0x45cd78=_0x45cd78||0xcc;return function(_0x21d324){if(_0x21d324){return _0x4d591d[_0x850a('0x15')](_0x45cd78);}return _0x4d591d[_0x850a('0x16')](_0x45cd78)[_0x850a('0x17')]();};}function respondWithResult(_0x50c199,_0x355a31){_0x355a31=_0x355a31||0xc8;return function(_0x59f778){if(_0x59f778){return _0x50c199['status'](_0x355a31)['json'](_0x59f778);}};}function respondWithFilteredResult(_0x4c0156,_0x3e6e81){return function(_0x5e0fbe){if(_0x5e0fbe){var _0x657067=typeof _0x3e6e81[_0x850a('0x18')]===_0x850a('0x19')&&typeof _0x3e6e81[_0x850a('0x1a')]===_0x850a('0x19');var _0x1a987c=_0x5e0fbe[_0x850a('0x1b')];var _0x419ae6=_0x657067?0x0:_0x3e6e81['offset'];var _0x432a28=_0x657067?_0x5e0fbe['count']:_0x3e6e81['offset']+_0x3e6e81['limit'];var _0x5acf31;if(_0x432a28>=_0x1a987c){_0x432a28=_0x1a987c;_0x5acf31=0xc8;}else{_0x5acf31=0xce;}_0x4c0156[_0x850a('0x16')](_0x5acf31);return _0x4c0156[_0x850a('0x1c')](_0x850a('0x1d'),_0x419ae6+'-'+_0x432a28+'/'+_0x1a987c)['json'](_0x5e0fbe);}return null;};}function patchUpdates(_0x17eadb){return function(_0x6221f6){try{jsonpatch[_0x850a('0x1e')](_0x6221f6,_0x17eadb,!![]);}catch(_0x484b13){return BPromise['reject'](_0x484b13);}return _0x6221f6[_0x850a('0x1f')]();};}function saveUpdates(_0x285ef4,_0x5758af){return function(_0xf4655a){if(_0xf4655a){return _0xf4655a['update'](_0x285ef4)['then'](function(_0x561fde){return _0x561fde;});}return null;};}function removeEntity(_0x4363d4,_0x47d527){return function(_0x3ad545){if(_0x3ad545){return _0x3ad545[_0x850a('0x20')]()[_0x850a('0x21')](function(){_0x4363d4['status'](0xcc)[_0x850a('0x17')]();});}};}function handleEntityNotFound(_0xc52e71,_0x33327e){return function(_0x59bc52){if(!_0x59bc52){_0xc52e71[_0x850a('0x15')](0x194);}return _0x59bc52;};}function handleError(_0xe46a27,_0x4d715c){_0x4d715c=_0x4d715c||0x1f4;return function(_0x21e34d){logger[_0x850a('0x22')](_0x21e34d[_0x850a('0x23')]);if(_0x21e34d[_0x850a('0x24')]){delete _0x21e34d[_0x850a('0x24')];}_0xe46a27[_0x850a('0x16')](_0x4d715c)[_0x850a('0x25')](_0x21e34d);};}exports[_0x850a('0x26')]=function(_0x3a228f,_0x177dd6){var _0x44fb58={},_0x1e8632={},_0x3f1efc={'count':0x0,'rows':[]};var _0x7af273=_[_0x850a('0x27')](db['FreshdeskAccount'][_0x850a('0x28')],function(_0x5cbab3){return{'name':_0x5cbab3[_0x850a('0x29')],'type':_0x5cbab3[_0x850a('0x2a')][_0x850a('0x2b')]};});_0x1e8632['model']=_['map'](_0x7af273,'name');_0x1e8632[_0x850a('0x2c')]=_['keys'](_0x3a228f[_0x850a('0x2c')]);_0x1e8632[_0x850a('0x2d')]=_[_0x850a('0x2e')](_0x1e8632[_0x850a('0x2f')],_0x1e8632['query']);_0x44fb58[_0x850a('0x30')]=_[_0x850a('0x2e')](_0x1e8632[_0x850a('0x2f')],qs[_0x850a('0x31')](_0x3a228f[_0x850a('0x2c')]['fields']));_0x44fb58['attributes']=_0x44fb58[_0x850a('0x30')]['length']?_0x44fb58[_0x850a('0x30')]:_0x1e8632[_0x850a('0x2f')];if(!_0x3a228f[_0x850a('0x2c')][_0x850a('0x32')](_0x850a('0x33'))){_0x44fb58[_0x850a('0x1a')]=qs[_0x850a('0x1a')](_0x3a228f[_0x850a('0x2c')][_0x850a('0x1a')]);_0x44fb58[_0x850a('0x18')]=qs['offset'](_0x3a228f[_0x850a('0x2c')][_0x850a('0x18')]);}_0x44fb58[_0x850a('0x34')]=qs[_0x850a('0x35')](_0x3a228f[_0x850a('0x2c')]['sort']);_0x44fb58[_0x850a('0x36')]=qs[_0x850a('0x2d')](_['pick'](_0x3a228f[_0x850a('0x2c')],_0x1e8632[_0x850a('0x2d')]),_0x7af273);if(_0x3a228f[_0x850a('0x2c')]['filter']){_0x44fb58['where']=_[_0x850a('0x37')](_0x44fb58[_0x850a('0x36')],{'$or':_[_0x850a('0x27')](_0x7af273,function(_0x387dd8){if(_0x387dd8[_0x850a('0x2a')]!==_0x850a('0x38')){var _0x5425df={};_0x5425df[_0x387dd8['name']]={'$like':'%'+_0x3a228f['query']['filter']+'%'};return _0x5425df;}})});}_0x44fb58=_['merge']({},_0x44fb58,_0x3a228f[_0x850a('0x39')]);var _0xb8b012={'where':_0x44fb58[_0x850a('0x36')]};return db[_0x850a('0x3a')][_0x850a('0x1b')](_0xb8b012)['then'](function(_0x1c5c37){_0x3f1efc[_0x850a('0x1b')]=_0x1c5c37;if(_0x3a228f['query'][_0x850a('0x3b')]){_0x44fb58[_0x850a('0x3c')]=[{'all':!![]}];}return db[_0x850a('0x3a')][_0x850a('0x3d')](_0x44fb58);})[_0x850a('0x21')](function(_0x23418d){_0x3f1efc[_0x850a('0x3e')]=_0x23418d;return _0x3f1efc;})[_0x850a('0x21')](respondWithFilteredResult(_0x177dd6,_0x44fb58))['catch'](handleError(_0x177dd6,null));};exports[_0x850a('0x3f')]=function(_0x13ea8b,_0x1e5d20){var _0x4a0a41={'raw':![],'where':{'id':_0x13ea8b[_0x850a('0x40')]['id']}},_0x15f04e={};_0x15f04e[_0x850a('0x2f')]=_[_0x850a('0x41')](db[_0x850a('0x3a')][_0x850a('0x28')]);_0x15f04e[_0x850a('0x2c')]=_[_0x850a('0x41')](_0x13ea8b[_0x850a('0x2c')]);_0x15f04e[_0x850a('0x2d')]=_[_0x850a('0x2e')](_0x15f04e[_0x850a('0x2f')],_0x15f04e[_0x850a('0x2c')]);_0x4a0a41['attributes']=_[_0x850a('0x2e')](_0x15f04e[_0x850a('0x2f')],qs[_0x850a('0x31')](_0x13ea8b[_0x850a('0x2c')][_0x850a('0x31')]));_0x4a0a41['attributes']=_0x4a0a41[_0x850a('0x30')][_0x850a('0x42')]?_0x4a0a41['attributes']:_0x15f04e[_0x850a('0x2f')];if(_0x13ea8b[_0x850a('0x2c')][_0x850a('0x3b')]){_0x4a0a41[_0x850a('0x3c')]=[{'all':!![]}];}_0x4a0a41=_[_0x850a('0x37')]({},_0x4a0a41,_0x13ea8b['options']);return db[_0x850a('0x3a')]['find'](_0x4a0a41)[_0x850a('0x21')](handleEntityNotFound(_0x1e5d20,null))[_0x850a('0x21')](respondWithResult(_0x1e5d20,null))[_0x850a('0x43')](handleError(_0x1e5d20,null));};exports[_0x850a('0x44')]=function(_0x2c4439,_0x9f9f15){return db[_0x850a('0x3a')]['create'](_0x2c4439['body'],{})[_0x850a('0x21')](respondWithResult(_0x9f9f15,0xc9))[_0x850a('0x43')](handleError(_0x9f9f15,null));};exports['update']=function(_0x4e669c,_0x500d17){if(_0x4e669c['body']['id']){delete _0x4e669c['body']['id'];}return db['FreshdeskAccount'][_0x850a('0x45')]({'where':{'id':_0x4e669c[_0x850a('0x40')]['id']}})[_0x850a('0x21')](handleEntityNotFound(_0x500d17,null))[_0x850a('0x21')](saveUpdates(_0x4e669c['body'],null))[_0x850a('0x21')](respondWithResult(_0x500d17,null))[_0x850a('0x43')](handleError(_0x500d17,null));};exports['destroy']=function(_0x3e712c,_0x463e17){return db[_0x850a('0x3a')]['find']({'where':{'id':_0x3e712c['params']['id']}})[_0x850a('0x21')](handleEntityNotFound(_0x463e17,null))['then'](removeEntity(_0x463e17,null))[_0x850a('0x43')](handleError(_0x463e17,null));};exports[_0x850a('0x46')]=function(_0x3b3e68,_0x5a61f9,_0x3dd882){var _0x42b85c={};var _0x501031={};var _0x5d817a;var _0x3247a8;return db[_0x850a('0x3a')][_0x850a('0x47')]({'where':{'id':_0x3b3e68[_0x850a('0x40')]['id']}})['then'](handleEntityNotFound(_0x5a61f9,null))[_0x850a('0x21')](function(_0x41f9dc){if(_0x41f9dc){_0x5d817a=_0x41f9dc;_0x501031[_0x850a('0x2f')]=_['keys'](db[_0x850a('0x48')][_0x850a('0x28')]);_0x501031[_0x850a('0x2c')]=_['keys'](_0x3b3e68[_0x850a('0x2c')]);_0x501031['filters']=_[_0x850a('0x2e')](_0x501031[_0x850a('0x2f')],_0x501031[_0x850a('0x2c')]);_0x42b85c['attributes']=_['intersection'](_0x501031['model'],qs[_0x850a('0x31')](_0x3b3e68[_0x850a('0x2c')][_0x850a('0x31')]));_0x42b85c[_0x850a('0x30')]=_0x42b85c['attributes'][_0x850a('0x42')]?_0x42b85c[_0x850a('0x30')]:_0x501031[_0x850a('0x2f')];_0x42b85c[_0x850a('0x34')]=qs[_0x850a('0x35')](_0x3b3e68['query'][_0x850a('0x35')]);_0x42b85c['where']=qs[_0x850a('0x2d')](_['pick'](_0x3b3e68[_0x850a('0x2c')],_0x501031['filters']));if(_0x3b3e68[_0x850a('0x2c')][_0x850a('0x49')]){_0x42b85c[_0x850a('0x36')]=_[_0x850a('0x37')](_0x42b85c[_0x850a('0x36')],{'$or':_[_0x850a('0x27')](_0x42b85c[_0x850a('0x30')],function(_0x3fb0d5){var _0x71e746={};_0x71e746[_0x3fb0d5]={'$like':'%'+_0x3b3e68[_0x850a('0x2c')][_0x850a('0x49')]+'%'};return _0x71e746;})});}_0x42b85c=_[_0x850a('0x37')]({},_0x42b85c,_0x3b3e68[_0x850a('0x39')]);return _0x5d817a[_0x850a('0x46')](_0x42b85c);}})[_0x850a('0x21')](function(_0x284e62){if(_0x284e62){_0x3247a8=_0x284e62['length'];if(!_0x3b3e68[_0x850a('0x2c')]['hasOwnProperty'](_0x850a('0x33'))){_0x42b85c['limit']=qs[_0x850a('0x1a')](_0x3b3e68[_0x850a('0x2c')][_0x850a('0x1a')]);_0x42b85c['offset']=qs['offset'](_0x3b3e68['query'][_0x850a('0x18')]);}return _0x5d817a['getConfigurations'](_0x42b85c);}})['then'](function(_0x1103ac){if(_0x1103ac){return _0x1103ac?{'count':_0x3247a8,'rows':_0x1103ac}:null;}})[_0x850a('0x21')](respondWithResult(_0x5a61f9,null))[_0x850a('0x43')](handleError(_0x5a61f9,null));};exports['addConfiguration']=function(_0x18aa12,_0x4c25fa,_0xb3c661){if(_0x18aa12[_0x850a('0x4a')]['id']){delete _0x18aa12[_0x850a('0x4a')]['id'];}return db[_0x850a('0x3a')]['findOne']({'where':{'id':_0x18aa12[_0x850a('0x40')]['id']}})[_0x850a('0x21')](handleEntityNotFound(_0x4c25fa,null))[_0x850a('0x21')](function(_0x9bb156){if(_0x9bb156){_0x18aa12[_0x850a('0x4a')][_0x850a('0x4b')]=_0x9bb156['id'];_0x18aa12['body']['Subjects']=integrations[_0x850a('0x4c')](_0x18aa12['body']['channel'],_0x18aa12[_0x850a('0x4a')]['type']);_0x18aa12[_0x850a('0x4a')][_0x850a('0x4d')]=integrations[_0x850a('0x4e')](_0x18aa12[_0x850a('0x4a')]['channel'],_0x18aa12['body'][_0x850a('0x2a')]);return db['FreshdeskConfiguration'][_0x850a('0x44')](_0x18aa12['body'],{'include':[{'model':db['FreshdeskField'],'as':_0x850a('0x4f')},{'model':db[_0x850a('0x50')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x4c25fa,null))['catch'](handleError(_0x4c25fa,null));};exports['getFields']=function(_0x3c183a,_0x29ba64,_0x4b5842){var _0x3768b4='';return db[_0x850a('0x3a')][_0x850a('0x47')]({'where':{'id':_0x3c183a[_0x850a('0x40')]['id']},'attributes':['id','remoteUri',_0x850a('0x51')]})[_0x850a('0x21')](handleEntityNotFound(_0x29ba64,null))[_0x850a('0x21')](function(_0x20fddf){if(_0x20fddf){_0x3768b4=_0x20fddf[_0x850a('0x52')];var _0x43a920=_0x3768b4[_0x850a('0x53')](-0x1);if(_0x43a920==='/'){_0x3768b4=_0x3768b4[_0x850a('0x54')](0x0,_0x3768b4['lastIndexOf'](_0x43a920));}return rp({'method':_0x850a('0x55'),'uri':util['format'](_0x850a('0x56'),_0x3768b4,_0x850a('0x57')),'headers':{'Authorization':util['format'](_0x850a('0x58'),new Buffer(util['format'](_0x850a('0x59'),_0x20fddf[_0x850a('0x51')]))['toString'](_0x850a('0x5a')))},'json':!![]});}})[_0x850a('0x21')](function(_0x1c56d5){if(_0x1c56d5){var _0x48b3f3=[_0x850a('0x5b'),_0x850a('0x5c'),_0x850a('0x5d'),'description','status','priority',_0x850a('0x5e'),_0x850a('0x5f'),'ticket_type',_0x850a('0x5e'),_0x850a('0x60')];_[_0x850a('0x61')](_0x1c56d5,function(_0x3d6862){return _0x48b3f3[_0x850a('0x62')](_0x3d6862[_0x850a('0x24')])||!_0x3d6862[_0x850a('0x63')]&&_0x3d6862['type']!==_0x850a('0x64')&&_0x3d6862[_0x850a('0x2a')]!==_0x850a('0x65');});return{'count':_0x1c56d5[_0x850a('0x42')],'rows':_['map'](_0x1c56d5,function(_0xc05dac){return{'id':_0xc05dac[_0x850a('0x24')],'name':_0xc05dac['label'],'custom':!_0xc05dac[_0x850a('0x63')],'options':_0xc05dac[_0x850a('0x66')]?_[_0x850a('0x27')](_0xc05dac['choices'],function(_0x516e4d){return{'name':_['capitalize'](_0x516e4d),'value':_0x516e4d};}):[]};})};}})[_0x850a('0x21')](respondWithResult(_0x29ba64,null))[_0x850a('0x43')](function(_0x5d81d1){var _0x12d1c2=_0x3c183a['query'][_0x850a('0x67')]?0x1f4:_0x5d81d1[_0x850a('0x68')]||0x1f4;logger[_0x850a('0x22')](_0x850a('0x69'),_0x850a('0x6a'),_0x12d1c2,JSON['stringify'](_0x5d81d1));delete _0x5d81d1['name'];if(_0x12d1c2===0x191){_0x12d1c2=0x190;}_0x29ba64[_0x850a('0x16')](_0x12d1c2)[_0x850a('0x25')](_0x3c183a[_0x850a('0x2c')][_0x850a('0x67')]?{'message':'Wrong\x20credentials','statusCode':_0x5d81d1[_0x850a('0x68')]}:_0x5d81d1);});};