Blame view
lib/history.js
1.08 KB
4fbfae95f
|
1 |
'use strict'; |
8182d4cee
|
2 |
const redis = require('redis'); |
4fbfae95f
|
3 |
const CircularBuffer = require("circular-buffer"); |
8182d4cee
|
4 5 |
const config = require('komodo-sdk/config'); |
1a5a3629d
|
6 |
const logger = require('komodo-sdk/logger'); |
8182d4cee
|
7 |
const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' }); |
3a34fe226
|
8 |
const history = new CircularBuffer(1000); |
4fbfae95f
|
9 |
|
8182d4cee
|
10 11 12 13 |
const REDIS_KEYWORD = `SHAKIR_SMS_HISTORY_${config.name||'SMS'}`; function fetchFromRedis() { redisClient.LRANGE(REDIS_KEYWORD, 0, -1, (err, reply) => { |
1a5a3629d
|
14 15 16 17 18 19 20 |
reply.forEach((el) => { try { history.push(JSON.parse(el)); } catch (e) { logger.warn(`Error parsing JSON on redis history. ${e.toString()}`); } }); |
173aca4a3
|
21 |
logger.info(`History fetched from redis with ${reply.length} items.`); |
8182d4cee
|
22 23 24 |
}) } fetchFromRedis(); |
4fbfae95f
|
25 |
function push(item) { |
8182d4cee
|
26 |
redisClient.LPUSH(REDIS_KEYWORD, JSON.stringify(item)); |
4fbfae95f
|
27 28 29 30 |
history.push(item); } function dump() { |
c747a8b35
|
31 |
const result = history.toarray(); |
b904e7094
|
32 |
// console.log(JSON.stringify(result, null, 2)); |
c747a8b35
|
33 |
return result; |
4fbfae95f
|
34 35 36 37 |
} exports.push = push; exports.dump = dump; |