Blame view

lib/history.js 1 KB
4fbfae95f   Adhidarma Hadiwinoto   Messages history
1
  'use strict';
8182d4cee   Adhidarma Hadiwinoto   History put on redis
2
  const redis = require('redis');
4fbfae95f   Adhidarma Hadiwinoto   Messages history
3
  const CircularBuffer = require("circular-buffer");
8182d4cee   Adhidarma Hadiwinoto   History put on redis
4
5
  
  const config = require('komodo-sdk/config');
1a5a3629d   Adhidarma Hadiwinoto   Load history from...
6
  const logger = require('komodo-sdk/logger');
8182d4cee   Adhidarma Hadiwinoto   History put on redis
7
  const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' });
3a34fe226   Adhidarma Hadiwinoto   Perbesar circular...
8
  const history = new CircularBuffer(1000);
4fbfae95f   Adhidarma Hadiwinoto   Messages history
9

8182d4cee   Adhidarma Hadiwinoto   History put on redis
10
11
12
13
  const REDIS_KEYWORD = `SHAKIR_SMS_HISTORY_${config.name||'SMS'}`;
  
  function fetchFromRedis() {
      redisClient.LRANGE(REDIS_KEYWORD, 0, -1, (err, reply) => {
1a5a3629d   Adhidarma Hadiwinoto   Load history from...
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()}`);
              }            
          });
8182d4cee   Adhidarma Hadiwinoto   History put on redis
21
22
23
      })
  }
  fetchFromRedis();
4fbfae95f   Adhidarma Hadiwinoto   Messages history
24
  function push(item) {
8182d4cee   Adhidarma Hadiwinoto   History put on redis
25
      redisClient.LPUSH(REDIS_KEYWORD, JSON.stringify(item));
4fbfae95f   Adhidarma Hadiwinoto   Messages history
26
27
28
29
      history.push(item);
  }
  
  function dump() {
c747a8b35   Adhidarma Hadiwinoto   DEBUG
30
      const result = history.toarray();
b904e7094   Adhidarma Hadiwinoto   DEBUG
31
      // console.log(JSON.stringify(result, null, 2));
c747a8b35   Adhidarma Hadiwinoto   DEBUG
32
      return result;
4fbfae95f   Adhidarma Hadiwinoto   Messages history
33
34
35
36
  }
  
  exports.push = push;
  exports.dump = dump;