ca7cdc7565897ca9d1d661ea46d8f43ea2dc835c
[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 _0xb350=['stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','status','end','json','offset','undefined','limit','count','set','update','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','key','query','keys','filters','intersection','attributes','fields','model','hasOwnProperty','nolimit','order','sort','filter','where','merge','type','VIRTUAL','options','FreshdeskAccount','includeAll','include','rows','catch','show','params','length','body','find','getConfigurations','FreshdeskConfiguration','addConfiguration','findOne','Subjects','getSubjects','channel','Descriptions','getDescriptions','create','FreshdeskField','getFields','remoteUri','slice','substring','GET','format','api/v2/ticket_fields','Basic\x20%s','%s:X','apiKey','base64','requester','subject','agent','description','priority','group','includes','default','custom_text','custom_dropdown','choices','capitalize','test','statusCode','getFields,\x20%s,\x20%s,\x20%s'];(function(_0x1aa049,_0x9ae13c){var _0x357f29=function(_0xfd2f83){while(--_0xfd2f83){_0x1aa049['push'](_0x1aa049['shift']());}};_0x357f29(++_0x9ae13c);}(_0xb350,0x6f));var _0x0b35=function(_0x52ed69,_0x459639){_0x52ed69=_0x52ed69-0x0;var _0x1cac9f=_0xb350[_0x52ed69];return _0x1cac9f;};'use strict';var emlformat=require(_0x0b35('0x0'));var rimraf=require(_0x0b35('0x1'));var zipdir=require(_0x0b35('0x2'));var jsonpatch=require(_0x0b35('0x3'));var rp=require('request-promise');var moment=require(_0x0b35('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0b35('0x5'));var util=require('util');var path=require(_0x0b35('0x6'));var sox=require(_0x0b35('0x7'));var csv=require(_0x0b35('0x8'));var ejs=require(_0x0b35('0x9'));var fs=require('fs');var fs_extra=require(_0x0b35('0xa'));var _=require(_0x0b35('0xb'));var squel=require(_0x0b35('0xc'));var crypto=require(_0x0b35('0xd'));var jsforce=require(_0x0b35('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x0b35('0xf'));var Papa=require(_0x0b35('0x10'));var Redis=require(_0x0b35('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x0b35('0x12'));var hardwareService=require(_0x0b35('0x13'));var logger=require(_0x0b35('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x0b35('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x0b35('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x4748f2,_0x5e39cd){_0x5e39cd=_0x5e39cd||0xcc;return function(_0x4ff93f){if(_0x4ff93f){return _0x4748f2['sendStatus'](_0x5e39cd);}return _0x4748f2[_0x0b35('0x17')](_0x5e39cd)[_0x0b35('0x18')]();};}function respondWithResult(_0x169b36,_0x3064ea){_0x3064ea=_0x3064ea||0xc8;return function(_0x2c0872){if(_0x2c0872){return _0x169b36[_0x0b35('0x17')](_0x3064ea)[_0x0b35('0x19')](_0x2c0872);}};}function respondWithFilteredResult(_0x373263,_0x568f37){return function(_0x6b1c41){if(_0x6b1c41){var _0x4cb4f2=typeof _0x568f37[_0x0b35('0x1a')]===_0x0b35('0x1b')&&typeof _0x568f37[_0x0b35('0x1c')]===_0x0b35('0x1b');var _0x538b93=_0x6b1c41['count'];var _0xaf50b=_0x4cb4f2?0x0:_0x568f37[_0x0b35('0x1a')];var _0x154688=_0x4cb4f2?_0x6b1c41[_0x0b35('0x1d')]:_0x568f37[_0x0b35('0x1a')]+_0x568f37['limit'];var _0x29312d;if(_0x154688>=_0x538b93){_0x154688=_0x538b93;_0x29312d=0xc8;}else{_0x29312d=0xce;}_0x373263[_0x0b35('0x17')](_0x29312d);return _0x373263[_0x0b35('0x1e')]('Content-Range',_0xaf50b+'-'+_0x154688+'/'+_0x538b93)[_0x0b35('0x19')](_0x6b1c41);}return null;};}function patchUpdates(_0x563f8a){return function(_0x115196){try{jsonpatch['apply'](_0x115196,_0x563f8a,!![]);}catch(_0x9eec22){return BPromise['reject'](_0x9eec22);}return _0x115196['save']();};}function saveUpdates(_0x514201,_0x51e907){return function(_0x370104){if(_0x370104){return _0x370104[_0x0b35('0x1f')](_0x514201)[_0x0b35('0x20')](function(_0x5361d6){return _0x5361d6;});}return null;};}function removeEntity(_0x224c71,_0x2ce7ba){return function(_0x212736){if(_0x212736){return _0x212736[_0x0b35('0x21')]()[_0x0b35('0x20')](function(){_0x224c71['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5daa42,_0x31ea3b){return function(_0x4d3517){if(!_0x4d3517){_0x5daa42[_0x0b35('0x22')](0x194);}return _0x4d3517;};}function handleError(_0x5a63f3,_0x17f21b){_0x17f21b=_0x17f21b||0x1f4;return function(_0x7f4750){logger[_0x0b35('0x23')](_0x7f4750[_0x0b35('0x24')]);if(_0x7f4750[_0x0b35('0x25')]){delete _0x7f4750[_0x0b35('0x25')];}_0x5a63f3[_0x0b35('0x17')](_0x17f21b)[_0x0b35('0x26')](_0x7f4750);};}exports[_0x0b35('0x27')]=function(_0x40061a,_0x58038e){var _0x156f25={},_0x326c7c={},_0x3cb374={'count':0x0,'rows':[]};var _0x339096=_[_0x0b35('0x28')](db['FreshdeskAccount'][_0x0b35('0x29')],function(_0x1b90b2){return{'name':_0x1b90b2['fieldName'],'type':_0x1b90b2['type'][_0x0b35('0x2a')]};});_0x326c7c['model']=_[_0x0b35('0x28')](_0x339096,_0x0b35('0x25'));_0x326c7c[_0x0b35('0x2b')]=_[_0x0b35('0x2c')](_0x40061a[_0x0b35('0x2b')]);_0x326c7c[_0x0b35('0x2d')]=_[_0x0b35('0x2e')](_0x326c7c['model'],_0x326c7c[_0x0b35('0x2b')]);_0x156f25[_0x0b35('0x2f')]=_[_0x0b35('0x2e')](_0x326c7c['model'],qs[_0x0b35('0x30')](_0x40061a[_0x0b35('0x2b')][_0x0b35('0x30')]));_0x156f25[_0x0b35('0x2f')]=_0x156f25[_0x0b35('0x2f')]['length']?_0x156f25['attributes']:_0x326c7c[_0x0b35('0x31')];if(!_0x40061a[_0x0b35('0x2b')][_0x0b35('0x32')](_0x0b35('0x33'))){_0x156f25[_0x0b35('0x1c')]=qs['limit'](_0x40061a[_0x0b35('0x2b')][_0x0b35('0x1c')]);_0x156f25[_0x0b35('0x1a')]=qs[_0x0b35('0x1a')](_0x40061a[_0x0b35('0x2b')][_0x0b35('0x1a')]);}_0x156f25[_0x0b35('0x34')]=qs[_0x0b35('0x35')](_0x40061a[_0x0b35('0x2b')]['sort']);_0x156f25['where']=qs[_0x0b35('0x2d')](_['pick'](_0x40061a[_0x0b35('0x2b')],_0x326c7c[_0x0b35('0x2d')]),_0x339096);if(_0x40061a[_0x0b35('0x2b')][_0x0b35('0x36')]){_0x156f25[_0x0b35('0x37')]=_[_0x0b35('0x38')](_0x156f25['where'],{'$or':_['map'](_0x339096,function(_0x3af9af){if(_0x3af9af[_0x0b35('0x39')]!==_0x0b35('0x3a')){var _0x2ecb1e={};_0x2ecb1e[_0x3af9af[_0x0b35('0x25')]]={'$like':'%'+_0x40061a[_0x0b35('0x2b')][_0x0b35('0x36')]+'%'};return _0x2ecb1e;}})});}_0x156f25=_['merge']({},_0x156f25,_0x40061a[_0x0b35('0x3b')]);var _0x15af52={'where':_0x156f25[_0x0b35('0x37')]};return db[_0x0b35('0x3c')]['count'](_0x15af52)[_0x0b35('0x20')](function(_0x230e52){_0x3cb374[_0x0b35('0x1d')]=_0x230e52;if(_0x40061a['query'][_0x0b35('0x3d')]){_0x156f25[_0x0b35('0x3e')]=[{'all':!![]}];}return db[_0x0b35('0x3c')]['findAll'](_0x156f25);})['then'](function(_0x48e1ba){_0x3cb374[_0x0b35('0x3f')]=_0x48e1ba;return _0x3cb374;})['then'](respondWithFilteredResult(_0x58038e,_0x156f25))[_0x0b35('0x40')](handleError(_0x58038e,null));};exports[_0x0b35('0x41')]=function(_0x443982,_0xb04c0c){var _0x516316={'raw':![],'where':{'id':_0x443982[_0x0b35('0x42')]['id']}},_0x32ec91={};_0x32ec91[_0x0b35('0x31')]=_[_0x0b35('0x2c')](db[_0x0b35('0x3c')][_0x0b35('0x29')]);_0x32ec91[_0x0b35('0x2b')]=_['keys'](_0x443982[_0x0b35('0x2b')]);_0x32ec91[_0x0b35('0x2d')]=_[_0x0b35('0x2e')](_0x32ec91[_0x0b35('0x31')],_0x32ec91['query']);_0x516316[_0x0b35('0x2f')]=_[_0x0b35('0x2e')](_0x32ec91[_0x0b35('0x31')],qs[_0x0b35('0x30')](_0x443982[_0x0b35('0x2b')]['fields']));_0x516316[_0x0b35('0x2f')]=_0x516316[_0x0b35('0x2f')][_0x0b35('0x43')]?_0x516316['attributes']:_0x32ec91[_0x0b35('0x31')];if(_0x443982[_0x0b35('0x2b')]['includeAll']){_0x516316[_0x0b35('0x3e')]=[{'all':!![]}];}_0x516316=_['merge']({},_0x516316,_0x443982[_0x0b35('0x3b')]);return db[_0x0b35('0x3c')]['find'](_0x516316)['then'](handleEntityNotFound(_0xb04c0c,null))[_0x0b35('0x20')](respondWithResult(_0xb04c0c,null))[_0x0b35('0x40')](handleError(_0xb04c0c,null));};exports['create']=function(_0x5320fe,_0xcb64a5){return db['FreshdeskAccount']['create'](_0x5320fe[_0x0b35('0x44')],{})[_0x0b35('0x20')](respondWithResult(_0xcb64a5,0xc9))[_0x0b35('0x40')](handleError(_0xcb64a5,null));};exports[_0x0b35('0x1f')]=function(_0x7f1df2,_0x173356){if(_0x7f1df2[_0x0b35('0x44')]['id']){delete _0x7f1df2['body']['id'];}return db[_0x0b35('0x3c')][_0x0b35('0x45')]({'where':{'id':_0x7f1df2[_0x0b35('0x42')]['id']}})[_0x0b35('0x20')](handleEntityNotFound(_0x173356,null))[_0x0b35('0x20')](saveUpdates(_0x7f1df2['body'],null))[_0x0b35('0x20')](respondWithResult(_0x173356,null))[_0x0b35('0x40')](handleError(_0x173356,null));};exports[_0x0b35('0x21')]=function(_0x3105c1,_0x18ec34){return db[_0x0b35('0x3c')][_0x0b35('0x45')]({'where':{'id':_0x3105c1[_0x0b35('0x42')]['id']}})[_0x0b35('0x20')](handleEntityNotFound(_0x18ec34,null))[_0x0b35('0x20')](removeEntity(_0x18ec34,null))[_0x0b35('0x40')](handleError(_0x18ec34,null));};exports[_0x0b35('0x46')]=function(_0x228af5,_0x496a41,_0x13d6ec){var _0x31abab={};var _0x151b51={};var _0x165880;var _0x2fd586;return db['FreshdeskAccount']['findOne']({'where':{'id':_0x228af5[_0x0b35('0x42')]['id']}})[_0x0b35('0x20')](handleEntityNotFound(_0x496a41,null))['then'](function(_0x3f41da){if(_0x3f41da){_0x165880=_0x3f41da;_0x151b51[_0x0b35('0x31')]=_[_0x0b35('0x2c')](db[_0x0b35('0x47')]['rawAttributes']);_0x151b51[_0x0b35('0x2b')]=_[_0x0b35('0x2c')](_0x228af5['query']);_0x151b51['filters']=_[_0x0b35('0x2e')](_0x151b51['model'],_0x151b51[_0x0b35('0x2b')]);_0x31abab[_0x0b35('0x2f')]=_['intersection'](_0x151b51[_0x0b35('0x31')],qs[_0x0b35('0x30')](_0x228af5[_0x0b35('0x2b')][_0x0b35('0x30')]));_0x31abab[_0x0b35('0x2f')]=_0x31abab['attributes'][_0x0b35('0x43')]?_0x31abab[_0x0b35('0x2f')]:_0x151b51[_0x0b35('0x31')];_0x31abab[_0x0b35('0x34')]=qs[_0x0b35('0x35')](_0x228af5['query'][_0x0b35('0x35')]);_0x31abab[_0x0b35('0x37')]=qs[_0x0b35('0x2d')](_['pick'](_0x228af5['query'],_0x151b51['filters']));if(_0x228af5[_0x0b35('0x2b')][_0x0b35('0x36')]){_0x31abab['where']=_[_0x0b35('0x38')](_0x31abab[_0x0b35('0x37')],{'$or':_['map'](_0x31abab[_0x0b35('0x2f')],function(_0x278111){var _0xe352f0={};_0xe352f0[_0x278111]={'$like':'%'+_0x228af5['query'][_0x0b35('0x36')]+'%'};return _0xe352f0;})});}_0x31abab=_['merge']({},_0x31abab,_0x228af5[_0x0b35('0x3b')]);return _0x165880[_0x0b35('0x46')](_0x31abab);}})['then'](function(_0x5a8ca5){if(_0x5a8ca5){_0x2fd586=_0x5a8ca5[_0x0b35('0x43')];if(!_0x228af5['query'][_0x0b35('0x32')]('nolimit')){_0x31abab[_0x0b35('0x1c')]=qs['limit'](_0x228af5[_0x0b35('0x2b')][_0x0b35('0x1c')]);_0x31abab[_0x0b35('0x1a')]=qs[_0x0b35('0x1a')](_0x228af5[_0x0b35('0x2b')]['offset']);}return _0x165880['getConfigurations'](_0x31abab);}})[_0x0b35('0x20')](function(_0x7e836c){if(_0x7e836c){return _0x7e836c?{'count':_0x2fd586,'rows':_0x7e836c}:null;}})[_0x0b35('0x20')](respondWithResult(_0x496a41,null))[_0x0b35('0x40')](handleError(_0x496a41,null));};exports[_0x0b35('0x48')]=function(_0x23d066,_0x2f6251,_0x5534dc){if(_0x23d066[_0x0b35('0x44')]['id']){delete _0x23d066[_0x0b35('0x44')]['id'];}return db[_0x0b35('0x3c')][_0x0b35('0x49')]({'where':{'id':_0x23d066['params']['id']}})['then'](handleEntityNotFound(_0x2f6251,null))[_0x0b35('0x20')](function(_0x48eb85){if(_0x48eb85){_0x23d066[_0x0b35('0x44')]['AccountId']=_0x48eb85['id'];_0x23d066['body'][_0x0b35('0x4a')]=integrations[_0x0b35('0x4b')](_0x23d066[_0x0b35('0x44')][_0x0b35('0x4c')],_0x23d066[_0x0b35('0x44')]['type']);_0x23d066['body'][_0x0b35('0x4d')]=integrations[_0x0b35('0x4e')](_0x23d066[_0x0b35('0x44')][_0x0b35('0x4c')],_0x23d066[_0x0b35('0x44')]['type']);return db[_0x0b35('0x47')][_0x0b35('0x4f')](_0x23d066['body'],{'include':[{'model':db[_0x0b35('0x50')],'as':_0x0b35('0x4a')},{'model':db[_0x0b35('0x50')],'as':_0x0b35('0x4d')}]});}return null;})['then'](respondWithResult(_0x2f6251,null))[_0x0b35('0x40')](handleError(_0x2f6251,null));};exports[_0x0b35('0x51')]=function(_0x1464a7,_0x3c18e2,_0x3fd9fd){var _0x1abb95='';return db[_0x0b35('0x3c')]['findOne']({'where':{'id':_0x1464a7[_0x0b35('0x42')]['id']},'attributes':['id','remoteUri','apiKey']})[_0x0b35('0x20')](handleEntityNotFound(_0x3c18e2,null))[_0x0b35('0x20')](function(_0x3a6767){if(_0x3a6767){_0x1abb95=_0x3a6767[_0x0b35('0x52')];var _0x19a97d=_0x1abb95[_0x0b35('0x53')](-0x1);if(_0x19a97d==='/'){_0x1abb95=_0x1abb95[_0x0b35('0x54')](0x0,_0x1abb95['lastIndexOf'](_0x19a97d));}return rp({'method':_0x0b35('0x55'),'uri':util[_0x0b35('0x56')]('%s/%s',_0x1abb95,_0x0b35('0x57')),'headers':{'Authorization':util[_0x0b35('0x56')](_0x0b35('0x58'),new Buffer(util[_0x0b35('0x56')](_0x0b35('0x59'),_0x3a6767[_0x0b35('0x5a')]))['toString'](_0x0b35('0x5b')))},'json':!![]});}})['then'](function(_0x552b32){if(_0x552b32){var _0x5ac939=[_0x0b35('0x5c'),_0x0b35('0x5d'),_0x0b35('0x5e'),_0x0b35('0x5f'),_0x0b35('0x17'),_0x0b35('0x60'),_0x0b35('0x61'),'source','ticket_type','group','company'];_['remove'](_0x552b32,function(_0x226b8a){return _0x5ac939[_0x0b35('0x62')](_0x226b8a[_0x0b35('0x25')])||!_0x226b8a[_0x0b35('0x63')]&&_0x226b8a[_0x0b35('0x39')]!==_0x0b35('0x64')&&_0x226b8a[_0x0b35('0x39')]!==_0x0b35('0x65');});return{'count':_0x552b32[_0x0b35('0x43')],'rows':_[_0x0b35('0x28')](_0x552b32,function(_0x3a0090){return{'id':_0x3a0090[_0x0b35('0x25')],'name':_0x3a0090['label'],'custom':!_0x3a0090[_0x0b35('0x63')],'options':_0x3a0090['choices']?_[_0x0b35('0x28')](_0x3a0090[_0x0b35('0x66')],function(_0x278920){return{'name':_[_0x0b35('0x67')](_0x278920),'value':_0x278920};}):[]};})};}})[_0x0b35('0x20')](respondWithResult(_0x3c18e2,null))[_0x0b35('0x40')](function(_0x4ba5e2){var _0x15cd88=_0x1464a7[_0x0b35('0x2b')][_0x0b35('0x68')]?0x1f4:_0x4ba5e2[_0x0b35('0x69')]||0x1f4;logger[_0x0b35('0x23')](_0x0b35('0x6a'),_0x0b35('0x51'),_0x15cd88,JSON[_0x0b35('0x6b')](_0x4ba5e2));delete _0x4ba5e2[_0x0b35('0x25')];if(_0x15cd88===0x191){_0x15cd88=0x190;}_0x3c18e2[_0x0b35('0x17')](_0x15cd88)['send'](_0x1464a7['query'][_0x0b35('0x68')]?{'message':_0x0b35('0x6c'),'statusCode':_0x4ba5e2[_0x0b35('0x69')]}:_0x4ba5e2);});};