const DEFAULT_MAX_MESSAGE_AGE_IN_SECS = 300; const moment = require('moment'); const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const messagingCenter = require('komodo-center-messaging-client-lib'); const modems = require('../../modems'); module.exports = (req, res) => { res.end('OK'); const { msg, msisdn, smsc, ts, } = req.query; if (!(msg || '').trim()) { logger.verbose('ON-RECEIVED B09186E3: Skip empty message', { qs: req.query, }); return; } // if ((msisdn || '').indexOf(62) !== 0) { // logger.verbose('ON-RECEIVED: Skip invalid MSISDN', { // qs: req.query, // }); // return; // } // const msgUpperCased = (msg || '').toUpperCase(); // if ( // (msgUpperCased.indexOf('TERIMA KASIH') >= 0) // || (msgUpperCased.indexOf('KAMU DAPAT BONUS') >= 0) // ) { // logger.verbose('ON-RECEIVED: Skip invalid message', { // msg, // qs: req.query, // }); // return; // } const sentTime = moment(ts, 'YYYY-MM-DD HH:mm:ss'); const messageAgeInSeconds = Math.round(Number(new Date() - sentTime) / 1000); const maxMessageAgeInSeconds = config.max_message_age_in_secs || DEFAULT_MAX_MESSAGE_AGE_IN_SECS; if (messageAgeInSeconds > maxMessageAgeInSeconds) { logger.warn('ON-RECEIVED: Got expired message from EVO-CP', { qs: req.query, messageAgeInSeconds, maxMessageAgeInSeconds, }); return; } logger.info('ON-RECEIVED: Got message from EVO-CP', { qs: req.query, }); const modem = modems.modemsDictionary[smsc] || {}; const doNotForwardToCore = (msisdn.search(/(\+)*62/) !== 0) || (msisdn.length <= 8); messagingCenter.onIncomingMessage({ me: modem.imsi || smsc, partner: `${msisdn}${config.number_suffix || ''}`, partner_raw: msisdn, msg, origin_label: modem.imsi || smsc, origin_transport: 'SMS', origin_partner: msisdn, do_not_forward_to_core: doNotForwardToCore, }); };