Blame view
lib/history.js
1.05 KB
4fbfae95f
|
1 |
'use strict'; |
c5a93bdc3
|
2 |
const MAX_HISTORY = 1000; |
8182d4cee
|
3 |
const redis = require('redis'); |
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' }); |
4fbfae95f
|
8 |
|
8182d4cee
|
9 |
const REDIS_KEYWORD = `SHAKIR_SMS_HISTORY_${config.name||'SMS'}`; |
4fbfae95f
|
10 |
function push(item) { |
c5a93bdc3
|
11 12 13 |
redisClient.LPUSH(REDIS_KEYWORD, JSON.stringify(item), () => { redisClient.LTRIM(REDIS_KEYWORD, 0, MAX_HISTORY); }); |
4fbfae95f
|
14 15 16 |
} function dump() { |
1caafb61a
|
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
return new Promise((resolve) => { const result = []; redisClient.LRANGE(REDIS_KEYWORD, 0, -1, (err, reply) => { reply.forEach((el) => { try { result.push(JSON.parse(el)); } catch (e) { logger.warn(`Error parsing JSON on redis history. ${e.toString()}`); } }); logger.info(`History fetched from redis with ${reply.length} items.`); resolve(result); }); }) |
4fbfae95f
|
34 35 36 37 |
} exports.push = push; exports.dump = dump; |