10418af325ccbc20e50fa5062fed9ed40cf978dc
[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 _0x69e6=['custom_text','choices','capitalize','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../components/integrations/configuration','end','status','undefined','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','order','sort','pick','filter','where','VIRTUAL','merge','options','includeAll','include','FreshdeskAccount','rows','catch','keys','find','create','body','params','getConfigurations','findOne','FreshdeskConfiguration','hasOwnProperty','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','getDescriptions','FreshdeskField','Descriptions','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','%s/%s','api/v2/ticket_fields','format','Basic\x20%s','subject','agent','priority','group','source','ticket_type','remove','includes','default'];(function(_0x37807a,_0x402c9a){var _0x54c797=function(_0x1267f7){while(--_0x1267f7){_0x37807a['push'](_0x37807a['shift']());}};_0x54c797(++_0x402c9a);}(_0x69e6,0x1e0));var _0x669e=function(_0x1dbf2d,_0x2a1922){_0x1dbf2d=_0x1dbf2d-0x0;var _0x5acdbb=_0x69e6[_0x1dbf2d];return _0x5acdbb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x669e('0x0'));var zipdir=require(_0x669e('0x1'));var jsonpatch=require(_0x669e('0x2'));var rp=require(_0x669e('0x3'));var moment=require(_0x669e('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x669e('0x5'));var util=require(_0x669e('0x6'));var path=require(_0x669e('0x7'));var sox=require(_0x669e('0x8'));var csv=require(_0x669e('0x9'));var ejs=require(_0x669e('0xa'));var fs=require('fs');var fs_extra=require(_0x669e('0xb'));var _=require(_0x669e('0xc'));var squel=require(_0x669e('0xd'));var crypto=require(_0x669e('0xe'));var jsforce=require(_0x669e('0xf'));var deskjs=require(_0x669e('0x10'));var toCsv=require('to-csv');var querystring=require(_0x669e('0x11'));var Papa=require(_0x669e('0x12'));var Redis=require(_0x669e('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x669e('0x14'));var logger=require(_0x669e('0x15'))(_0x669e('0x16'));var utils=require(_0x669e('0x17'));var config=require(_0x669e('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0x669e('0x19'));function respondWithStatusCode(_0x1a7ea7,_0x344b70){_0x344b70=_0x344b70||0xcc;return function(_0x12e4aa){if(_0x12e4aa){return _0x1a7ea7['sendStatus'](_0x344b70);}return _0x1a7ea7['status'](_0x344b70)[_0x669e('0x1a')]();};}function respondWithResult(_0x557e55,_0x2e53db){_0x2e53db=_0x2e53db||0xc8;return function(_0x409754){if(_0x409754){return _0x557e55[_0x669e('0x1b')](_0x2e53db)['json'](_0x409754);}};}function respondWithFilteredResult(_0x648035,_0x255d4e){return function(_0x150993){if(_0x150993){var _0x151f76=typeof _0x255d4e['offset']===_0x669e('0x1c')&&typeof _0x255d4e['limit']===_0x669e('0x1c');var _0x370a82=_0x150993[_0x669e('0x1d')];var _0x81cb19=_0x151f76?0x0:_0x255d4e[_0x669e('0x1e')];var _0x47b558=_0x151f76?_0x150993['count']:_0x255d4e[_0x669e('0x1e')]+_0x255d4e[_0x669e('0x1f')];var _0x498f9d;if(_0x47b558>=_0x370a82){_0x47b558=_0x370a82;_0x498f9d=0xc8;}else{_0x498f9d=0xce;}_0x648035[_0x669e('0x1b')](_0x498f9d);return _0x648035[_0x669e('0x20')](_0x669e('0x21'),_0x81cb19+'-'+_0x47b558+'/'+_0x370a82)[_0x669e('0x22')](_0x150993);}return null;};}function patchUpdates(_0x52d60e){return function(_0x30f7b5){try{jsonpatch[_0x669e('0x23')](_0x30f7b5,_0x52d60e,!![]);}catch(_0x5ca591){return BPromise[_0x669e('0x24')](_0x5ca591);}return _0x30f7b5[_0x669e('0x25')]();};}function saveUpdates(_0x40a590,_0x58c08f){return function(_0x145f8d){if(_0x145f8d){return _0x145f8d[_0x669e('0x26')](_0x40a590)[_0x669e('0x27')](function(_0xbe2acd){return _0xbe2acd;});}return null;};}function removeEntity(_0x2eab78,_0x2f8d20){return function(_0x1cd3f4){if(_0x1cd3f4){return _0x1cd3f4[_0x669e('0x28')]()['then'](function(){_0x2eab78['status'](0xcc)[_0x669e('0x1a')]();});}};}function handleEntityNotFound(_0x4e4500,_0x343c0a){return function(_0x5dad02){if(!_0x5dad02){_0x4e4500[_0x669e('0x29')](0x194);}return _0x5dad02;};}function handleError(_0x372ea3,_0x27fa45){_0x27fa45=_0x27fa45||0x1f4;return function(_0x3b25a5){logger[_0x669e('0x2a')](_0x3b25a5[_0x669e('0x2b')]);if(_0x3b25a5['name']){delete _0x3b25a5[_0x669e('0x2c')];}_0x372ea3[_0x669e('0x1b')](_0x27fa45)[_0x669e('0x2d')](_0x3b25a5);};}exports[_0x669e('0x2e')]=function(_0x5bf9b2,_0xe3281e){var _0x283651={},_0x20142d={},_0x295859={'count':0x0,'rows':[]};var _0x5e1980=_[_0x669e('0x2f')](db['FreshdeskAccount'][_0x669e('0x30')],function(_0x400d8f){return{'name':_0x400d8f[_0x669e('0x31')],'type':_0x400d8f[_0x669e('0x32')][_0x669e('0x33')]};});_0x20142d['model']=_[_0x669e('0x2f')](_0x5e1980,_0x669e('0x2c'));_0x20142d[_0x669e('0x34')]=_['keys'](_0x5bf9b2[_0x669e('0x34')]);_0x20142d[_0x669e('0x35')]=_[_0x669e('0x36')](_0x20142d[_0x669e('0x37')],_0x20142d['query']);_0x283651[_0x669e('0x38')]=_['intersection'](_0x20142d['model'],qs[_0x669e('0x39')](_0x5bf9b2[_0x669e('0x34')][_0x669e('0x39')]));_0x283651[_0x669e('0x38')]=_0x283651[_0x669e('0x38')][_0x669e('0x3a')]?_0x283651[_0x669e('0x38')]:_0x20142d[_0x669e('0x37')];if(!_0x5bf9b2['query']['hasOwnProperty']('nolimit')){_0x283651['limit']=qs[_0x669e('0x1f')](_0x5bf9b2[_0x669e('0x34')][_0x669e('0x1f')]);_0x283651[_0x669e('0x1e')]=qs[_0x669e('0x1e')](_0x5bf9b2[_0x669e('0x34')][_0x669e('0x1e')]);}_0x283651[_0x669e('0x3b')]=qs[_0x669e('0x3c')](_0x5bf9b2['query']['sort']);_0x283651['where']=qs[_0x669e('0x35')](_[_0x669e('0x3d')](_0x5bf9b2[_0x669e('0x34')],_0x20142d['filters']),_0x5e1980);if(_0x5bf9b2[_0x669e('0x34')][_0x669e('0x3e')]){_0x283651[_0x669e('0x3f')]=_['merge'](_0x283651['where'],{'$or':_['map'](_0x5e1980,function(_0x4a7549){if(_0x4a7549[_0x669e('0x32')]!==_0x669e('0x40')){var _0x4a349c={};_0x4a349c[_0x4a7549[_0x669e('0x2c')]]={'$like':'%'+_0x5bf9b2[_0x669e('0x34')]['filter']+'%'};return _0x4a349c;}})});}_0x283651=_[_0x669e('0x41')]({},_0x283651,_0x5bf9b2[_0x669e('0x42')]);var _0x102da5={'where':_0x283651[_0x669e('0x3f')]};return db['FreshdeskAccount'][_0x669e('0x1d')](_0x102da5)['then'](function(_0x112acf){_0x295859[_0x669e('0x1d')]=_0x112acf;if(_0x5bf9b2[_0x669e('0x34')][_0x669e('0x43')]){_0x283651[_0x669e('0x44')]=[{'all':!![]}];}return db[_0x669e('0x45')]['findAll'](_0x283651);})[_0x669e('0x27')](function(_0x2711bc){_0x295859[_0x669e('0x46')]=_0x2711bc;return _0x295859;})[_0x669e('0x27')](respondWithFilteredResult(_0xe3281e,_0x283651))[_0x669e('0x47')](handleError(_0xe3281e,null));};exports['show']=function(_0x46783f,_0x4eb087){var _0x54e2a9={'raw':![],'where':{'id':_0x46783f['params']['id']}},_0x4d4a42={};_0x4d4a42[_0x669e('0x37')]=_['keys'](db[_0x669e('0x45')][_0x669e('0x30')]);_0x4d4a42['query']=_[_0x669e('0x48')](_0x46783f['query']);_0x4d4a42[_0x669e('0x35')]=_[_0x669e('0x36')](_0x4d4a42['model'],_0x4d4a42['query']);_0x54e2a9[_0x669e('0x38')]=_[_0x669e('0x36')](_0x4d4a42[_0x669e('0x37')],qs[_0x669e('0x39')](_0x46783f['query'][_0x669e('0x39')]));_0x54e2a9[_0x669e('0x38')]=_0x54e2a9[_0x669e('0x38')][_0x669e('0x3a')]?_0x54e2a9[_0x669e('0x38')]:_0x4d4a42[_0x669e('0x37')];if(_0x46783f['query']['includeAll']){_0x54e2a9['include']=[{'all':!![]}];}_0x54e2a9=_['merge']({},_0x54e2a9,_0x46783f[_0x669e('0x42')]);return db[_0x669e('0x45')][_0x669e('0x49')](_0x54e2a9)['then'](handleEntityNotFound(_0x4eb087,null))['then'](respondWithResult(_0x4eb087,null))[_0x669e('0x47')](handleError(_0x4eb087,null));};exports[_0x669e('0x4a')]=function(_0xe23432,_0x28507e){return db[_0x669e('0x45')][_0x669e('0x4a')](_0xe23432['body'],{})[_0x669e('0x27')](respondWithResult(_0x28507e,0xc9))[_0x669e('0x47')](handleError(_0x28507e,null));};exports['update']=function(_0x11d2c8,_0x1eaf9f){if(_0x11d2c8[_0x669e('0x4b')]['id']){delete _0x11d2c8['body']['id'];}return db[_0x669e('0x45')][_0x669e('0x49')]({'where':{'id':_0x11d2c8[_0x669e('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1eaf9f,null))[_0x669e('0x27')](saveUpdates(_0x11d2c8[_0x669e('0x4b')],null))[_0x669e('0x27')](respondWithResult(_0x1eaf9f,null))[_0x669e('0x47')](handleError(_0x1eaf9f,null));};exports['destroy']=function(_0x4e79c0,_0x1ec48d){return db['FreshdeskAccount']['find']({'where':{'id':_0x4e79c0[_0x669e('0x4c')]['id']}})[_0x669e('0x27')](handleEntityNotFound(_0x1ec48d,null))[_0x669e('0x27')](removeEntity(_0x1ec48d,null))[_0x669e('0x47')](handleError(_0x1ec48d,null));};exports[_0x669e('0x4d')]=function(_0x43921f,_0xdd2acf,_0x2c86d4){var _0x4225d6={};var _0xa71174={};var _0x5b9c4d;var _0x3169e7;return db[_0x669e('0x45')][_0x669e('0x4e')]({'where':{'id':_0x43921f[_0x669e('0x4c')]['id']}})[_0x669e('0x27')](handleEntityNotFound(_0xdd2acf,null))[_0x669e('0x27')](function(_0x29f05a){if(_0x29f05a){_0x5b9c4d=_0x29f05a;_0xa71174[_0x669e('0x37')]=_[_0x669e('0x48')](db[_0x669e('0x4f')][_0x669e('0x30')]);_0xa71174[_0x669e('0x34')]=_[_0x669e('0x48')](_0x43921f['query']);_0xa71174[_0x669e('0x35')]=_['intersection'](_0xa71174['model'],_0xa71174[_0x669e('0x34')]);_0x4225d6[_0x669e('0x38')]=_[_0x669e('0x36')](_0xa71174[_0x669e('0x37')],qs['fields'](_0x43921f[_0x669e('0x34')][_0x669e('0x39')]));_0x4225d6['attributes']=_0x4225d6[_0x669e('0x38')][_0x669e('0x3a')]?_0x4225d6[_0x669e('0x38')]:_0xa71174[_0x669e('0x37')];_0x4225d6[_0x669e('0x3b')]=qs['sort'](_0x43921f[_0x669e('0x34')][_0x669e('0x3c')]);_0x4225d6[_0x669e('0x3f')]=qs['filters'](_[_0x669e('0x3d')](_0x43921f[_0x669e('0x34')],_0xa71174[_0x669e('0x35')]));if(_0x43921f[_0x669e('0x34')][_0x669e('0x3e')]){_0x4225d6[_0x669e('0x3f')]=_[_0x669e('0x41')](_0x4225d6['where'],{'$or':_[_0x669e('0x2f')](_0x4225d6[_0x669e('0x38')],function(_0x4e9128){var _0x4f3306={};_0x4f3306[_0x4e9128]={'$like':'%'+_0x43921f[_0x669e('0x34')][_0x669e('0x3e')]+'%'};return _0x4f3306;})});}_0x4225d6=_[_0x669e('0x41')]({},_0x4225d6,_0x43921f[_0x669e('0x42')]);return _0x5b9c4d[_0x669e('0x4d')](_0x4225d6);}})[_0x669e('0x27')](function(_0x2162ba){if(_0x2162ba){_0x3169e7=_0x2162ba[_0x669e('0x3a')];if(!_0x43921f['query'][_0x669e('0x50')](_0x669e('0x51'))){_0x4225d6[_0x669e('0x1f')]=qs[_0x669e('0x1f')](_0x43921f[_0x669e('0x34')][_0x669e('0x1f')]);_0x4225d6[_0x669e('0x1e')]=qs['offset'](_0x43921f[_0x669e('0x34')][_0x669e('0x1e')]);}return _0x5b9c4d[_0x669e('0x4d')](_0x4225d6);}})[_0x669e('0x27')](function(_0x220e0d){if(_0x220e0d){return _0x220e0d?{'count':_0x3169e7,'rows':_0x220e0d}:null;}})['then'](respondWithResult(_0xdd2acf,null))['catch'](handleError(_0xdd2acf,null));};exports[_0x669e('0x52')]=function(_0x304332,_0x233942,_0x526212){if(_0x304332[_0x669e('0x4b')]['id']){delete _0x304332[_0x669e('0x4b')]['id'];}return db[_0x669e('0x45')][_0x669e('0x4e')]({'where':{'id':_0x304332['params']['id']}})[_0x669e('0x27')](handleEntityNotFound(_0x233942,null))['then'](function(_0x31b146){if(_0x31b146){_0x304332[_0x669e('0x4b')][_0x669e('0x53')]=_0x31b146['id'];_0x304332[_0x669e('0x4b')][_0x669e('0x54')]=integrations[_0x669e('0x55')](_0x304332['body'][_0x669e('0x56')],_0x304332['body'][_0x669e('0x32')]);_0x304332[_0x669e('0x4b')]['Descriptions']=integrations[_0x669e('0x57')](_0x304332[_0x669e('0x4b')][_0x669e('0x56')],_0x304332['body']['type']);return db[_0x669e('0x4f')][_0x669e('0x4a')](_0x304332[_0x669e('0x4b')],{'include':[{'model':db[_0x669e('0x58')],'as':_0x669e('0x54')},{'model':db['FreshdeskField'],'as':_0x669e('0x59')}]});}return null;})[_0x669e('0x27')](respondWithResult(_0x233942,null))[_0x669e('0x47')](handleError(_0x233942,null));};exports[_0x669e('0x5a')]=function(_0x417cdf,_0x26fb61,_0x228241){var _0x5b6336='';return db[_0x669e('0x45')][_0x669e('0x4e')]({'where':{'id':_0x417cdf[_0x669e('0x4c')]['id']},'attributes':['id',_0x669e('0x5b'),_0x669e('0x5c')]})[_0x669e('0x27')](handleEntityNotFound(_0x26fb61,null))[_0x669e('0x27')](function(_0x541148){if(_0x541148){_0x5b6336=_0x541148[_0x669e('0x5b')];var _0x482e2f=_0x5b6336[_0x669e('0x5d')](-0x1);if(_0x482e2f==='/'){_0x5b6336=_0x5b6336[_0x669e('0x5e')](0x0,_0x5b6336[_0x669e('0x5f')](_0x482e2f));}return rp({'method':_0x669e('0x60'),'uri':util['format'](_0x669e('0x61'),_0x5b6336,_0x669e('0x62')),'headers':{'Authorization':util[_0x669e('0x63')](_0x669e('0x64'),new Buffer(util[_0x669e('0x63')]('%s:X',_0x541148[_0x669e('0x5c')]))['toString']('base64'))},'json':!![]});}})[_0x669e('0x27')](function(_0x3f89ab){if(_0x3f89ab){var _0x2b2df9=['requester',_0x669e('0x65'),_0x669e('0x66'),'description',_0x669e('0x1b'),_0x669e('0x67'),_0x669e('0x68'),_0x669e('0x69'),_0x669e('0x6a'),_0x669e('0x68'),'company'];_[_0x669e('0x6b')](_0x3f89ab,function(_0x2dffdf){return _0x2b2df9[_0x669e('0x6c')](_0x2dffdf[_0x669e('0x2c')])||!_0x2dffdf[_0x669e('0x6d')]&&_0x2dffdf[_0x669e('0x32')]!==_0x669e('0x6e')&&_0x2dffdf[_0x669e('0x32')]!=='custom_dropdown';});return{'count':_0x3f89ab[_0x669e('0x3a')],'rows':_[_0x669e('0x2f')](_0x3f89ab,function(_0x4dadce){return{'id':_0x4dadce['name'],'name':_0x4dadce['label'],'custom':!_0x4dadce[_0x669e('0x6d')],'options':_0x4dadce[_0x669e('0x6f')]?_['map'](_0x4dadce[_0x669e('0x6f')],function(_0x55a4d9){return{'name':_[_0x669e('0x70')](_0x55a4d9),'value':_0x55a4d9};}):[]};})};}})[_0x669e('0x27')](respondWithResult(_0x26fb61,null))[_0x669e('0x47')](function(_0x3318b9){var _0x3442cc=_0x417cdf[_0x669e('0x34')]['test']?0x1f4:_0x3318b9[_0x669e('0x71')]||0x1f4;logger[_0x669e('0x2a')](_0x669e('0x72'),_0x669e('0x5a'),_0x3442cc,JSON[_0x669e('0x73')](_0x3318b9));delete _0x3318b9[_0x669e('0x2c')];if(_0x3442cc===0x191){_0x3442cc=0x190;}_0x26fb61[_0x669e('0x1b')](_0x3442cc)[_0x669e('0x2d')](_0x417cdf['query'][_0x669e('0x74')]?{'message':_0x669e('0x75'),'statusCode':_0x3318b9[_0x669e('0x71')]}:_0x3318b9);});};