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