Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
await redis.del(commentKey)
}
api.blog.commentAdd = async (userName, title, commenterName, comment) => {
const key = api.blog.buildCommentKey(userName, title)
const commentId = api.blog.buildCommentId(commenterName)
const data = {
comment,
commenterName,
createdAt: new Date().getTime(),
commentId: commentId
}
await redis.hset(key, commentId, JSON.stringify(data))
}
api.blog.commentsView = async (userName, title) => {
const key = api.blog.buildCommentKey(userName, title)
const data = await redis.hgetall(key)
const comments = Object.keys(data).map((key) => {
const comment = data[key]
return JSON.parse(comment)
})
return comments
}
api.blog.commentDelete = async (userName, title, commentId) => {
const key = api.blog.buildCommentKey(userName, title)
await redis.hdel(key, commentId)
}
api.blog.buildTitleKey = (userName, title) => {
// "posts:evan:my first post"
api.blog.commentDelete = async (userName, title, commentId) => {
const key = api.blog.buildCommentKey(userName, title)
await redis.hdel(key, commentId)
}
api.blog.buildTitleKey = (userName, title) => {
// "posts:evan:my first post"
return api.blog.postPrefix + api.blog.separator + userName + api.blog.separator + title
}
api.blog.buildCommentKey = (userName, title) => {
// "comments:evan:my first post"
return api.blog.commentPrefix + api.blog.separator + userName + api.blog.separator + title
}
api.blog.buildCommentId = (commenterName) => {
return commenterName + new Date().getTime()
}
}
return JSON.parse(comment)
})
return comments
}
api.blog.commentDelete = async (userName, title, commentId) => {
const key = api.blog.buildCommentKey(userName, title)
await redis.hdel(key, commentId)
}
api.blog.buildTitleKey = (userName, title) => {
// "posts:evan:my first post"
return api.blog.postPrefix + api.blog.separator + userName + api.blog.separator + title
}
api.blog.buildCommentKey = (userName, title) => {
// "comments:evan:my first post"
return api.blog.commentPrefix + api.blog.separator + userName + api.blog.separator + title
}
api.blog.buildCommentId = (commenterName) => {
return commenterName + new Date().getTime()
}
}
api.blog.buildTitleKey = (userName, title) => {
// "posts:evan:my first post"
return api.blog.postPrefix + api.blog.separator + userName + api.blog.separator + title
}
'use strict'
const ActionHero = require('actionhero')
const path = require('path')
const packageJSON = require(path.normalize(path.join(__dirname, '..', 'package.json')))
// These values are probably good starting points, but you should expect to tweak them for your application
const maxEventLoopDelay = process.env.eventLoopDelay || 10
const maxMemoryAlloted = process.env.maxMemoryAlloted || 200
const maxResqueQueueLength = process.env.maxResqueQueueLength || 1000
module.exports = class RandomNumber extends ActionHero.Action {
constructor () {
super()
this.name = 'status'
this.description = 'I will return some basic information about the API'
this.outputExample = {
id: '192.168.2.11',
actionheroVersion: '9.4.1',
uptime: 10469
}
}
async checkRam (data) {
const consumedMemoryMB = Math.round(process.memoryUsage().heapUsed / 1024 / 1024 * 100) / 100
data.response.consumedMemoryMB = consumedMemoryMB
if (consumedMemoryMB > maxMemoryAlloted) {
data.response.nodeStatus = data.connection.localize('Unhealthy')
'use strict'
const ActionHero = require('actionhero')
const path = require('path')
const packageJSON = require(path.normalize(path.join(__dirname, '..', 'package.json')))
// These values are probably good starting points, but you should expect to tweak them for your application
const maxEventLoopDelay = process.env.eventLoopDelay || 10
const maxMemoryAlloted = process.env.maxMemoryAlloted || 500
const maxResqueQueueLength = process.env.maxResqueQueueLength || 1000
module.exports = class RandomNumber extends ActionHero.Action {
constructor () {
super()
this.name = 'status'
this.description = 'I will return some basic information about the API'
this.outputExample = {
id: '192.168.2.11',
actionheroVersion: '9.4.1',
uptime: 10469
}
}
async checkRam (data) {
const consumedMemoryMB = Math.round(process.memoryUsage().heapUsed / 1024 / 1024 * 100) / 100
data.response.consumedMemoryMB = consumedMemoryMB
if (consumedMemoryMB > maxMemoryAlloted) {
data.response.nodeStatus = data.connection.localize('Unhealthy')
api.routes.registerRoute('post', '/resque/delDelayed', 'resque:delDelayed')
api.routes.registerRoute('post', '/resque/runDelayed', 'resque:runDelayed')
api.routes.registerRoute('post', '/resque/delLock', 'resque:delLock')
/* ----- Proxy Middleware ----- */
const middleware = {
'ah-resque-ui-proxy-middleware': {
name: 'ah-resque-ui-proxy-middleware',
global: false,
preProcessor: () => { },
postProcessor: () => { }
}
}
if (api.config['ah-resque-ui'].middleware && api.config['ah-resque-ui'].middleware.length > 0) {
middleware['ah-resque-ui-proxy-middleware'].preProcessor = async (data) => {
for (const i in api.config['ah-resque-ui'].middleware) {
const middlewareName = api.config['ah-resque-ui'].middleware[i]
const middleware = api.actions.middleware[middlewareName]
if (typeof middleware.preProcessor === 'function') {
await middleware.preProcessor(data)
}
}
}
middleware['ah-resque-ui-proxy-middleware'].postProcessor = async (data) => {
for (const i in api.config['ah-resque-ui'].middleware) {
const middlewareName = api.config['ah-resque-ui'].middleware[i]
const middleware = api.actions.middleware[middlewareName]
if (typeof middleware.postProcessor === 'function') {
await middleware.postProcessor(data)
async initialize () {
const redis = api.redis.clients.client
api.session = {
prefix: 'session:',
ttl: 60 * 60 * 24, // 1 day
load: async (connection) => {
const key = api.session.prefix + connection.fingerprint
const data = await redis.get(key)
if (!data) { return false }
return JSON.parse(data)
},
create: async (connection, user) => {
const key = api.session.prefix + connection.fingerprint
const randomBuffer = await util.promisify(crypto.randomBytes)(64)
async initialize () {
/* ----- Route Injection ----- */
api.routes.registerRoute('get', '/resque/packageDetails', 'resque:packageDetails')
api.routes.registerRoute('get', '/resque/redisInfo', 'resque:redisInfo')
api.routes.registerRoute('get', '/resque/resqueDetails', 'resque:resqueDetails')
api.routes.registerRoute('get', '/resque/queued', 'resque:queued')
api.routes.registerRoute('get', '/resque/loadWorkerQueues', 'resque:loadWorkerQueues')
api.routes.registerRoute('get', '/resque/resqueFailedCount', 'resque:resqueFailedCount')
api.routes.registerRoute('get', '/resque/resqueFailed', 'resque:resqueFailed')
api.routes.registerRoute('get', '/resque/delayedjobs', 'resque:delayedjobs')
api.routes.registerRoute('get', '/resque/locks', 'resque:locks')
api.routes.registerRoute('post', '/resque/removeFailed', 'resque:removeFailed')
api.routes.registerRoute('post', '/resque/retryAndRemoveFailed', 'resque:retryAndRemoveFailed')
api.routes.registerRoute('post', '/resque/removeAllFailed', 'resque:removeAllFailed')
api.routes.registerRoute('post', '/resque/retryAndRemoveAllFailed', 'resque:retryAndRemoveAllFailed')
api.routes.registerRoute('post', '/resque/forceCleanWorker', 'resque:forceCleanWorker')
api.routes.registerRoute('post', '/resque/delQueue', 'resque:delQueue')
api.routes.registerRoute('post', '/resque/delDelayed', 'resque:delDelayed')
api.routes.registerRoute('get', '/resque/resqueDetails', 'resque:resqueDetails')
api.routes.registerRoute('get', '/resque/queued', 'resque:queued')
api.routes.registerRoute('get', '/resque/loadWorkerQueues', 'resque:loadWorkerQueues')
api.routes.registerRoute('get', '/resque/resqueFailedCount', 'resque:resqueFailedCount')
api.routes.registerRoute('get', '/resque/resqueFailed', 'resque:resqueFailed')
api.routes.registerRoute('get', '/resque/delayedjobs', 'resque:delayedjobs')
api.routes.registerRoute('get', '/resque/locks', 'resque:locks')
api.routes.registerRoute('post', '/resque/removeFailed', 'resque:removeFailed')
api.routes.registerRoute('post', '/resque/retryAndRemoveFailed', 'resque:retryAndRemoveFailed')
api.routes.registerRoute('post', '/resque/removeAllFailed', 'resque:removeAllFailed')
api.routes.registerRoute('post', '/resque/retryAndRemoveAllFailed', 'resque:retryAndRemoveAllFailed')
api.routes.registerRoute('post', '/resque/forceCleanWorker', 'resque:forceCleanWorker')
api.routes.registerRoute('post', '/resque/delQueue', 'resque:delQueue')
api.routes.registerRoute('post', '/resque/delDelayed', 'resque:delDelayed')
api.routes.registerRoute('post', '/resque/runDelayed', 'resque:runDelayed')
api.routes.registerRoute('post', '/resque/delLock', 'resque:delLock')
/* ----- Proxy Middleware ----- */
const middleware = {
'ah-resque-ui-proxy-middleware': {
name: 'ah-resque-ui-proxy-middleware',
global: false,
preProcessor: () => { },
postProcessor: () => { }
}
}
if (api.config['ah-resque-ui'].middleware && api.config['ah-resque-ui'].middleware.length > 0) {
middleware['ah-resque-ui-proxy-middleware'].preProcessor = async (data) => {
for (const i in api.config['ah-resque-ui'].middleware) {