Commit 0188bfed2901c388a64072838bc77b65309f9e60

Authored by Adhidarma Hadiwinoto
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