Commit e178a442a38bd321f2c63414fa8b112ca7992323
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 |