Commit 6176d765bd72a709b9141ee05ca236b3ef1bbd38

Authored by Adhidarma Hadiwinoto
1 parent 26575b28f7
Exists in master

Jangan forward response jika do_not_forward_to_core

Showing 1 changed file with 2 additions and 0 deletions Inline Diff

1 "use strict"; 1 "use strict";
2 2
3 const request = require('request'); 3 const request = require('request');
4 4
5 const config = require('komodo-sdk/config'); 5 const config = require('komodo-sdk/config');
6 const logger = require('komodo-sdk/logger'); 6 const logger = require('komodo-sdk/logger');
7 7
8 require('./http-callback-handler'); 8 require('./http-callback-handler');
9 9
10 let transport; 10 let transport;
11 11
12 const originData = { 12 const originData = {
13 origin: config.origin, 13 origin: config.origin,
14 report_port: config.listen_port 14 report_port: config.listen_port
15 } 15 }
16 16
17 function setTransport(_transport) { 17 function setTransport(_transport) {
18 transport = _transport; 18 transport = _transport;
19 } 19 }
20 20
21 function onIncomingMessage(params) { 21 function onIncomingMessage(params) {
22 22
23 if ( typeof params.partner !== 'string' || typeof params.msg !== 'string' || !params.partner.trim() || !params.msg.trim() ) { 23 if ( typeof params.partner !== 'string' || typeof params.msg !== 'string' || !params.partner.trim() || !params.msg.trim() ) {
24 return; 24 return;
25 } 25 }
26 26
27 const partner = params.partner.trim(); 27 const partner = params.partner.trim();
28 const msg = params.msg.trim(); 28 const msg = params.msg.trim();
29 29
30 const requestOptions = { 30 const requestOptions = {
31 url: config.messaging_url, 31 url: config.messaging_url,
32 qs: { 32 qs: {
33 origin: originData.origin, 33 origin: originData.origin,
34 origin_label: params.origin_label, 34 origin_label: params.origin_label,
35 origin_transport: params.origin_transport, 35 origin_transport: params.origin_transport,
36 report_port: originData.report_port, 36 report_port: originData.report_port,
37 from: partner, 37 from: partner,
38 from_raw: params.partner_raw, 38 from_raw: params.partner_raw,
39 msg: msg, 39 msg: msg,
40 do_not_forward_to_core: params.do_not_forward_to_core || null, 40 do_not_forward_to_core: params.do_not_forward_to_core || null,
41 } 41 }
42 } 42 }
43 43
44 request(requestOptions, function(err, res, body) { 44 request(requestOptions, function(err, res, body) {
45 if (err) { 45 if (err) {
46 logger.warn('MESSAGING-CLIENT-LIB: error on request to CORE', {err: err}); 46 logger.warn('MESSAGING-CLIENT-LIB: error on request to CORE', {err: err});
47 return; 47 return;
48 } 48 }
49 49
50 if (params.do_not_forward_to_core) return;
51
50 try { 52 try {
51 var data = JSON.parse(body); 53 var data = JSON.parse(body);
52 } 54 }
53 catch(e) { 55 catch(e) {
54 //logger.verbose('Direct response is not on JSON format, forwarding raw response'); 56 //logger.verbose('Direct response is not on JSON format, forwarding raw response');
55 sendToPartner(partner, body); 57 sendToPartner(partner, body);
56 return; 58 return;
57 } 59 }
58 60
59 //logger.verbose('DEBUG', {msg: data.message, err: data.error}); 61 //logger.verbose('DEBUG', {msg: data.message, err: data.error});
60 const responseMessage = data.message || data.error; 62 const responseMessage = data.message || data.error;
61 sendToPartner(partner, responseMessage); 63 sendToPartner(partner, responseMessage);
62 }) 64 })
63 } 65 }
64 66
65 function sendToPartner(partner, msg) { 67 function sendToPartner(partner, msg) {
66 if (transport && transport.send) { 68 if (transport && transport.send) {
67 transport.send(partner, msg); 69 transport.send(partner, msg);
68 } 70 }
69 } 71 }
70 72
71 exports.setTransport = setTransport; 73 exports.setTransport = setTransport;
72 exports.onIncomingMessage = onIncomingMessage; 74 exports.onIncomingMessage = onIncomingMessage;
73 exports.sendToPartner = sendToPartner; 75 exports.sendToPartner = sendToPartner;