report errors to sentry

This commit is contained in:
m5r
2022-06-26 17:01:55 +02:00
parent 590e92eea4
commit 961dc8e461
11 changed files with 446 additions and 126 deletions

35
server/queues.ts Normal file
View File

@ -0,0 +1,35 @@
import type { NextFunction, Request, Response } from "express";
import { ExpressAdapter } from "@bull-board/express";
import { BullMQAdapter } from "@bull-board/api/bullMQAdapter";
import { createBullBoard } from "@bull-board/api";
import { GlobalRole } from "@prisma/client";
import { __getSession } from "~/utils/session.server";
import type { SessionData } from "~/utils/auth.server";
import queues from "~/queues";
import cronJobs from "~/cron-jobs";
export async function adminMiddleware(req: Request, res: Response, next: NextFunction) {
const session = await __getSession(req.headers.cookie);
const sessionData: SessionData | undefined = session.data.user;
if (!sessionData || sessionData.user.role !== GlobalRole.SUPERADMIN) {
return res.setHeader("Location", "/sign-in").status(302).end();
}
next();
}
export function setupBullBoard() {
const serverAdapter = new ExpressAdapter();
const cronJobsQueues = registerCronJobs();
createBullBoard({
queues: [...queues, ...cronJobsQueues].map((queue) => new BullMQAdapter(queue)),
serverAdapter,
});
serverAdapter.setBasePath("/admin/queues");
return serverAdapter;
}
function registerCronJobs() {
return cronJobs.map((registerCronJob) => registerCronJob());
}