soundbirder/controllers/cache.js

28 lines
709 B
JavaScript

require('dotenv').config();
const debug = require('debug')('soundbirder:cache');
const redis = require('redis');
[redisHost, redisPort] = [process.env.REDIS_HOST, process.env.REDIS_PORT];
const redisClient = redis.createClient(redisPort, redisHost);
(async () => {
redisClient.connect();
})();
function cacheResponse(request, response) {
debug("Caching response", request);
redisClient.set(request, JSON.stringify(response));
}
async function getCached(request) {
debug("Getting cached response", request);
const cached = await redisClient.get(request);
if (cached) {
return JSON.parse(cached);
}
return null;
}
module.exports = {
cacheResponse,
getCached
}