d33c833e8f4c6cb63038d42e1734e14d7ec89ca6
[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 _0x74fd=['getDescriptions','FreshdeskField','remoteUri','apiKey','slice','lastIndexOf','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','base64','requester','subject','agent','description','priority','source','group','company','remove','includes','custom_text','label','default','capitalize','statusCode','error','stringify','test','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','../../components/auth/service','../../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','reject','then','destroy','name','send','index','FreshdeskAccount','rawAttributes','fieldName','type','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','find','catch','create','body','params','findOne','FreshdeskConfiguration','getConfigurations','nolimit','addConfiguration','Subjects','getSubjects','Descriptions'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x74fd,0x8f));var _0xd74f=function(_0x2b0bc2,_0x4331f5){_0x2b0bc2=_0x2b0bc2-0x0;var _0x56e5b9=_0x74fd[_0x2b0bc2];return _0x56e5b9;};'use strict';var emlformat=require(_0xd74f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd74f('0x1'));var jsonpatch=require(_0xd74f('0x2'));var rp=require(_0xd74f('0x3'));var moment=require(_0xd74f('0x4'));var BPromise=require(_0xd74f('0x5'));var Mustache=require(_0xd74f('0x6'));var util=require(_0xd74f('0x7'));var path=require(_0xd74f('0x8'));var sox=require(_0xd74f('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd74f('0xa'));var _=require(_0xd74f('0xb'));var squel=require('squel');var crypto=require(_0xd74f('0xc'));var jsforce=require(_0xd74f('0xd'));var deskjs=require(_0xd74f('0xe'));var toCsv=require(_0xd74f('0xf'));var querystring=require(_0xd74f('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xd74f('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd74f('0x12'));var logger=require(_0xd74f('0x13'))(_0xd74f('0x14'));var utils=require(_0xd74f('0x15'));var config=require(_0xd74f('0x16'));var licenseUtil=require(_0xd74f('0x17'));var db=require(_0xd74f('0x18'))['db'];var integrations=require(_0xd74f('0x19'));function respondWithStatusCode(_0x3f985c,_0x59998d){_0x59998d=_0x59998d||0xcc;return function(_0x71475b){if(_0x71475b){return _0x3f985c[_0xd74f('0x1a')](_0x59998d);}return _0x3f985c[_0xd74f('0x1b')](_0x59998d)[_0xd74f('0x1c')]();};}function respondWithResult(_0x629925,_0x509ad5){_0x509ad5=_0x509ad5||0xc8;return function(_0x9a5d0b){if(_0x9a5d0b){return _0x629925[_0xd74f('0x1b')](_0x509ad5)[_0xd74f('0x1d')](_0x9a5d0b);}};}function respondWithFilteredResult(_0x53207a,_0x267d4d){return function(_0x297477){if(_0x297477){var _0x5be26e=typeof _0x267d4d[_0xd74f('0x1e')]===_0xd74f('0x1f')&&typeof _0x267d4d[_0xd74f('0x20')]===_0xd74f('0x1f');var _0x299c99=_0x297477[_0xd74f('0x21')];var _0x103e3b=_0x5be26e?0x0:_0x267d4d['offset'];var _0x3760a6=_0x5be26e?_0x297477[_0xd74f('0x21')]:_0x267d4d['offset']+_0x267d4d[_0xd74f('0x20')];var _0x7b6d3f;if(_0x3760a6>=_0x299c99){_0x3760a6=_0x299c99;_0x7b6d3f=0xc8;}else{_0x7b6d3f=0xce;}_0x53207a[_0xd74f('0x1b')](_0x7b6d3f);return _0x53207a['set']('Content-Range',_0x103e3b+'-'+_0x3760a6+'/'+_0x299c99)[_0xd74f('0x1d')](_0x297477);}return null;};}function patchUpdates(_0x46139b){return function(_0x5e1294){try{jsonpatch['apply'](_0x5e1294,_0x46139b,!![]);}catch(_0x1d8527){return BPromise[_0xd74f('0x22')](_0x1d8527);}return _0x5e1294['save']();};}function saveUpdates(_0x1ec24b,_0x341585){return function(_0x54eb91){if(_0x54eb91){return _0x54eb91['update'](_0x1ec24b)[_0xd74f('0x23')](function(_0x2406a7){return _0x2406a7;});}return null;};}function removeEntity(_0x15a863,_0x14bb84){return function(_0x2e965b){if(_0x2e965b){return _0x2e965b[_0xd74f('0x24')]()[_0xd74f('0x23')](function(){_0x15a863[_0xd74f('0x1b')](0xcc)[_0xd74f('0x1c')]();});}};}function handleEntityNotFound(_0x40a089,_0x1abb89){return function(_0xf44159){if(!_0xf44159){_0x40a089[_0xd74f('0x1a')](0x194);}return _0xf44159;};}function handleError(_0x394443,_0xd5dca0){_0xd5dca0=_0xd5dca0||0x1f4;return function(_0x56eb61){logger['error'](_0x56eb61['stack']);if(_0x56eb61[_0xd74f('0x25')]){delete _0x56eb61[_0xd74f('0x25')];}_0x394443[_0xd74f('0x1b')](_0xd5dca0)[_0xd74f('0x26')](_0x56eb61);};}exports[_0xd74f('0x27')]=function(_0x256878,_0x10ac39){var _0xc39b90={},_0x33d02e={},_0x43a86e={'count':0x0,'rows':[]};var _0x24676a=_['map'](db[_0xd74f('0x28')][_0xd74f('0x29')],function(_0xed83dc){return{'name':_0xed83dc[_0xd74f('0x2a')],'type':_0xed83dc[_0xd74f('0x2b')]['key']};});_0x33d02e[_0xd74f('0x2c')]=_[_0xd74f('0x2d')](_0x24676a,_0xd74f('0x25'));_0x33d02e[_0xd74f('0x2e')]=_[_0xd74f('0x2f')](_0x256878[_0xd74f('0x2e')]);_0x33d02e[_0xd74f('0x30')]=_['intersection'](_0x33d02e[_0xd74f('0x2c')],_0x33d02e[_0xd74f('0x2e')]);_0xc39b90[_0xd74f('0x31')]=_[_0xd74f('0x32')](_0x33d02e['model'],qs['fields'](_0x256878[_0xd74f('0x2e')][_0xd74f('0x33')]));_0xc39b90[_0xd74f('0x31')]=_0xc39b90[_0xd74f('0x31')][_0xd74f('0x34')]?_0xc39b90['attributes']:_0x33d02e[_0xd74f('0x2c')];if(!_0x256878['query'][_0xd74f('0x35')]('nolimit')){_0xc39b90['limit']=qs[_0xd74f('0x20')](_0x256878[_0xd74f('0x2e')][_0xd74f('0x20')]);_0xc39b90['offset']=qs[_0xd74f('0x1e')](_0x256878[_0xd74f('0x2e')][_0xd74f('0x1e')]);}_0xc39b90[_0xd74f('0x36')]=qs[_0xd74f('0x37')](_0x256878[_0xd74f('0x2e')][_0xd74f('0x37')]);_0xc39b90[_0xd74f('0x38')]=qs[_0xd74f('0x30')](_[_0xd74f('0x39')](_0x256878[_0xd74f('0x2e')],_0x33d02e[_0xd74f('0x30')]),_0x24676a);if(_0x256878[_0xd74f('0x2e')][_0xd74f('0x3a')]){_0xc39b90[_0xd74f('0x38')]=_[_0xd74f('0x3b')](_0xc39b90['where'],{'$or':_[_0xd74f('0x2d')](_0x24676a,function(_0x1dbf6b){if(_0x1dbf6b[_0xd74f('0x2b')]!==_0xd74f('0x3c')){var _0x22286f={};_0x22286f[_0x1dbf6b[_0xd74f('0x25')]]={'$like':'%'+_0x256878[_0xd74f('0x2e')][_0xd74f('0x3a')]+'%'};return _0x22286f;}})});}_0xc39b90=_[_0xd74f('0x3b')]({},_0xc39b90,_0x256878[_0xd74f('0x3d')]);var _0x1002f3={'where':_0xc39b90[_0xd74f('0x38')]};return db[_0xd74f('0x28')]['count'](_0x1002f3)[_0xd74f('0x23')](function(_0x44c96b){_0x43a86e[_0xd74f('0x21')]=_0x44c96b;if(_0x256878['query'][_0xd74f('0x3e')]){_0xc39b90[_0xd74f('0x3f')]=[{'all':!![]}];}return db[_0xd74f('0x28')][_0xd74f('0x40')](_0xc39b90);})[_0xd74f('0x23')](function(_0x28104c){_0x43a86e[_0xd74f('0x41')]=_0x28104c;return _0x43a86e;})[_0xd74f('0x23')](respondWithFilteredResult(_0x10ac39,_0xc39b90))['catch'](handleError(_0x10ac39,null));};exports['show']=function(_0x4e6dc4,_0x414379){var _0x1031c9={'raw':![],'where':{'id':_0x4e6dc4['params']['id']}},_0x3c33ae={};_0x3c33ae['model']=_['keys'](db['FreshdeskAccount'][_0xd74f('0x29')]);_0x3c33ae['query']=_[_0xd74f('0x2f')](_0x4e6dc4[_0xd74f('0x2e')]);_0x3c33ae[_0xd74f('0x30')]=_['intersection'](_0x3c33ae[_0xd74f('0x2c')],_0x3c33ae['query']);_0x1031c9[_0xd74f('0x31')]=_[_0xd74f('0x32')](_0x3c33ae[_0xd74f('0x2c')],qs[_0xd74f('0x33')](_0x4e6dc4['query'][_0xd74f('0x33')]));_0x1031c9[_0xd74f('0x31')]=_0x1031c9['attributes']['length']?_0x1031c9[_0xd74f('0x31')]:_0x3c33ae[_0xd74f('0x2c')];if(_0x4e6dc4[_0xd74f('0x2e')][_0xd74f('0x3e')]){_0x1031c9[_0xd74f('0x3f')]=[{'all':!![]}];}_0x1031c9=_['merge']({},_0x1031c9,_0x4e6dc4[_0xd74f('0x3d')]);return db[_0xd74f('0x28')][_0xd74f('0x42')](_0x1031c9)[_0xd74f('0x23')](handleEntityNotFound(_0x414379,null))['then'](respondWithResult(_0x414379,null))[_0xd74f('0x43')](handleError(_0x414379,null));};exports[_0xd74f('0x44')]=function(_0xa6b5d9,_0x483f6c){return db['FreshdeskAccount'][_0xd74f('0x44')](_0xa6b5d9[_0xd74f('0x45')],{})[_0xd74f('0x23')](respondWithResult(_0x483f6c,0xc9))['catch'](handleError(_0x483f6c,null));};exports['update']=function(_0x555d6f,_0x158ee2){if(_0x555d6f[_0xd74f('0x45')]['id']){delete _0x555d6f['body']['id'];}return db[_0xd74f('0x28')][_0xd74f('0x42')]({'where':{'id':_0x555d6f[_0xd74f('0x46')]['id']}})[_0xd74f('0x23')](handleEntityNotFound(_0x158ee2,null))[_0xd74f('0x23')](saveUpdates(_0x555d6f['body'],null))[_0xd74f('0x23')](respondWithResult(_0x158ee2,null))[_0xd74f('0x43')](handleError(_0x158ee2,null));};exports['destroy']=function(_0x3bc62b,_0x42ec0a){return db[_0xd74f('0x28')][_0xd74f('0x42')]({'where':{'id':_0x3bc62b[_0xd74f('0x46')]['id']}})[_0xd74f('0x23')](handleEntityNotFound(_0x42ec0a,null))[_0xd74f('0x23')](removeEntity(_0x42ec0a,null))[_0xd74f('0x43')](handleError(_0x42ec0a,null));};exports['getConfigurations']=function(_0x2b037d,_0x2bebfd,_0x55f112){var _0x53eb52={};var _0x514a7b={};var _0x42456f;var _0x29fd21;return db[_0xd74f('0x28')][_0xd74f('0x47')]({'where':{'id':_0x2b037d[_0xd74f('0x46')]['id']}})[_0xd74f('0x23')](handleEntityNotFound(_0x2bebfd,null))[_0xd74f('0x23')](function(_0xac67ad){if(_0xac67ad){_0x42456f=_0xac67ad;_0x514a7b[_0xd74f('0x2c')]=_[_0xd74f('0x2f')](db[_0xd74f('0x48')]['rawAttributes']);_0x514a7b[_0xd74f('0x2e')]=_[_0xd74f('0x2f')](_0x2b037d[_0xd74f('0x2e')]);_0x514a7b['filters']=_[_0xd74f('0x32')](_0x514a7b[_0xd74f('0x2c')],_0x514a7b[_0xd74f('0x2e')]);_0x53eb52['attributes']=_[_0xd74f('0x32')](_0x514a7b[_0xd74f('0x2c')],qs[_0xd74f('0x33')](_0x2b037d['query']['fields']));_0x53eb52['attributes']=_0x53eb52[_0xd74f('0x31')][_0xd74f('0x34')]?_0x53eb52[_0xd74f('0x31')]:_0x514a7b[_0xd74f('0x2c')];_0x53eb52[_0xd74f('0x36')]=qs[_0xd74f('0x37')](_0x2b037d[_0xd74f('0x2e')]['sort']);_0x53eb52['where']=qs[_0xd74f('0x30')](_[_0xd74f('0x39')](_0x2b037d[_0xd74f('0x2e')],_0x514a7b[_0xd74f('0x30')]));if(_0x2b037d['query'][_0xd74f('0x3a')]){_0x53eb52['where']=_[_0xd74f('0x3b')](_0x53eb52[_0xd74f('0x38')],{'$or':_['map'](_0x53eb52['attributes'],function(_0x3b85fa){var _0x4e71b7={};_0x4e71b7[_0x3b85fa]={'$like':'%'+_0x2b037d['query'][_0xd74f('0x3a')]+'%'};return _0x4e71b7;})});}_0x53eb52=_['merge']({},_0x53eb52,_0x2b037d['options']);return _0x42456f[_0xd74f('0x49')](_0x53eb52);}})[_0xd74f('0x23')](function(_0x4108be){if(_0x4108be){_0x29fd21=_0x4108be[_0xd74f('0x34')];if(!_0x2b037d['query'][_0xd74f('0x35')](_0xd74f('0x4a'))){_0x53eb52['limit']=qs[_0xd74f('0x20')](_0x2b037d['query']['limit']);_0x53eb52['offset']=qs[_0xd74f('0x1e')](_0x2b037d[_0xd74f('0x2e')][_0xd74f('0x1e')]);}return _0x42456f['getConfigurations'](_0x53eb52);}})[_0xd74f('0x23')](function(_0x81c1f2){if(_0x81c1f2){return _0x81c1f2?{'count':_0x29fd21,'rows':_0x81c1f2}:null;}})[_0xd74f('0x23')](respondWithResult(_0x2bebfd,null))['catch'](handleError(_0x2bebfd,null));};exports[_0xd74f('0x4b')]=function(_0x34f218,_0x185432,_0x1c11ce){if(_0x34f218[_0xd74f('0x45')]['id']){delete _0x34f218[_0xd74f('0x45')]['id'];}return db[_0xd74f('0x28')][_0xd74f('0x47')]({'where':{'id':_0x34f218[_0xd74f('0x46')]['id']}})[_0xd74f('0x23')](handleEntityNotFound(_0x185432,null))[_0xd74f('0x23')](function(_0x3f0209){if(_0x3f0209){_0x34f218[_0xd74f('0x45')]['AccountId']=_0x3f0209['id'];_0x34f218[_0xd74f('0x45')][_0xd74f('0x4c')]=integrations[_0xd74f('0x4d')](_0x34f218[_0xd74f('0x45')]['channel'],_0x34f218[_0xd74f('0x45')][_0xd74f('0x2b')]);_0x34f218[_0xd74f('0x45')][_0xd74f('0x4e')]=integrations[_0xd74f('0x4f')](_0x34f218[_0xd74f('0x45')]['channel'],_0x34f218[_0xd74f('0x45')][_0xd74f('0x2b')]);return db[_0xd74f('0x48')][_0xd74f('0x44')](_0x34f218['body'],{'include':[{'model':db['FreshdeskField'],'as':_0xd74f('0x4c')},{'model':db[_0xd74f('0x50')],'as':_0xd74f('0x4e')}]});}return null;})[_0xd74f('0x23')](respondWithResult(_0x185432,null))[_0xd74f('0x43')](handleError(_0x185432,null));};exports['getFields']=function(_0x40db06,_0x529e27,_0x4b0e24){var _0x3fa85b='';return db[_0xd74f('0x28')][_0xd74f('0x47')]({'where':{'id':_0x40db06[_0xd74f('0x46')]['id']},'attributes':['id',_0xd74f('0x51'),_0xd74f('0x52')]})[_0xd74f('0x23')](handleEntityNotFound(_0x529e27,null))[_0xd74f('0x23')](function(_0x4966d3){if(_0x4966d3){_0x3fa85b=_0x4966d3[_0xd74f('0x51')];var _0x499cc3=_0x3fa85b[_0xd74f('0x53')](-0x1);if(_0x499cc3==='/'){_0x3fa85b=_0x3fa85b['substring'](0x0,_0x3fa85b[_0xd74f('0x54')](_0x499cc3));}return rp({'method':'GET','uri':util[_0xd74f('0x55')](_0xd74f('0x56'),_0x3fa85b,_0xd74f('0x57')),'headers':{'Authorization':util['format'](_0xd74f('0x58'),new Buffer(util[_0xd74f('0x55')](_0xd74f('0x59'),_0x4966d3['apiKey']))[_0xd74f('0x5a')](_0xd74f('0x5b')))},'json':!![]});}})[_0xd74f('0x23')](function(_0x440aeb){if(_0x440aeb){var _0x382f21=[_0xd74f('0x5c'),_0xd74f('0x5d'),_0xd74f('0x5e'),_0xd74f('0x5f'),_0xd74f('0x1b'),_0xd74f('0x60'),'group',_0xd74f('0x61'),'ticket_type',_0xd74f('0x62'),_0xd74f('0x63')];_[_0xd74f('0x64')](_0x440aeb,function(_0x55354c){return _0x382f21[_0xd74f('0x65')](_0x55354c[_0xd74f('0x25')])||!_0x55354c['default']&&_0x55354c[_0xd74f('0x2b')]!==_0xd74f('0x66')&&_0x55354c['type']!=='custom_dropdown';});return{'count':_0x440aeb[_0xd74f('0x34')],'rows':_[_0xd74f('0x2d')](_0x440aeb,function(_0x4bad7c){return{'id':_0x4bad7c[_0xd74f('0x25')],'name':_0x4bad7c[_0xd74f('0x67')],'custom':!_0x4bad7c[_0xd74f('0x68')],'options':_0x4bad7c['choices']?_[_0xd74f('0x2d')](_0x4bad7c['choices'],function(_0x2eb131){return{'name':_[_0xd74f('0x69')](_0x2eb131),'value':_0x2eb131};}):[]};})};}})[_0xd74f('0x23')](respondWithResult(_0x529e27,null))[_0xd74f('0x43')](function(_0x3fbfba){var _0x3fe024=_0x40db06[_0xd74f('0x2e')]['test']?0x1f4:_0x3fbfba[_0xd74f('0x6a')]||0x1f4;logger[_0xd74f('0x6b')]('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x3fe024,JSON[_0xd74f('0x6c')](_0x3fbfba));delete _0x3fbfba['name'];if(_0x3fe024===0x191){_0x3fe024=0x190;}_0x529e27[_0xd74f('0x1b')](_0x3fe024)[_0xd74f('0x26')](_0x40db06[_0xd74f('0x2e')][_0xd74f('0x6d')]?{'message':_0xd74f('0x6e'),'statusCode':_0x3fbfba['statusCode']}:_0x3fbfba);});};