history.js 1 KB
'use strict';

const redis = require('redis');
const CircularBuffer = require("circular-buffer");

const config = require('komodo-sdk/config');
const logger = require('komodo-sdk/logger');

const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' });
const history = new CircularBuffer(1000);

const REDIS_KEYWORD = `SHAKIR_SMS_HISTORY_${config.name||'SMS'}`;

function fetchFromRedis() {
    redisClient.LRANGE(REDIS_KEYWORD, 0, -1, (err, reply) => {
        reply.forEach((el) => {
            try {
                history.push(JSON.parse(el));
            } catch (e) {
                logger.warn(`Error parsing JSON on redis history. ${e.toString()}`);
            }            
        });
    })
}
fetchFromRedis();

function push(item) {
    redisClient.LPUSH(REDIS_KEYWORD, JSON.stringify(item));
    history.push(item);
}

function dump() {
    const result = history.toarray();
    // console.log(JSON.stringify(result, null, 2));
    return result;
}

exports.push = push;
exports.dump = dump;