diff --git a/lib/messages-archive.js b/lib/messages-archive.js index f194acd..3fcfcc8 100644 --- a/lib/messages-archive.js +++ b/lib/messages-archive.js @@ -1,11 +1,25 @@ 'use strict'; +const redis = require('redis'); + +const config = require('./config'); const logger = require('komodo-sdk/logger'); const db = require('./db-mysql'); const DIRECTION_INCOMING = 0; const DIRECTION_OUTGOING = 1; +const redisClient = config.redis && redis.createClient(config.redis); + +function composeRedisCounterKeyword(origin, direction) { + const directionLabel = direction == DIRECTION_OUTGOING ? 'OUT' : 'IN'; + return `CALMA_MESSAGE_COUNTER_${origin}_${directionLabel}`; +} + +function incrementCounter(origin, direction) { + redisClient && redisClient.INCR(composeRedisCounterKeyword(origin, direction), () => {}); +} + /** * Menyimpan pesan ke dalam archive histori pesan di database * @@ -19,6 +33,11 @@ const DIRECTION_OUTGOING = 1; * @param {number} direction - 0: incoming, 1: outgoing */ function insert(params, direction) { + incrementCounter( + params.origin_label || params.origin, + params.direction + ); + if (!db.pool) return; const query = `INSERT INTO messages SET ?`; diff --git a/package.json b/package.json index ad6b9fe..955ae84 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "komodo-sdk": "git+http://gitlab.kodesumber.com/komodo/komodo-sdk.git", "mysql": "^2.17.1", "natural-compare-lite": "^1.4.0", + "redis": "^2.8.0", "request": "^2.88.0", "yargs": "^13.2.4" },