Commit 457b0b090e9b2b672380608b6dcb47c261168fd6

Authored by Adhidarma Hadiwinoto
1 parent a799858ec1
Exists in master

Log on CORE request

Showing 2 changed files with 6 additions and 1 deletions Inline Diff

http-callback-handler.js
1 "use strict"; 1 "use strict";
2 2
3 const express = require('express'); 3 const express = require('express');
4 const bodyParser = require('body-parser'); 4 const bodyParser = require('body-parser');
5 5
6 const config = require('komodo-sdk/config'); 6 const config = require('komodo-sdk/config');
7 const logger = require('komodo-sdk/logger'); 7 const logger = require('komodo-sdk/logger');
8 8
9 const bridge = require('./index'); 9 const bridge = require('./index');
10 10
11 const app = express(); 11 const app = express();
12 12
13 function mainHandler(req, res) { 13 function mainHandler(req, res) {
14 res.end('OK'); 14 res.end('OK');
15 15
16 if (!req.body) req.body = {}; 16 if (!req.body) req.body = {};
17 logger.verbose('MESSAGING-CLIENT-LIB: Got a request from CORE', {
18 ip: req.ip,
19 qs: req.query,
20 body: req.body,
21 });
17 22
18 bridge.sendToPartner( 23 bridge.sendToPartner(
19 req.query.terminal_name || req.body.terminal_name, 24 req.query.terminal_name || req.body.terminal_name,
20 req.query.message || req.body.message 25 req.query.message || req.body.message
21 ); 26 );
22 } 27 }
23 28
24 app.get('/', mainHandler); 29 app.get('/', mainHandler);
25 app.post('/', bodyParser.urlencoded({extended: true}), mainHandler); 30 app.post('/', bodyParser.urlencoded({extended: true}), mainHandler);
26 31
27 const port = config.callback_listen_port || config.listen_port; 32 const port = config.callback_listen_port || config.listen_port;
28 port && app.listen(port, () => { 33 port && app.listen(port, () => {
29 logger.info('MESSAGING-CLIENT-LIB: HTTP callback for CORE response listen on port ' + port); 34 logger.info('MESSAGING-CLIENT-LIB: HTTP callback for CORE response listen on port ' + port);
30 }) 35 })
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 resposnse', { 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 try { 60 try {
61 var data = JSON.parse(body); 61 var data = JSON.parse(body);
62 } 62 }
63 catch(e) { 63 catch(e) {
64 if (DEBUG_ON_NON_JSON_DIRECT_RESPONSE) { 64 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', { 65 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, 66 partner: params.partner,
67 msg: params.msg.trim(), 67 msg: params.msg.trim(),
68 directResponse: body, 68 directResponse: body,
69 }); 69 });
70 } 70 }
71 71
72 sendToPartner(params.partner, body); 72 sendToPartner(params.partner, body);
73 return; 73 return;
74 } 74 }
75 75
76 //logger.verbose('DEBUG', {msg: data.message, err: data.error}); 76 //logger.verbose('DEBUG', {msg: data.message, err: data.error});
77 const responseMessage = data.message || data.error; 77 const responseMessage = data.message || data.error;
78 sendToPartner(params.partner, responseMessage); 78 sendToPartner(params.partner, responseMessage);
79 }) 79 })
80 } 80 }
81 81
82 function sendToPartner(partner, msg) { 82 function sendToPartner(partner, msg) {
83 if (transport && transport.send) { 83 if (transport && transport.send) {
84 transport.send(partner, msg); 84 transport.send(partner, msg);
85 } 85 }
86 } 86 }
87 87
88 exports.setTransport = setTransport; 88 exports.setTransport = setTransport;
89 exports.onIncomingMessage = onIncomingMessage; 89 exports.onIncomingMessage = onIncomingMessage;
90 exports.sendToPartner = sendToPartner; 90 exports.sendToPartner = sendToPartner;