Commit e178a442a38bd321f2c63414fa8b112ca7992323

Authored by Adhidarma Hadiwinoto
1 parent 7194997a36
Exists in master

report uptime dan path

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

lib/report-sender.js
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 function incomingSMS(message, modemInfo) { 8 function incomingSMS(message, modemInfo) {
9 if (!message || !config || !config.report_url || !config.report_url.incoming_sms) return; 9 if (!message || !config || !config.report_url || !config.report_url.incoming_sms) return;
10 10
11 if (!message.metadata) { 11 if (!message.metadata) {
12 const e = new Error('Missing metadata on incoming sms'); 12 const e = new Error('Missing metadata on incoming sms');
13 e.smsObj = message; 13 e.smsObj = message;
14 throw e; 14 throw e;
15 } 15 }
16 16
17 if (!message.metadata.from) { 17 if (!message.metadata.from) {
18 const e = new Error('Missing metadata.from on incoming sms'); 18 const e = new Error('Missing metadata.from on incoming sms');
19 e.smsObj = message; 19 e.smsObj = message;
20 throw e; 20 throw e;
21 } 21 }
22 22
23 if (!message.message) { 23 if (!message.message) {
24 const e = new Error('Missing message on incoming sms'); 24 const e = new Error('Missing message on incoming sms');
25 e.smsObj = message; 25 e.smsObj = message;
26 throw e; 26 throw e;
27 } 27 }
28 28
29 const requestOptions = { 29 const requestOptions = {
30 url: config.report_url.incoming_sms, 30 url: config.report_url.incoming_sms,
31 qs: { 31 qs: {
32 ts: message.metadata.ts, 32 ts: message.metadata.ts,
33 status: message.metadata.status, 33 status: message.metadata.status,
34 number: message.metadata.from, 34 number: message.metadata.from,
35 msg: message.message, 35 msg: message.message,
36 modem: config.name, 36 modem: config.name,
37 modem_imsi: modemInfo.imsi, 37 modem_imsi: modemInfo.imsi,
38 modem_msisdn: modemInfo.msisdn, 38 modem_msisdn: modemInfo.msisdn,
39 modem_device: config.modem.device,
40 uptime: Math.floor(process.uptime()),
39 report_port: config.http_command_server.listen_port, 41 report_port: config.http_command_server.listen_port,
40 report_apikey: config.http_command_server.apikey, 42 report_apikey: config.http_command_server.apikey,
41 report_path_sms: '/sms', 43 report_path_sms: '/sms',
42 }, 44 },
43 }; 45 };
44 46
45 logger.info('Sending report via HTTP', requestOptions); 47 logger.info('Sending report via HTTP', requestOptions);
46 request(requestOptions, (err, res, body) => { 48 request(requestOptions, (err, res, body) => {
47 if (err) { 49 if (err) {
48 logger.warn(`Error sending report via HTTP. ${err.toString()}`); 50 logger.warn(`Error sending report via HTTP. ${err.toString()}`);
49 return; 51 return;
50 } 52 }
51 53
52 if (res.statusCode !== 200) { 54 if (res.statusCode !== 200) {
53 logger.warn(`Error sending report via HTTP. Server respond with HTTP status code ${res.statusCode}`, { http_status_code: res.statusCode, body }); 55 logger.warn(`Error sending report via HTTP. Server respond with HTTP status code ${res.statusCode}`, { http_status_code: res.statusCode, body });
54 } 56 }
55 }); 57 });
56 } 58 }
57 59
58 exports.incomingSMS = incomingSMS; 60 exports.incomingSMS = incomingSMS;
59 61