Commit a95cb2490ba5998d6e733066aec4be445e78ef2b

Authored by Adhidarma Hadiwinoto
1 parent c8f86004fa
Exists in master

Add message age in on received logs

Showing 1 changed file with 4 additions and 3 deletions Inline Diff

lib/apiserver/handler/on-received.js
1 const DEFAULT_MAX_MESSAGE_AGE_IN_SECS = 300; 1 const DEFAULT_MAX_MESSAGE_AGE_IN_SECS = 300;
2 2
3 const moment = require('moment'); 3 const moment = require('moment');
4 const config = require('komodo-sdk/config'); 4 const config = require('komodo-sdk/config');
5 const logger = require('komodo-sdk/logger'); 5 const logger = require('komodo-sdk/logger');
6 6
7 const messagingCenter = require('komodo-center-messaging-client-lib'); 7 const messagingCenter = require('komodo-center-messaging-client-lib');
8 const modems = require('../../modems'); 8 const modems = require('../../modems');
9 9
10 const blacklistMsgPatterns = [ 10 const blacklistMsgPatterns = [
11 /^TRANSAKSI KE NOMOR/, 11 /^TRANSAKSI KE NOMOR/,
12 /^Kesalahan autentikasi/, 12 /^Kesalahan autentikasi/,
13 /^Saldo anda/, 13 /^Saldo anda/,
14 /^Perintah salah/, 14 /^Perintah salah/,
15 ]; 15 ];
16 16
17 const maxMessageAgeInSeconds = config.max_message_age_in_secs
18 || DEFAULT_MAX_MESSAGE_AGE_IN_SECS;
19
17 module.exports = (req, res) => { 20 module.exports = (req, res) => {
18 res.end('OK'); 21 res.end('OK');
19 22
20 const { 23 const {
21 msg, msisdn, smsc, ts, 24 msg, msisdn, smsc, ts,
22 } = req.query; 25 } = req.query;
23 26
24 if (!(msg || '').trim()) { 27 if (!(msg || '').trim()) {
25 logger.verbose('ON-RECEIVED B09186E3: Skip empty message', { 28 logger.verbose('ON-RECEIVED B09186E3: Skip empty message', {
26 qs: req.query, 29 qs: req.query,
27 }); 30 });
28 31
29 return; 32 return;
30 } 33 }
31 34
32 const msgUpperCased = (msg || '').trim().toUpperCase(); 35 const msgUpperCased = (msg || '').trim().toUpperCase();
33 if ( 36 if (
34 (msisdn.search(/\+*62/) === 0) 37 (msisdn.search(/\+*62/) === 0)
35 && blacklistMsgPatterns.find((pattern) => msgUpperCased.search(pattern) >= 0) 38 && blacklistMsgPatterns.find((pattern) => msgUpperCased.search(pattern) >= 0)
36 ) { 39 ) {
37 logger.verbose('ON-RECEIVED 5486D373: Skip invalid message', { 40 logger.verbose('ON-RECEIVED 5486D373: Skip invalid message', {
38 msg, 41 msg,
39 msisdn, 42 msisdn,
40 qs: req.query, 43 qs: req.query,
41 }); 44 });
42 45
43 return; 46 return;
44 } 47 }
45 48
46 const sentTime = moment(ts, 'YYYY-MM-DD HH:mm:ss'); 49 const sentTime = moment(ts, 'YYYY-MM-DD HH:mm:ss');
47 const messageAgeInSeconds = Math.round(Number(new Date() - sentTime) / 1000); 50 const messageAgeInSeconds = Math.round(Number(new Date() - sentTime) / 1000);
48 51
49 const maxMessageAgeInSeconds = config.max_message_age_in_secs
50 || DEFAULT_MAX_MESSAGE_AGE_IN_SECS;
51
52 if (messageAgeInSeconds > maxMessageAgeInSeconds) { 52 if (messageAgeInSeconds > maxMessageAgeInSeconds) {
53 logger.warn('ON-RECEIVED 2247F406: Got expired message from EVO-CP', { 53 logger.warn('ON-RECEIVED 2247F406: Got expired message from EVO-CP', {
54 qs: req.query, 54 qs: req.query,
55 messageAgeInSeconds, 55 messageAgeInSeconds,
56 maxMessageAgeInSeconds, 56 maxMessageAgeInSeconds,
57 }); 57 });
58 58
59 return; 59 return;
60 } 60 }
61 61
62 logger.info('ON-RECEIVED D3747E3C: Got message from EVO-CP', { 62 logger.info('ON-RECEIVED D3747E3C: Got message from EVO-CP', {
63 messageAgeInSeconds,
63 qs: req.query, 64 qs: req.query,
64 }); 65 });
65 66
66 const modem = modems.modemsDictionary[smsc] || {}; 67 const modem = modems.modemsDictionary[smsc] || {};
67 68
68 const doNotForwardToCore = (msisdn.search(/(\+)*62/) !== 0) || (msisdn.length <= 8); 69 const doNotForwardToCore = (msisdn.search(/(\+)*62/) !== 0) || (msisdn.length <= 8);
69 70
70 messagingCenter.onIncomingMessage({ 71 messagingCenter.onIncomingMessage({
71 me: modem.imsi || smsc, 72 me: modem.imsi || smsc,
72 partner: `${msisdn}${config.number_suffix || ''}`, 73 partner: `${msisdn}${config.number_suffix || ''}`,
73 partner_raw: msisdn, 74 partner_raw: msisdn,
74 msg, 75 msg,
75 origin_label: modem.imsi || smsc, 76 origin_label: modem.imsi || smsc,
76 origin_transport: 'SMS', 77 origin_transport: 'SMS',
77 origin_partner: msisdn, 78 origin_partner: msisdn,
78 do_not_forward_to_core: doNotForwardToCore, 79 do_not_forward_to_core: doNotForwardToCore,