"use strict"; const REDIS_TTL_SECS = 3600 * 24 * 7; const config = require('komodo-sdk/config'); const redis = require('redis'); const redisClient = redis.createClient(config.redis || { host: '127.0.0.1' }); const _caches = {}; function _composeKeyword(partner) { return `TELEGRAM_ADDRESSBOOK_NAKAMICHIvsMiFA_${ config.telegram.token }_${ partner }`; } function get(partner) { partner = partner.toUpperCase().replace(/@.*$/, ''); return new Promise(function(resolve) { if (_caches[partner]) { resolve(_caches[partner]); } else { const keyword = _composeKeyword(partner); redisClient.get(keyword, function(err, reply) { if (err) { resolve(null); return; } if (reply) { resolve(Number(reply)); _caches[partner] = Number(reply); } else { resolve(null); } }) } }) } function put(partner, chatId) { partner = partner.toUpperCase().replace(/@.*$/, ''); if (!partner || !chatId) { return; } partner = partner.toUpperCase(); _caches[partner] = chatId; const keyword = _composeKeyword(partner); redisClient.set(keyword, chatId, 'EX', REDIS_TTL_SECS); } exports.get = get; exports.put = put;