Blame view

lib/partner-last-seen.js 1.48 KB
f53fe083f   Adhidarma Hadiwinoto   Sender chooser algo
1
2
3
4
5
  "use strict";
  
  const REDIS_TTL_SECS = 3600 * 24 * 7;
  
  const config = require('komodo-sdk/config');
269c423d2   Adhidarma Hadiwinoto   DEBUG REDIS
6
  const logger = require('komodo-sdk/logger');
f53fe083f   Adhidarma Hadiwinoto   Sender chooser algo
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  
  const redis = require('redis');
  const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' });
  
  const _caches = {};
  
  
  function _composeKeyword(partner) {
      return `POCHINKI_PARTNER_LAST_SEEN_${ partner }`;
  }
  
  function get(partnerNumber) {
      return new Promise(function(resolve) {
  
          if (!partnerNumber) {
              resolve(null);
          }
          else if (_caches[partnerNumber]) {
              resolve(_caches[partnerNumber]);
          }
          else {
              const keyword = _composeKeyword(partnerNumber);
269c423d2   Adhidarma Hadiwinoto   DEBUG REDIS
29
              logger.verbose(`REDIS-DEBUG: GET`, {keyword});
f53fe083f   Adhidarma Hadiwinoto   Sender chooser algo
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
              
              redisClient.get(keyword, function(err, reply) {
                  if (err) {
                      resolve(null);
                  }
                  else if (reply) {
                      resolve(Number(reply));
                      _caches[partnerNumber] = Number(reply);
                  }
                  else {
                      resolve(null);
                  }
              })
          }
      })
  }
  
  function set(partnerNumber, modemName) {
      if (!partnerNumber || !modemName) {
          return;
      }
  
      _caches[partnerNumber] = modemName;
  
      const keyword = _composeKeyword(partnerNumber);
269c423d2   Adhidarma Hadiwinoto   DEBUG REDIS
55
      logger.verbose('REDIS-DEBUG: SET', { keyword })
f53fe083f   Adhidarma Hadiwinoto   Sender chooser algo
56
57
58
59
60
      redisClient.set(keyword, modemName, 'EX', REDIS_TTL_SECS);
  }
  
  exports.get = get;
  exports.set = set;