59a06270eb178a70cd1e7588c6b6878684a07f85
[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 _0x4899=['getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','zip-dir','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','index','map','FreshdeskAccount','rawAttributes','type','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','rows','catch','show','params','options','find','create','body','FreshdeskConfiguration','getConfigurations','nolimit','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','substring','GET','format','api/v2/ticket_fields','Basic\x20%s','%s:X','toString','requester','subject','agent','priority','group','source','ticket_type','company','remove','default','choices','capitalize','test','statusCode'];(function(_0x138b49,_0x2a7216){var _0x56aa6e=function(_0x37a10b){while(--_0x37a10b){_0x138b49['push'](_0x138b49['shift']());}};_0x56aa6e(++_0x2a7216);}(_0x4899,0x74));var _0x9489=function(_0x2c9591,_0x5f49d7){_0x2c9591=_0x2c9591-0x0;var _0x496131=_0x4899[_0x2c9591];return _0x496131;};'use strict';var emlformat=require(_0x9489('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9489('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9489('0x2'));var moment=require('moment');var BPromise=require(_0x9489('0x3'));var Mustache=require(_0x9489('0x4'));var util=require(_0x9489('0x5'));var path=require(_0x9489('0x6'));var sox=require(_0x9489('0x7'));var csv=require('to-csv');var ejs=require(_0x9489('0x8'));var fs=require('fs');var fs_extra=require(_0x9489('0x9'));var _=require(_0x9489('0xa'));var squel=require(_0x9489('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x9489('0xc'));var toCsv=require('to-csv');var querystring=require(_0x9489('0xd'));var Papa=require(_0x9489('0xe'));var Redis=require('ioredis');var authService=require(_0x9489('0xf'));var qs=require(_0x9489('0x10'));var as=require(_0x9489('0x11'));var hardwareService=require(_0x9489('0x12'));var logger=require(_0x9489('0x13'))(_0x9489('0x14'));var utils=require(_0x9489('0x15'));var config=require(_0x9489('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9489('0x17'))['db'];var integrations=require(_0x9489('0x18'));function respondWithStatusCode(_0x7368e2,_0x5de484){_0x5de484=_0x5de484||0xcc;return function(_0x532b72){if(_0x532b72){return _0x7368e2[_0x9489('0x19')](_0x5de484);}return _0x7368e2[_0x9489('0x1a')](_0x5de484)[_0x9489('0x1b')]();};}function respondWithResult(_0x4c3003,_0x402022){_0x402022=_0x402022||0xc8;return function(_0x51ecea){if(_0x51ecea){return _0x4c3003[_0x9489('0x1a')](_0x402022)['json'](_0x51ecea);}};}function respondWithFilteredResult(_0x98390b,_0x18a0aa){return function(_0x1cb631){if(_0x1cb631){var _0x33c217=typeof _0x18a0aa[_0x9489('0x1c')]==='undefined'&&typeof _0x18a0aa[_0x9489('0x1d')]==='undefined';var _0x5b939f=_0x1cb631[_0x9489('0x1e')];var _0x1f0a5d=_0x33c217?0x0:_0x18a0aa[_0x9489('0x1c')];var _0x50b7da=_0x33c217?_0x1cb631[_0x9489('0x1e')]:_0x18a0aa[_0x9489('0x1c')]+_0x18a0aa['limit'];var _0x5347b2;if(_0x50b7da>=_0x5b939f){_0x50b7da=_0x5b939f;_0x5347b2=0xc8;}else{_0x5347b2=0xce;}_0x98390b[_0x9489('0x1a')](_0x5347b2);return _0x98390b[_0x9489('0x1f')](_0x9489('0x20'),_0x1f0a5d+'-'+_0x50b7da+'/'+_0x5b939f)[_0x9489('0x21')](_0x1cb631);}return null;};}function patchUpdates(_0x208bad){return function(_0x1e505a){try{jsonpatch[_0x9489('0x22')](_0x1e505a,_0x208bad,!![]);}catch(_0x4c58ec){return BPromise[_0x9489('0x23')](_0x4c58ec);}return _0x1e505a[_0x9489('0x24')]();};}function saveUpdates(_0x1cf61d,_0x5da0e9){return function(_0x1d248a){if(_0x1d248a){return _0x1d248a[_0x9489('0x25')](_0x1cf61d)[_0x9489('0x26')](function(_0x2f604a){return _0x2f604a;});}return null;};}function removeEntity(_0x1d6aa2,_0x37cea1){return function(_0x551b93){if(_0x551b93){return _0x551b93[_0x9489('0x27')]()[_0x9489('0x26')](function(){_0x1d6aa2[_0x9489('0x1a')](0xcc)[_0x9489('0x1b')]();});}};}function handleEntityNotFound(_0x2daed4,_0x1ede2f){return function(_0x21ea0a){if(!_0x21ea0a){_0x2daed4[_0x9489('0x19')](0x194);}return _0x21ea0a;};}function handleError(_0xd92a57,_0x1d9cdf){_0x1d9cdf=_0x1d9cdf||0x1f4;return function(_0x464ea6){logger[_0x9489('0x28')](_0x464ea6[_0x9489('0x29')]);if(_0x464ea6[_0x9489('0x2a')]){delete _0x464ea6[_0x9489('0x2a')];}_0xd92a57[_0x9489('0x1a')](_0x1d9cdf)['send'](_0x464ea6);};}exports[_0x9489('0x2b')]=function(_0x59b968,_0x4a640e){var _0x4bc3ce={},_0x42ff88={},_0x13fc88={'count':0x0,'rows':[]};var _0x5515a9=_[_0x9489('0x2c')](db[_0x9489('0x2d')][_0x9489('0x2e')],function(_0x4f1bad){return{'name':_0x4f1bad['fieldName'],'type':_0x4f1bad[_0x9489('0x2f')]['key']};});_0x42ff88[_0x9489('0x30')]=_[_0x9489('0x2c')](_0x5515a9,_0x9489('0x2a'));_0x42ff88[_0x9489('0x31')]=_[_0x9489('0x32')](_0x59b968['query']);_0x42ff88['filters']=_[_0x9489('0x33')](_0x42ff88[_0x9489('0x30')],_0x42ff88[_0x9489('0x31')]);_0x4bc3ce['attributes']=_[_0x9489('0x33')](_0x42ff88['model'],qs[_0x9489('0x34')](_0x59b968[_0x9489('0x31')][_0x9489('0x34')]));_0x4bc3ce[_0x9489('0x35')]=_0x4bc3ce['attributes'][_0x9489('0x36')]?_0x4bc3ce[_0x9489('0x35')]:_0x42ff88[_0x9489('0x30')];if(!_0x59b968['query'][_0x9489('0x37')]('nolimit')){_0x4bc3ce[_0x9489('0x1d')]=qs[_0x9489('0x1d')](_0x59b968['query'][_0x9489('0x1d')]);_0x4bc3ce[_0x9489('0x1c')]=qs[_0x9489('0x1c')](_0x59b968['query'][_0x9489('0x1c')]);}_0x4bc3ce[_0x9489('0x38')]=qs[_0x9489('0x39')](_0x59b968[_0x9489('0x31')][_0x9489('0x39')]);_0x4bc3ce[_0x9489('0x3a')]=qs[_0x9489('0x3b')](_[_0x9489('0x3c')](_0x59b968[_0x9489('0x31')],_0x42ff88[_0x9489('0x3b')]),_0x5515a9);if(_0x59b968[_0x9489('0x31')][_0x9489('0x3d')]){_0x4bc3ce[_0x9489('0x3a')]=_[_0x9489('0x3e')](_0x4bc3ce[_0x9489('0x3a')],{'$or':_[_0x9489('0x2c')](_0x5515a9,function(_0x253a32){if(_0x253a32[_0x9489('0x2f')]!==_0x9489('0x3f')){var _0x367a54={};_0x367a54[_0x253a32[_0x9489('0x2a')]]={'$like':'%'+_0x59b968[_0x9489('0x31')]['filter']+'%'};return _0x367a54;}})});}_0x4bc3ce=_['merge']({},_0x4bc3ce,_0x59b968['options']);var _0x453cd2={'where':_0x4bc3ce[_0x9489('0x3a')]};return db[_0x9489('0x2d')][_0x9489('0x1e')](_0x453cd2)[_0x9489('0x26')](function(_0x2ff936){_0x13fc88[_0x9489('0x1e')]=_0x2ff936;if(_0x59b968[_0x9489('0x31')][_0x9489('0x40')]){_0x4bc3ce[_0x9489('0x41')]=[{'all':!![]}];}return db[_0x9489('0x2d')]['findAll'](_0x4bc3ce);})[_0x9489('0x26')](function(_0x33e00d){_0x13fc88[_0x9489('0x42')]=_0x33e00d;return _0x13fc88;})[_0x9489('0x26')](respondWithFilteredResult(_0x4a640e,_0x4bc3ce))[_0x9489('0x43')](handleError(_0x4a640e,null));};exports[_0x9489('0x44')]=function(_0xe0714d,_0x26b316){var _0x1aaeb6={'raw':![],'where':{'id':_0xe0714d[_0x9489('0x45')]['id']}},_0x5d7549={};_0x5d7549[_0x9489('0x30')]=_[_0x9489('0x32')](db[_0x9489('0x2d')][_0x9489('0x2e')]);_0x5d7549[_0x9489('0x31')]=_[_0x9489('0x32')](_0xe0714d['query']);_0x5d7549[_0x9489('0x3b')]=_[_0x9489('0x33')](_0x5d7549[_0x9489('0x30')],_0x5d7549[_0x9489('0x31')]);_0x1aaeb6[_0x9489('0x35')]=_[_0x9489('0x33')](_0x5d7549['model'],qs['fields'](_0xe0714d['query'][_0x9489('0x34')]));_0x1aaeb6[_0x9489('0x35')]=_0x1aaeb6[_0x9489('0x35')][_0x9489('0x36')]?_0x1aaeb6[_0x9489('0x35')]:_0x5d7549[_0x9489('0x30')];if(_0xe0714d[_0x9489('0x31')][_0x9489('0x40')]){_0x1aaeb6[_0x9489('0x41')]=[{'all':!![]}];}_0x1aaeb6=_[_0x9489('0x3e')]({},_0x1aaeb6,_0xe0714d[_0x9489('0x46')]);return db[_0x9489('0x2d')][_0x9489('0x47')](_0x1aaeb6)['then'](handleEntityNotFound(_0x26b316,null))[_0x9489('0x26')](respondWithResult(_0x26b316,null))[_0x9489('0x43')](handleError(_0x26b316,null));};exports[_0x9489('0x48')]=function(_0xd63998,_0x289ea7){return db['FreshdeskAccount']['create'](_0xd63998[_0x9489('0x49')],{})[_0x9489('0x26')](respondWithResult(_0x289ea7,0xc9))[_0x9489('0x43')](handleError(_0x289ea7,null));};exports[_0x9489('0x25')]=function(_0x35abcb,_0x3dbebe){if(_0x35abcb[_0x9489('0x49')]['id']){delete _0x35abcb[_0x9489('0x49')]['id'];}return db[_0x9489('0x2d')][_0x9489('0x47')]({'where':{'id':_0x35abcb[_0x9489('0x45')]['id']}})[_0x9489('0x26')](handleEntityNotFound(_0x3dbebe,null))[_0x9489('0x26')](saveUpdates(_0x35abcb[_0x9489('0x49')],null))[_0x9489('0x26')](respondWithResult(_0x3dbebe,null))[_0x9489('0x43')](handleError(_0x3dbebe,null));};exports[_0x9489('0x27')]=function(_0x2c9ce7,_0x3be848){return db[_0x9489('0x2d')][_0x9489('0x47')]({'where':{'id':_0x2c9ce7[_0x9489('0x45')]['id']}})[_0x9489('0x26')](handleEntityNotFound(_0x3be848,null))[_0x9489('0x26')](removeEntity(_0x3be848,null))[_0x9489('0x43')](handleError(_0x3be848,null));};exports['getConfigurations']=function(_0x24a965,_0x1a36ef,_0x20847b){var _0x3b7023={};var _0x4e91c3={};var _0x41331a;var _0x1edcc1;return db[_0x9489('0x2d')]['findOne']({'where':{'id':_0x24a965['params']['id']}})[_0x9489('0x26')](handleEntityNotFound(_0x1a36ef,null))['then'](function(_0x466bee){if(_0x466bee){_0x41331a=_0x466bee;_0x4e91c3['model']=_[_0x9489('0x32')](db[_0x9489('0x4a')][_0x9489('0x2e')]);_0x4e91c3[_0x9489('0x31')]=_[_0x9489('0x32')](_0x24a965['query']);_0x4e91c3['filters']=_['intersection'](_0x4e91c3['model'],_0x4e91c3['query']);_0x3b7023[_0x9489('0x35')]=_['intersection'](_0x4e91c3[_0x9489('0x30')],qs[_0x9489('0x34')](_0x24a965[_0x9489('0x31')][_0x9489('0x34')]));_0x3b7023[_0x9489('0x35')]=_0x3b7023[_0x9489('0x35')][_0x9489('0x36')]?_0x3b7023[_0x9489('0x35')]:_0x4e91c3['model'];_0x3b7023[_0x9489('0x38')]=qs['sort'](_0x24a965[_0x9489('0x31')]['sort']);_0x3b7023['where']=qs[_0x9489('0x3b')](_[_0x9489('0x3c')](_0x24a965[_0x9489('0x31')],_0x4e91c3[_0x9489('0x3b')]));if(_0x24a965[_0x9489('0x31')][_0x9489('0x3d')]){_0x3b7023[_0x9489('0x3a')]=_[_0x9489('0x3e')](_0x3b7023[_0x9489('0x3a')],{'$or':_[_0x9489('0x2c')](_0x3b7023[_0x9489('0x35')],function(_0x2164d8){var _0x2ae177={};_0x2ae177[_0x2164d8]={'$like':'%'+_0x24a965['query'][_0x9489('0x3d')]+'%'};return _0x2ae177;})});}_0x3b7023=_['merge']({},_0x3b7023,_0x24a965['options']);return _0x41331a[_0x9489('0x4b')](_0x3b7023);}})[_0x9489('0x26')](function(_0xf3ab37){if(_0xf3ab37){_0x1edcc1=_0xf3ab37[_0x9489('0x36')];if(!_0x24a965[_0x9489('0x31')][_0x9489('0x37')](_0x9489('0x4c'))){_0x3b7023[_0x9489('0x1d')]=qs[_0x9489('0x1d')](_0x24a965[_0x9489('0x31')][_0x9489('0x1d')]);_0x3b7023['offset']=qs[_0x9489('0x1c')](_0x24a965[_0x9489('0x31')][_0x9489('0x1c')]);}return _0x41331a['getConfigurations'](_0x3b7023);}})[_0x9489('0x26')](function(_0x186608){if(_0x186608){return _0x186608?{'count':_0x1edcc1,'rows':_0x186608}:null;}})[_0x9489('0x26')](respondWithResult(_0x1a36ef,null))[_0x9489('0x43')](handleError(_0x1a36ef,null));};exports[_0x9489('0x4d')]=function(_0x16f995,_0x203818,_0x19ee5c){if(_0x16f995['body']['id']){delete _0x16f995['body']['id'];}return db[_0x9489('0x2d')][_0x9489('0x4e')]({'where':{'id':_0x16f995[_0x9489('0x45')]['id']}})[_0x9489('0x26')](handleEntityNotFound(_0x203818,null))['then'](function(_0xfdd005){if(_0xfdd005){_0x16f995[_0x9489('0x49')][_0x9489('0x4f')]=_0xfdd005['id'];_0x16f995[_0x9489('0x49')][_0x9489('0x50')]=integrations[_0x9489('0x51')](_0x16f995['body'][_0x9489('0x52')],_0x16f995[_0x9489('0x49')][_0x9489('0x2f')]);_0x16f995[_0x9489('0x49')][_0x9489('0x53')]=integrations[_0x9489('0x54')](_0x16f995[_0x9489('0x49')][_0x9489('0x52')],_0x16f995['body']['type']);return db[_0x9489('0x4a')][_0x9489('0x48')](_0x16f995['body'],{'include':[{'model':db[_0x9489('0x55')],'as':_0x9489('0x50')},{'model':db[_0x9489('0x55')],'as':_0x9489('0x53')}]});}return null;})[_0x9489('0x26')](respondWithResult(_0x203818,null))[_0x9489('0x43')](handleError(_0x203818,null));};exports[_0x9489('0x56')]=function(_0x451bad,_0x1cafdb,_0x2b06ef){var _0x5bc1e7='';return db[_0x9489('0x2d')][_0x9489('0x4e')]({'where':{'id':_0x451bad[_0x9489('0x45')]['id']},'attributes':['id',_0x9489('0x57'),_0x9489('0x58')]})['then'](handleEntityNotFound(_0x1cafdb,null))[_0x9489('0x26')](function(_0x5dacf5){if(_0x5dacf5){_0x5bc1e7=_0x5dacf5[_0x9489('0x57')];var _0x911c40=_0x5bc1e7['slice'](-0x1);if(_0x911c40==='/'){_0x5bc1e7=_0x5bc1e7[_0x9489('0x59')](0x0,_0x5bc1e7['lastIndexOf'](_0x911c40));}return rp({'method':_0x9489('0x5a'),'uri':util[_0x9489('0x5b')]('%s/%s',_0x5bc1e7,_0x9489('0x5c')),'headers':{'Authorization':util[_0x9489('0x5b')](_0x9489('0x5d'),new Buffer(util['format'](_0x9489('0x5e'),_0x5dacf5[_0x9489('0x58')]))[_0x9489('0x5f')]('base64'))},'json':!![]});}})[_0x9489('0x26')](function(_0x58f106){if(_0x58f106){var _0x233632=[_0x9489('0x60'),_0x9489('0x61'),_0x9489('0x62'),'description',_0x9489('0x1a'),_0x9489('0x63'),_0x9489('0x64'),_0x9489('0x65'),_0x9489('0x66'),_0x9489('0x64'),_0x9489('0x67')];_[_0x9489('0x68')](_0x58f106,function(_0x4707bf){return _0x233632['includes'](_0x4707bf[_0x9489('0x2a')])||!_0x4707bf[_0x9489('0x69')]&&_0x4707bf[_0x9489('0x2f')]!=='custom_text'&&_0x4707bf[_0x9489('0x2f')]!=='custom_dropdown';});return{'count':_0x58f106['length'],'rows':_[_0x9489('0x2c')](_0x58f106,function(_0x1f7ca4){return{'id':_0x1f7ca4[_0x9489('0x2a')],'name':_0x1f7ca4['label'],'custom':!_0x1f7ca4[_0x9489('0x69')],'options':_0x1f7ca4['choices']?_[_0x9489('0x2c')](_0x1f7ca4[_0x9489('0x6a')],function(_0x367eed){return{'name':_[_0x9489('0x6b')](_0x367eed),'value':_0x367eed};}):[]};})};}})[_0x9489('0x26')](respondWithResult(_0x1cafdb,null))[_0x9489('0x43')](function(_0x100ca6){var _0x504071=_0x451bad[_0x9489('0x31')][_0x9489('0x6c')]?0x1f4:_0x100ca6[_0x9489('0x6d')]||0x1f4;logger[_0x9489('0x28')](_0x9489('0x6e'),_0x9489('0x56'),_0x504071,JSON[_0x9489('0x6f')](_0x100ca6));delete _0x100ca6[_0x9489('0x2a')];if(_0x504071===0x191){_0x504071=0x190;}_0x1cafdb['status'](_0x504071)['send'](_0x451bad[_0x9489('0x31')][_0x9489('0x6c')]?{'message':_0x9489('0x70'),'statusCode':_0x100ca6[_0x9489('0x6d')]}:_0x100ca6);});};