Commit 0188bfed2901c388a64072838bc77b65309f9e60
1 parent
233a5ff508
Exists in
master
Buka kembali, tanpa filter + pada from
Showing 1 changed file with 0 additions and 5 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) { | 8 | function incomingSMS(message) { |
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 | if (message.metadata.from.indexOf('+') !== 0) { | ||
30 | logger.verbose('Do not send report on incoming message when sender does not start with "+".', { from: message.metadata.from, msg: message.message }); | ||
31 | return; | ||
32 | } | ||
33 | |||
34 | const requestOptions = { | 29 | const requestOptions = { |
35 | url: config.report_url.incoming_sms, | 30 | url: config.report_url.incoming_sms, |
36 | qs: { | 31 | qs: { |
37 | modem: config.name, | 32 | modem: config.name, |
38 | ts: message.metadata.ts, | 33 | ts: message.metadata.ts, |
39 | status: message.metadata.status, | 34 | status: message.metadata.status, |
40 | number: message.metadata.from, | 35 | number: message.metadata.from, |
41 | msg: message.message, | 36 | msg: message.message, |
42 | }, | 37 | }, |
43 | }; | 38 | }; |
44 | 39 | ||
45 | logger.info('Sending report via HTTP', requestOptions); | 40 | logger.info('Sending report via HTTP', requestOptions); |
46 | request(requestOptions, (err, res, body) => { | 41 | request(requestOptions, (err, res, body) => { |
47 | if (err) { | 42 | if (err) { |
48 | logger.warn(`Error sending report via HTTP. ${err.toString()}`); | 43 | logger.warn(`Error sending report via HTTP. ${err.toString()}`); |
49 | return; | 44 | return; |
50 | } | 45 | } |
51 | 46 | ||
52 | if (res.statusCode !== 200) { | 47 | 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 }); | 48 | logger.warn(`Error sending report via HTTP. Server respond with HTTP status code ${res.statusCode}`, { http_status_code: res.statusCode, body }); |
54 | } | 49 | } |
55 | }); | 50 | }); |
56 | } | 51 | } |
57 | 52 | ||
58 | exports.incomingSMS = incomingSMS; | 53 | exports.incomingSMS = incomingSMS; |
59 | 54 |