Commit 051778a1cd43211d72e9dfa48d657ab8f34e98c7
1 parent
13f6323037
Exists in
master
config.do_not_forward_rc68_direct_response_rc68
Showing 1 changed file with 7 additions and 1 deletions Inline Diff
index.js
1 | const DEBUG_ON_NON_JSON_DIRECT_RESPONSE = !!(process.env.DEBUG_ON_NON_JSON_DIRECT_RESPONSE) | 1 | const DEBUG_ON_NON_JSON_DIRECT_RESPONSE = !!(process.env.DEBUG_ON_NON_JSON_DIRECT_RESPONSE) |
2 | 2 | ||
3 | const request = require('request'); | 3 | const request = require('request'); |
4 | const config = require('komodo-sdk/config'); | 4 | const config = require('komodo-sdk/config'); |
5 | const logger = require('komodo-sdk/logger'); | 5 | const logger = require('komodo-sdk/logger'); |
6 | 6 | ||
7 | if (!process.env.KOMODO_MESSAGING_DO_NOT_LISTEN) { | 7 | if (!process.env.KOMODO_MESSAGING_DO_NOT_LISTEN) { |
8 | require('./http-callback-handler'); | 8 | require('./http-callback-handler'); |
9 | } | 9 | } |
10 | 10 | ||
11 | const DO_NOT_LOG = !!process.env.KOMODO_MESSAGING_DO_NOT_LOG | 11 | const DO_NOT_LOG = !!process.env.KOMODO_MESSAGING_DO_NOT_LOG |
12 | 12 | ||
13 | let transport; | 13 | let transport; |
14 | 14 | ||
15 | const originData = { | 15 | const originData = { |
16 | origin: config.origin, | 16 | origin: config.origin, |
17 | report_port: config.listen_port | 17 | report_port: config.listen_port |
18 | } | 18 | } |
19 | 19 | ||
20 | function setTransport(_transport) { | 20 | function setTransport(_transport) { |
21 | transport = _transport; | 21 | transport = _transport; |
22 | } | 22 | } |
23 | 23 | ||
24 | function onIncomingMessage(params) { | 24 | function onIncomingMessage(params) { |
25 | 25 | ||
26 | if ( typeof params.partner !== 'string' || typeof params.msg !== 'string' || !params.partner.trim() || !params.msg.trim() ) { | 26 | if ( typeof params.partner !== 'string' || typeof params.msg !== 'string' || !params.partner.trim() || !params.msg.trim() ) { |
27 | DO_NOT_LOG || logger.verbose('Not reporting to messaging center because of invalid parameter. F68CCCD74E79'); | 27 | DO_NOT_LOG || logger.verbose('Not reporting to messaging center because of invalid parameter. F68CCCD74E79'); |
28 | return; | 28 | return; |
29 | } | 29 | } |
30 | 30 | ||
31 | const requestOptions = { | 31 | const requestOptions = { |
32 | url: config.messaging_url, | 32 | url: config.messaging_url, |
33 | qs: { | 33 | qs: { |
34 | origin: originData.origin, | 34 | origin: originData.origin, |
35 | origin_label: params.origin_label, | 35 | origin_label: params.origin_label, |
36 | origin_transport: params.origin_transport, | 36 | origin_transport: params.origin_transport, |
37 | report_port: originData.report_port, | 37 | report_port: originData.report_port, |
38 | partner: params.partner, | 38 | partner: params.partner, |
39 | partner_raw: params.partner_raw || params.partner, | 39 | partner_raw: params.partner_raw || params.partner, |
40 | from: params.partner, | 40 | from: params.partner, |
41 | from_raw: params.partner_raw || params.partner, | 41 | from_raw: params.partner_raw || params.partner, |
42 | msg: params.msg.trim(), | 42 | msg: params.msg.trim(), |
43 | do_not_forward_to_core: params.do_not_forward_to_core || null, | 43 | do_not_forward_to_core: params.do_not_forward_to_core || null, |
44 | is_outgoing: params.is_outgoing || null, | 44 | is_outgoing: params.is_outgoing || null, |
45 | } | 45 | } |
46 | } | 46 | } |
47 | 47 | ||
48 | DO_NOT_LOG || logger.verbose('MESSAGING-CLIENT-LIB: Sending report to messaging service', { qs: requestOptions.qs }); | 48 | DO_NOT_LOG || logger.verbose('MESSAGING-CLIENT-LIB: Sending report to messaging service', { qs: requestOptions.qs }); |
49 | request(requestOptions, function(err, res, body) { | 49 | request(requestOptions, function(err, res, body) { |
50 | if (err) { | 50 | if (err) { |
51 | logger.warn('MESSAGING-CLIENT-LIB: error on request to messaging service', {err: err}); | 51 | logger.warn('MESSAGING-CLIENT-LIB: error on request to messaging service', {err: err}); |
52 | return; | 52 | return; |
53 | } | 53 | } |
54 | 54 | ||
55 | DO_NOT_LOG || logger.verbose('MESSAGING-CLIENT-LIB: Got response', { body }); | 55 | DO_NOT_LOG || logger.verbose('MESSAGING-CLIENT-LIB: Got response', { body }); |
56 | 56 | ||
57 | if (params.do_not_forward_to_core) return; | 57 | if (params.do_not_forward_to_core) return; |
58 | if (params.is_outgoing) return; | 58 | if (params.is_outgoing) return; |
59 | 59 | ||
60 | let data; | ||
60 | try { | 61 | try { |
61 | var data = JSON.parse(body); | 62 | data = JSON.parse(body); |
62 | } | 63 | } |
63 | catch(e) { | 64 | catch(e) { |
64 | if (DEBUG_ON_NON_JSON_DIRECT_RESPONSE) { | 65 | if (DEBUG_ON_NON_JSON_DIRECT_RESPONSE) { |
65 | DO_NOT_LOG || logger.verbose('MESSAGING-CLIENT-LIB: direct response from messaging service is not on JSON format, forwarding raw response', { | 66 | DO_NOT_LOG || logger.verbose('MESSAGING-CLIENT-LIB: direct response from messaging service is not on JSON format, forwarding raw response', { |
66 | partner: params.partner, | 67 | partner: params.partner, |
67 | msg: params.msg.trim(), | 68 | msg: params.msg.trim(), |
68 | directResponse: body, | 69 | directResponse: body, |
69 | }); | 70 | }); |
70 | } | 71 | } |
71 | 72 | ||
72 | sendToPartner(params.partner, body); | 73 | sendToPartner(params.partner, body); |
73 | return; | 74 | return; |
74 | } | 75 | } |
75 | 76 | ||
76 | //logger.verbose('DEBUG', {msg: data.message, err: data.error}); | 77 | //logger.verbose('DEBUG', {msg: data.message, err: data.error}); |
78 | if (!data) return; | ||
77 | const responseMessage = data.message || data.error; | 79 | const responseMessage = data.message || data.error; |
80 | if ( | ||
81 | data && data.rc === '68' | ||
82 | && config && config.do_not_forward_direct_response_rc68 | ||
83 | ) return; | ||
78 | sendToPartner(params.partner, responseMessage); | 84 | sendToPartner(params.partner, responseMessage); |
79 | }) | 85 | }) |
80 | } | 86 | } |
81 | 87 | ||
82 | function sendToPartner(partner, msg) { | 88 | function sendToPartner(partner, msg) { |
83 | if (transport && transport.send) { | 89 | if (transport && transport.send) { |
84 | transport.send(partner, msg); | 90 | transport.send(partner, msg); |
85 | } | 91 | } |
86 | } | 92 | } |
87 | 93 | ||
88 | exports.setTransport = setTransport; | 94 | exports.setTransport = setTransport; |
89 | exports.onIncomingMessage = onIncomingMessage; | 95 | exports.onIncomingMessage = onIncomingMessage; |
90 | exports.sendToPartner = sendToPartner; | 96 | exports.sendToPartner = sendToPartner; |