ah-resque-ui
Version:
A resque administration website for actionhero
126 lines (117 loc) • 3.28 kB
text/typescript
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);
}
}