Built motion from commit (unavailable).|2.5.8
[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 _0xeaa2=['base64','requester','description','priority','group','source','ticket_type','company','remove','includes','custom_text','custom_dropdown','label','default','choices','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','html-pdf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','ejs','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','client','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','sendStatus','status','end','json','count','offset','limit','Content-Range','save','update','then','stack','name','send','index','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','FreshdeskAccount','findAll','rows','show','params','rawAttributes','length','create','body','find','destroy','getConfigurations','findOne','FreshdeskConfiguration','nolimit','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','FreshdeskField','remoteUri','apiKey','slice','substring','lastIndexOf','format','%s/%s','api/v2/ticket_fields','Basic\x20%s','%s:X','toString'];(function(_0x222968,_0x1c0c31){var _0x5779ac=function(_0x42f633){while(--_0x42f633){_0x222968['push'](_0x222968['shift']());}};_0x5779ac(++_0x1c0c31);}(_0xeaa2,0x8d));var _0x2eaa=function(_0x52282a,_0x45aef7){_0x52282a=_0x52282a-0x0;var _0x3c66b4=_0xeaa2[_0x52282a];return _0x3c66b4;};'use strict';var pdf=require(_0x2eaa('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2eaa('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2eaa('0x2'));var BPromise=require(_0x2eaa('0x3'));var Mustache=require(_0x2eaa('0x4'));var util=require(_0x2eaa('0x5'));var path=require('path');var sox=require(_0x2eaa('0x6'));var csv=require(_0x2eaa('0x7'));var ejs=require(_0x2eaa('0x8'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x2eaa('0x9'));var jsforce=require(_0x2eaa('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x2eaa('0x7'));var querystring=require('querystring');var Papa=require(_0x2eaa('0xb'));var Redis=require(_0x2eaa('0xc'));var authService=require(_0x2eaa('0xd'));var qs=require(_0x2eaa('0xe'));var as=require(_0x2eaa('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2eaa('0x10'))('api');var utils=require('../../config/utils');var config=require(_0x2eaa('0x11'));var licenseUtil=require(_0x2eaa('0x12'));var db=require(_0x2eaa('0x13'))['db'];var integrations=require(_0x2eaa('0x14'));var jayson=require('jayson/promise');var client=jayson[_0x2eaa('0x15')]['http']({'port':0x232a});function respondWithRpcPromise(_0x7eb494,_0x252f29,_0x3e18cf,_0x2be4c4){return new BPromise(function(_0x2d0183,_0x4b3fb5){var _0x458d9a=_0x2be4c4||client;return _0x458d9a['request'](_0x7eb494,_0x3e18cf)['then'](function(_0x27d664){logger[_0x2eaa('0x16')](_0x2eaa('0x17'),_0x252f29,_0x2eaa('0x18'));logger[_0x2eaa('0x19')]('FreshdeskAccount,\x20%s,\x20%s,\x20%s',_0x252f29,_0x2eaa('0x18'),JSON[_0x2eaa('0x1a')](_0x27d664));if(_0x27d664[_0x2eaa('0x1b')]){if(_0x27d664['error'][_0x2eaa('0x1c')]===0x1f4){logger['error'](_0x2eaa('0x17'),_0x252f29,_0x27d664[_0x2eaa('0x1b')][_0x2eaa('0x1d')]);return _0x4b3fb5(_0x27d664[_0x2eaa('0x1b')][_0x2eaa('0x1d')]);}logger['error'](_0x2eaa('0x17'),_0x252f29,_0x27d664[_0x2eaa('0x1b')]['message']);return _0x2d0183(_0x27d664[_0x2eaa('0x1b')][_0x2eaa('0x1d')]);}else{logger[_0x2eaa('0x16')](_0x2eaa('0x17'),_0x252f29,_0x2eaa('0x18'));_0x2d0183(_0x27d664[_0x2eaa('0x1e')]['message']);}})[_0x2eaa('0x1f')](function(_0x696320){logger['error'](_0x2eaa('0x17'),_0x252f29,_0x696320);_0x4b3fb5(_0x696320);});});}function respondWithStatusCode(_0x1c55fd,_0x1c69b6){_0x1c69b6=_0x1c69b6||0xcc;return function(_0x42cfe2){if(_0x42cfe2){return _0x1c55fd[_0x2eaa('0x20')](_0x1c69b6);}return _0x1c55fd[_0x2eaa('0x21')](_0x1c69b6)[_0x2eaa('0x22')]();};}function respondWithResult(_0x58cdf9,_0x17d372){_0x17d372=_0x17d372||0xc8;return function(_0x257526){if(_0x257526){return _0x58cdf9['status'](_0x17d372)[_0x2eaa('0x23')](_0x257526);}};}function respondWithFilteredResult(_0x376c9a,_0x284622){return function(_0x252f47){if(_0x252f47){var _0xe89885=_0x252f47[_0x2eaa('0x24')],_0x3ad42b=_0x284622[_0x2eaa('0x25')],_0x3312bf=_0x284622[_0x2eaa('0x25')]+_0x284622[_0x2eaa('0x26')],_0x50a863;if(_0x3312bf>=_0xe89885){_0x3312bf=_0xe89885;_0x50a863=0xc8;}else{_0x50a863=0xce;}_0x376c9a[_0x2eaa('0x21')](_0x50a863);return _0x376c9a['set'](_0x2eaa('0x27'),_0x3ad42b+'-'+_0x3312bf+'/'+_0xe89885)[_0x2eaa('0x23')](_0x252f47);}return null;};}function patchUpdates(_0x37635e){return function(_0x1e5d60){try{jsonpatch['apply'](_0x1e5d60,_0x37635e,!![]);}catch(_0x5d064d){return BPromise['reject'](_0x5d064d);}return _0x1e5d60[_0x2eaa('0x28')]();};}function saveUpdates(_0xc120b,_0x193586){return function(_0x343ab7){if(_0x343ab7){return _0x343ab7[_0x2eaa('0x29')](_0xc120b)[_0x2eaa('0x2a')](function(_0x2457c6){return _0x2457c6;});}return null;};}function removeEntity(_0x5ea31a,_0x6ec4f3){return function(_0x376547){if(_0x376547){return _0x376547['destroy']()[_0x2eaa('0x2a')](function(){_0x5ea31a[_0x2eaa('0x21')](0xcc)[_0x2eaa('0x22')]();});}};}function handleEntityNotFound(_0x5765a4,_0x4915e8){return function(_0x203019){if(!_0x203019){_0x5765a4[_0x2eaa('0x20')](0x194);}return _0x203019;};}function handleError(_0x2d0487,_0x592cd8){_0x592cd8=_0x592cd8||0x1f4;return function(_0xfdd65a){logger[_0x2eaa('0x1b')](_0xfdd65a[_0x2eaa('0x2b')]);if(_0xfdd65a['name']){delete _0xfdd65a[_0x2eaa('0x2c')];}_0x2d0487[_0x2eaa('0x21')](_0x592cd8)[_0x2eaa('0x2d')](_0xfdd65a);};}exports[_0x2eaa('0x2e')]=function(_0x2c8b83,_0x46bb24){var _0x5cd04f={},_0x254f9a={},_0x43eb26={'count':0x0,'rows':[]};var _0x38bd0b=_['map'](db['FreshdeskAccount']['rawAttributes'],function(_0xecab71){return{'name':_0xecab71[_0x2eaa('0x2f')],'type':_0xecab71[_0x2eaa('0x30')][_0x2eaa('0x31')]};});_0x254f9a[_0x2eaa('0x32')]=_[_0x2eaa('0x33')](_0x38bd0b,_0x2eaa('0x2c'));_0x254f9a[_0x2eaa('0x34')]=_[_0x2eaa('0x35')](_0x2c8b83['query']);_0x254f9a[_0x2eaa('0x36')]=_[_0x2eaa('0x37')](_0x254f9a[_0x2eaa('0x32')],_0x254f9a['query']);_0x5cd04f['attributes']=_[_0x2eaa('0x37')](_0x254f9a[_0x2eaa('0x32')],qs[_0x2eaa('0x38')](_0x2c8b83[_0x2eaa('0x34')][_0x2eaa('0x38')]));_0x5cd04f[_0x2eaa('0x39')]=_0x5cd04f[_0x2eaa('0x39')]['length']?_0x5cd04f['attributes']:_0x254f9a[_0x2eaa('0x32')];if(!_0x2c8b83['query'][_0x2eaa('0x3a')]('nolimit')){_0x5cd04f[_0x2eaa('0x26')]=qs[_0x2eaa('0x26')](_0x2c8b83[_0x2eaa('0x34')]['limit']);_0x5cd04f[_0x2eaa('0x25')]=qs['offset'](_0x2c8b83[_0x2eaa('0x34')]['offset']);}_0x5cd04f[_0x2eaa('0x3b')]=qs[_0x2eaa('0x3c')](_0x2c8b83[_0x2eaa('0x34')][_0x2eaa('0x3c')]);_0x5cd04f[_0x2eaa('0x3d')]=qs[_0x2eaa('0x36')](_[_0x2eaa('0x3e')](_0x2c8b83[_0x2eaa('0x34')],_0x254f9a[_0x2eaa('0x36')]),_0x38bd0b);if(_0x2c8b83[_0x2eaa('0x34')][_0x2eaa('0x3f')]){_0x5cd04f[_0x2eaa('0x3d')]=_['merge'](_0x5cd04f[_0x2eaa('0x3d')],{'$or':_['map'](_0x38bd0b,function(_0x1a3d1b){if(_0x1a3d1b['type']!==_0x2eaa('0x40')){var _0x100f57={};_0x100f57[_0x1a3d1b[_0x2eaa('0x2c')]]={'$like':'%'+_0x2c8b83['query'][_0x2eaa('0x3f')]+'%'};return _0x100f57;}})});}_0x5cd04f=_[_0x2eaa('0x41')]({},_0x5cd04f,_0x2c8b83[_0x2eaa('0x42')]);var _0x5bc2c0={'where':_0x5cd04f[_0x2eaa('0x3d')]};return db['FreshdeskAccount']['count'](_0x5bc2c0)[_0x2eaa('0x2a')](function(_0x50a587){_0x43eb26[_0x2eaa('0x24')]=_0x50a587;if(_0x2c8b83['query'][_0x2eaa('0x43')]){_0x5cd04f['include']=[{'all':!![]}];}return db[_0x2eaa('0x44')][_0x2eaa('0x45')](_0x5cd04f);})[_0x2eaa('0x2a')](function(_0xd2cba6){_0x43eb26[_0x2eaa('0x46')]=_0xd2cba6;return _0x43eb26;})[_0x2eaa('0x2a')](respondWithFilteredResult(_0x46bb24,_0x5cd04f))[_0x2eaa('0x1f')](handleError(_0x46bb24,null));};exports[_0x2eaa('0x47')]=function(_0x185769,_0x424200){var _0x1e8a6e={'raw':![],'where':{'id':_0x185769[_0x2eaa('0x48')]['id']}},_0x3e6b46={};_0x3e6b46[_0x2eaa('0x32')]=_['keys'](db[_0x2eaa('0x44')][_0x2eaa('0x49')]);_0x3e6b46[_0x2eaa('0x34')]=_[_0x2eaa('0x35')](_0x185769['query']);_0x3e6b46[_0x2eaa('0x36')]=_[_0x2eaa('0x37')](_0x3e6b46[_0x2eaa('0x32')],_0x3e6b46['query']);_0x1e8a6e['attributes']=_['intersection'](_0x3e6b46[_0x2eaa('0x32')],qs[_0x2eaa('0x38')](_0x185769[_0x2eaa('0x34')][_0x2eaa('0x38')]));_0x1e8a6e[_0x2eaa('0x39')]=_0x1e8a6e[_0x2eaa('0x39')][_0x2eaa('0x4a')]?_0x1e8a6e[_0x2eaa('0x39')]:_0x3e6b46[_0x2eaa('0x32')];if(_0x185769['query'][_0x2eaa('0x43')]){_0x1e8a6e['include']=[{'all':!![]}];}_0x1e8a6e=_[_0x2eaa('0x41')]({},_0x1e8a6e,_0x185769['options']);return db[_0x2eaa('0x44')]['find'](_0x1e8a6e)[_0x2eaa('0x2a')](handleEntityNotFound(_0x424200,null))[_0x2eaa('0x2a')](respondWithResult(_0x424200,null))[_0x2eaa('0x1f')](handleError(_0x424200,null));};exports['create']=function(_0x32ad22,_0x56b0c0){return db[_0x2eaa('0x44')][_0x2eaa('0x4b')](_0x32ad22[_0x2eaa('0x4c')],{})[_0x2eaa('0x2a')](respondWithResult(_0x56b0c0,0xc9))['catch'](handleError(_0x56b0c0,null));};exports[_0x2eaa('0x29')]=function(_0x2702b7,_0xd5b76c){if(_0x2702b7[_0x2eaa('0x4c')]['id']){delete _0x2702b7['body']['id'];}return db['FreshdeskAccount'][_0x2eaa('0x4d')]({'where':{'id':_0x2702b7[_0x2eaa('0x48')]['id']}})['then'](handleEntityNotFound(_0xd5b76c,null))['then'](saveUpdates(_0x2702b7[_0x2eaa('0x4c')],null))[_0x2eaa('0x2a')](respondWithResult(_0xd5b76c,null))[_0x2eaa('0x1f')](handleError(_0xd5b76c,null));};exports[_0x2eaa('0x4e')]=function(_0x2e95e8,_0x3fe288){return db[_0x2eaa('0x44')][_0x2eaa('0x4d')]({'where':{'id':_0x2e95e8['params']['id']}})[_0x2eaa('0x2a')](handleEntityNotFound(_0x3fe288,null))[_0x2eaa('0x2a')](removeEntity(_0x3fe288,null))[_0x2eaa('0x1f')](handleError(_0x3fe288,null));};exports[_0x2eaa('0x4f')]=function(_0x53afcc,_0x12f5b7,_0x5084dc){var _0x37914c={};var _0x208021={};var _0x2504b4;var _0x1aa908;return db[_0x2eaa('0x44')][_0x2eaa('0x50')]({'where':{'id':_0x53afcc['params']['id']}})['then'](handleEntityNotFound(_0x12f5b7,null))[_0x2eaa('0x2a')](function(_0x18f23e){if(_0x18f23e){_0x2504b4=_0x18f23e;_0x208021['model']=_[_0x2eaa('0x35')](db[_0x2eaa('0x51')][_0x2eaa('0x49')]);_0x208021['query']=_[_0x2eaa('0x35')](_0x53afcc['query']);_0x208021[_0x2eaa('0x36')]=_[_0x2eaa('0x37')](_0x208021[_0x2eaa('0x32')],_0x208021['query']);_0x37914c[_0x2eaa('0x39')]=_[_0x2eaa('0x37')](_0x208021['model'],qs[_0x2eaa('0x38')](_0x53afcc[_0x2eaa('0x34')][_0x2eaa('0x38')]));_0x37914c[_0x2eaa('0x39')]=_0x37914c['attributes'][_0x2eaa('0x4a')]?_0x37914c[_0x2eaa('0x39')]:_0x208021[_0x2eaa('0x32')];_0x37914c[_0x2eaa('0x3b')]=qs[_0x2eaa('0x3c')](_0x53afcc[_0x2eaa('0x34')]['sort']);_0x37914c[_0x2eaa('0x3d')]=qs[_0x2eaa('0x36')](_[_0x2eaa('0x3e')](_0x53afcc[_0x2eaa('0x34')],_0x208021[_0x2eaa('0x36')]));if(_0x53afcc[_0x2eaa('0x34')]['filter']){_0x37914c[_0x2eaa('0x3d')]=_['merge'](_0x37914c[_0x2eaa('0x3d')],{'$or':_[_0x2eaa('0x33')](_0x37914c[_0x2eaa('0x39')],function(_0x20065f){var _0x2b0550={};_0x2b0550[_0x20065f]={'$like':'%'+_0x53afcc[_0x2eaa('0x34')][_0x2eaa('0x3f')]+'%'};return _0x2b0550;})});}_0x37914c=_[_0x2eaa('0x41')]({},_0x37914c,_0x53afcc[_0x2eaa('0x42')]);return _0x2504b4[_0x2eaa('0x4f')](_0x37914c);}})[_0x2eaa('0x2a')](function(_0x48254b){if(_0x48254b){_0x1aa908=_0x48254b[_0x2eaa('0x4a')];if(!_0x53afcc[_0x2eaa('0x34')]['hasOwnProperty'](_0x2eaa('0x52'))){_0x37914c['limit']=qs[_0x2eaa('0x26')](_0x53afcc[_0x2eaa('0x34')][_0x2eaa('0x26')]);_0x37914c[_0x2eaa('0x25')]=qs['offset'](_0x53afcc['query']['offset']);}return _0x2504b4[_0x2eaa('0x4f')](_0x37914c);}})['then'](function(_0x41d29a){if(_0x41d29a){return _0x41d29a?{'count':_0x1aa908,'rows':_0x41d29a}:null;}})[_0x2eaa('0x2a')](respondWithResult(_0x12f5b7,null))[_0x2eaa('0x1f')](handleError(_0x12f5b7,null));};exports['addConfiguration']=function(_0x30dc44,_0x209b6d,_0x22273f){if(_0x30dc44['body']['id']){delete _0x30dc44['body']['id'];}return db[_0x2eaa('0x44')][_0x2eaa('0x50')]({'where':{'id':_0x30dc44[_0x2eaa('0x48')]['id']}})['then'](handleEntityNotFound(_0x209b6d,null))[_0x2eaa('0x2a')](function(_0x489076){if(_0x489076){_0x30dc44[_0x2eaa('0x4c')][_0x2eaa('0x53')]=_0x489076['id'];_0x30dc44[_0x2eaa('0x4c')][_0x2eaa('0x54')]=integrations[_0x2eaa('0x55')](_0x30dc44[_0x2eaa('0x4c')]['channel'],_0x30dc44['body'][_0x2eaa('0x30')]);_0x30dc44['body'][_0x2eaa('0x56')]=integrations[_0x2eaa('0x57')](_0x30dc44[_0x2eaa('0x4c')][_0x2eaa('0x58')],_0x30dc44[_0x2eaa('0x4c')]['type']);return db[_0x2eaa('0x51')]['create'](_0x30dc44[_0x2eaa('0x4c')],{'include':[{'model':db['FreshdeskField'],'as':_0x2eaa('0x54')},{'model':db[_0x2eaa('0x59')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x209b6d,null))[_0x2eaa('0x1f')](handleError(_0x209b6d,null));};exports['getFields']=function(_0xdbeb7b,_0x3b6e78,_0x8384c9){var _0x5a826d='';return db['FreshdeskAccount'][_0x2eaa('0x50')]({'where':{'id':_0xdbeb7b[_0x2eaa('0x48')]['id']},'attributes':['id',_0x2eaa('0x5a'),_0x2eaa('0x5b')]})[_0x2eaa('0x2a')](handleEntityNotFound(_0x3b6e78,null))[_0x2eaa('0x2a')](function(_0x3084bc){if(_0x3084bc){_0x5a826d=_0x3084bc[_0x2eaa('0x5a')];var _0x548b29=_0x5a826d[_0x2eaa('0x5c')](-0x1);if(_0x548b29==='/'){_0x5a826d=_0x5a826d[_0x2eaa('0x5d')](0x0,_0x5a826d[_0x2eaa('0x5e')](_0x548b29));}return rp({'method':'GET','uri':util[_0x2eaa('0x5f')](_0x2eaa('0x60'),_0x5a826d,_0x2eaa('0x61')),'headers':{'Authorization':util[_0x2eaa('0x5f')](_0x2eaa('0x62'),new Buffer(util[_0x2eaa('0x5f')](_0x2eaa('0x63'),_0x3084bc[_0x2eaa('0x5b')]))[_0x2eaa('0x64')](_0x2eaa('0x65')))},'json':!![]});}})['then'](function(_0x1c6e6a){if(_0x1c6e6a){var _0x51ccf3=[_0x2eaa('0x66'),'subject','agent',_0x2eaa('0x67'),_0x2eaa('0x21'),_0x2eaa('0x68'),_0x2eaa('0x69'),_0x2eaa('0x6a'),_0x2eaa('0x6b'),_0x2eaa('0x69'),_0x2eaa('0x6c')];_[_0x2eaa('0x6d')](_0x1c6e6a,function(_0x113a7b){return _0x51ccf3[_0x2eaa('0x6e')](_0x113a7b[_0x2eaa('0x2c')])||!_0x113a7b['default']&&_0x113a7b[_0x2eaa('0x30')]!==_0x2eaa('0x6f')&&_0x113a7b[_0x2eaa('0x30')]!==_0x2eaa('0x70');});return{'count':_0x1c6e6a[_0x2eaa('0x4a')],'rows':_[_0x2eaa('0x33')](_0x1c6e6a,function(_0x2b321f){return{'id':_0x2b321f['name'],'name':_0x2b321f[_0x2eaa('0x71')],'custom':!_0x2b321f[_0x2eaa('0x72')],'options':_0x2b321f[_0x2eaa('0x73')]?_['map'](_0x2b321f[_0x2eaa('0x73')],function(_0x58d504){return{'name':_['capitalize'](_0x58d504),'value':_0x58d504};}):[]};})};}})['then'](respondWithResult(_0x3b6e78,null))[_0x2eaa('0x1f')](function(_0x2d8ba9){var _0x24c037=_0xdbeb7b['query'][_0x2eaa('0x74')]?0x1f4:_0x2d8ba9[_0x2eaa('0x75')]||0x1f4;logger['error'](_0x2eaa('0x76'),_0x2eaa('0x77'),_0x24c037,JSON[_0x2eaa('0x1a')](_0x2d8ba9));delete _0x2d8ba9['name'];if(_0x24c037===0x191){_0x24c037=0x190;}_0x3b6e78[_0x2eaa('0x21')](_0x24c037)[_0x2eaa('0x2d')](_0xdbeb7b['query'][_0x2eaa('0x74')]?{'message':_0x2eaa('0x78'),'statusCode':_0x2d8ba9[_0x2eaa('0x75')]}:_0x2d8ba9);});};