diff --git a/api/helpers/redis/set.js b/api/helpers/redis/set.js index eb1b6929f..a2f55007c 100644 --- a/api/helpers/redis/set.js +++ b/api/helpers/redis/set.js @@ -36,10 +36,45 @@ module.exports = { fn: async function (inputs, exits) { - await sails.helpers.redis.ensureCacheExists(); - sails.cache[inputs.keyString] = inputs.value; - return exits.success(); + if (process.env.REDISSTRING) { + + if (inputs.ex) { + if (_.isUndefined(inputs.ttl)) { + return exits.error(`When setting ex true you must provide a TTL.`) + } + + sails.getDatastore('cache').leaseConnection(function during(redisConnection, proceed) { + redisConnection.set(inputs.keyString, inputs.value, 'EX', inputs.ttl, (err, reply) => { + if (err) return proceed(err); + + return proceed(undefined, reply) + }) + }).exec((err, result) => { + if (err) return exits.error(err); + + return exits.success(result); + }) + + } else { + + sails.getDatastore('cache').leaseConnection(function during(redisConnection, proceed) { + redisConnection.set(inputs.keyString, inputs.value, (err, reply) => { + if (err) return proceed(err); + + return proceed(undefined, reply) + }) + }).exec((err, result) => { + if (err) return exits.error(err); + + return exits.success(result); + }) + } + } else { + sails.cache[inputs.keyString] = inputs.value; + return exits.success(); + } + } -}; +}; \ No newline at end of file