UNPKG

ah-resque-ui

Version:

A resque administration website for actionhero

126 lines (117 loc) 3.28 kB
import { Initializer, route, config, api, action } from "actionhero"; export class AHResqueUIInitializer extends Initializer { constructor() { super(); this.name = "ah-resque-ui"; this.loadPriority = 99999999; } async initialize() { /* ----- Route Injection ----- */ route.registerRoute( "get", "/:apiVersion/resque/redisInfo", "resque:redisInfo" ); route.registerRoute( "get", "/:apiVersion/resque/resqueDetails", "resque:resqueDetails" ); route.registerRoute("get", "/:apiVersion/resque/queued", "resque:queued"); route.registerRoute( "get", "/:apiVersion/resque/loadWorkerQueues", "resque:loadWorkerQueues" ); route.registerRoute( "get", "/:apiVersion/resque/resqueFailedCount", "resque:resqueFailedCount" ); route.registerRoute( "get", "/:apiVersion/resque/resqueFailed", "resque:resqueFailed" ); route.registerRoute( "get", "/:apiVersion/resque/delayedjobs", "resque:delayedjobs" ); route.registerRoute("get", "/:apiVersion/resque/locks", "resque:locks"); route.registerRoute( "post", "/:apiVersion/resque/removeFailed", "resque:removeFailed" ); route.registerRoute( "post", "/:apiVersion/resque/retryAndRemoveFailed", "resque:retryAndRemoveFailed" ); route.registerRoute( "post", "/:apiVersion/resque/removeAllFailed", "resque:removeAllFailed" ); route.registerRoute( "post", "/:apiVersion/resque/retryAndRemoveAllFailed", "resque:retryAndRemoveAllFailed" ); route.registerRoute( "post", "/:apiVersion/resque/forceCleanWorker", "resque:forceCleanWorker" ); route.registerRoute( "post", "/:apiVersion/resque/delQueue", "resque:delQueue" ); route.registerRoute( "post", "/:apiVersion/resque/delDelayed", "resque:delDelayed" ); route.registerRoute( "post", "/:apiVersion/resque/runDelayed", "resque:runDelayed" ); route.registerRoute( "post", "/:apiVersion/resque/delLock", "resque:delLock" ); /* ----- Proxy Middleware ----- */ const middleware = { name: "ah-resque-ui-proxy-middleware", global: false, preProcessor: async (data) => {}, postProcessor: async (data) => {}, }; if ( config["ah-resque-ui"].middleware && config["ah-resque-ui"].middleware.length > 0 ) { middleware.preProcessor = async (data) => { for (const middlewareName of config["ah-resque-ui"].middleware) { const middleware = api.actions.middleware[middlewareName]; if (typeof middleware.preProcessor === "function") { await middleware.preProcessor(data); } } }; middleware.postProcessor = async (data) => { for (const middlewareName of config["ah-resque-ui"].middleware) { const middleware = api.actions.middleware[middlewareName]; if (typeof middleware.postProcessor === "function") { await middleware.postProcessor(data); } } }; } action.addMiddleware(middleware); } }