actionhero
Version:
actionhero.js is a multi-transport API Server with integrated cluster capabilities and delayed tasks
69 lines (61 loc) • 1.82 kB
JavaScript
exports.cacheTest = {
name: 'cacheTest',
description: 'I will test the internal cache functions of the API',
outputExample: {
cacheTestResults: {
saveResp: true,
sizeResp: 1,
loadResp: {
key: 'cacheTest_key',
value: 'value',
expireTimestamp: 1420953274716,
createdAt: 1420953269716,
readAt: null
},
deleteResp: true
}
},
inputs: {
key: {
required: true,
formatter: function (s) { return String(s) }
},
value: {
required: true,
formatter: function (s) { return String(s) },
validator: function (s) {
if (s.length < 3) {
return '`value` should be at least 3 letters long'
} else { return true }
}
}
},
run: function (api, data, next) {
const key = 'cacheTest_' + data.params.key
const value = data.params.value
data.response.cacheTestResults = {}
api.cache.save(key, value, 5000, function (error, resp) {
if (error) { return next(error) }
data.response.cacheTestResults.saveResp = resp
api.cache.size(function (error, numberOfCacheObjects) {
if (error) { return next(error) }
data.response.cacheTestResults.sizeResp = numberOfCacheObjects
api.cache.load(key, function (error, resp, expireTimestamp, createdAt, readAt) {
if (error) { return next(error) }
data.response.cacheTestResults.loadResp = {
key: key,
value: resp,
expireTimestamp: expireTimestamp,
createdAt: createdAt,
readAt: readAt
}
api.cache.destroy(key, function (error, resp) {
data.response.cacheTestResults.deleteResp = resp
next(error)
})
})
})
})
}
}