From 4e2f695bedd9e46ab49a22ac061a2e17f5a0ac47 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Fri, 2 Aug 2019 16:29:05 +0700 Subject: [PATCH] Messages counter --- lib/counters.js | 24 ++++++++++++++++++++++++ lib/modem.js | 3 +++ 2 files changed, 27 insertions(+) create mode 100644 lib/counters.js diff --git a/lib/counters.js b/lib/counters.js new file mode 100644 index 0000000..bd20552 --- /dev/null +++ b/lib/counters.js @@ -0,0 +1,24 @@ +'use strict'; + +const countersSdk = require('komodo-sdk/counters'); + +function increment(name, modemInfo) { + if (!name || !modemInfo.imsi) return; + + countersSdk.increment(`IMSI_${modemInfo.IMSI}_${name}`); +} + +function get(name, modemInfo) { + return new Promise(async (resolve) => { + if (!name || !modemInfo.imsi) { + resolve(0); + return; + } + + const value = await countersSdk.get(`IMSI_${modemInfo.IMSI}_${name}`); + resolve(Number(value)); + }); +} + +exports.get = get; +exports.increment = increment; diff --git a/lib/modem.js b/lib/modem.js index 93b7506..a98f810 100644 --- a/lib/modem.js +++ b/lib/modem.js @@ -21,6 +21,7 @@ const dbCops = require('./db-cops'); const reportSender = require('./report-sender'); // const msisdn = require('./msisdn'); const registerModem = require('./register-modem'); +const counters = require('./counters'); const modemInfo = { device: config.modem.device, @@ -145,6 +146,7 @@ parserReadLine.on('data', (data) => { registerModem(modemInfo); } } else if (data.indexOf('+CMTI: ') === 0) { + counters.increment('MESSAGE_RECEIVED', modemInfo); onIncomingSMS(data); } else if (data.indexOf('+COPS: ') === 0) { onCOPS(data); @@ -288,6 +290,7 @@ async function sendSMS(destination, msg) { await mutex.setLockWaitForCommand(); logger.info('Sending message', { destination, msg }); + counters.increment('MESSAGE_SENT', modemInfo); const correctedDestination = `+${destination}`.replace(/^0/, '62').replace(/^\++/, '+'); -- 1.9.0