Commit 051778a1cd43211d72e9dfa48d657ab8f34e98c7

Authored by Adhidarma Hadiwinoto
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

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;