mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-02-26 00:43:20 +00:00
chore: replace bull by bullmq
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import { Queue } from "bull";
|
||||
import { Queue } from "bullmq";
|
||||
import * as express from "express";
|
||||
import AnonymizedRepositoryModel from "../database/anonymizedRepositories/anonymizedRepositories.model";
|
||||
import ConferenceModel from "../database/conference/conferences.model";
|
||||
import UserModel from "../database/users/users.model";
|
||||
import { downloadQueue, removeQueue } from "../queue";
|
||||
import Repository from "../Repository";
|
||||
import { ensureAuthenticated } from "./connection";
|
||||
import { handleError, getUser, isOwnerOrAdmin } from "./route-utils";
|
||||
|
||||
@@ -29,7 +30,7 @@ router.use(
|
||||
);
|
||||
|
||||
router.post("/queue/:name/:repo_id", async (req, res) => {
|
||||
let queue: Queue;
|
||||
let queue: Queue<Repository, void>;
|
||||
if (req.params.name == "download") {
|
||||
queue = downloadQueue;
|
||||
} else if (req.params.name == "remove") {
|
||||
@@ -41,7 +42,7 @@ router.post("/queue/:name/:repo_id", async (req, res) => {
|
||||
if (!job) {
|
||||
return res.status(404).json({ error: "job_not_found" });
|
||||
}
|
||||
job.retry();
|
||||
await job.retry();
|
||||
res.send("ok");
|
||||
});
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ router.delete(
|
||||
const user = await getUser(req);
|
||||
isOwnerOrAdmin([repo.owner.id], user);
|
||||
await repo.updateStatus("removing");
|
||||
await removeQueue.add(repo, { jobId: repo.repoId });
|
||||
await removeQueue.add(repo.repoId, repo, { jobId: repo.repoId });
|
||||
return res.json({ status: repo.status });
|
||||
} catch (error) {
|
||||
handleError(error, res);
|
||||
@@ -362,7 +362,7 @@ router.post(
|
||||
repo.model.conference = repoUpdate.conference;
|
||||
await repo.updateStatus("preparing");
|
||||
res.json({ status: repo.status });
|
||||
await downloadQueue.add(repo, { jobId: repo.repoId });
|
||||
await downloadQueue.add(repo.repoId, repo, { jobId: repo.repoId });
|
||||
} catch (error) {
|
||||
return handleError(error, res);
|
||||
}
|
||||
@@ -432,7 +432,7 @@ router.post("/", async (req: express.Request, res: express.Response) => {
|
||||
}
|
||||
|
||||
res.send({ status: repo.status });
|
||||
downloadQueue.add(new Repository(repo), {
|
||||
downloadQueue.add(repo.repoId, new Repository(repo), {
|
||||
jobId: repo.repoId,
|
||||
attempts: 3,
|
||||
});
|
||||
|
||||
@@ -91,7 +91,10 @@ router.get(
|
||||
// && repo.status != "preparing"
|
||||
) {
|
||||
await repo.updateStatus("preparing");
|
||||
await downloadQueue.add(repo, { jobId: repo.repoId, attempts: 3 });
|
||||
await downloadQueue.add(repo.repoId, repo, {
|
||||
jobId: repo.repoId,
|
||||
attempts: 3,
|
||||
});
|
||||
}
|
||||
if (repo.status == "error") {
|
||||
throw new AnonymousError(
|
||||
|
||||
@@ -44,6 +44,7 @@ export function isOwnerOrAdmin(authorizedUsers: string[], user: User) {
|
||||
function printError(error: any) {
|
||||
io.notifyError(error, error.value);
|
||||
if (error instanceof AnonymousError) {
|
||||
console.log(error);
|
||||
console.error(
|
||||
"[ERROR]",
|
||||
error.toString(),
|
||||
@@ -78,14 +79,14 @@ export function handleError(error: any, res: express.Response) {
|
||||
export async function getUser(req: express.Request) {
|
||||
const user = (req.user as any).user;
|
||||
if (!user) {
|
||||
req.logout();
|
||||
req.logout((error) => console.error(error));
|
||||
throw new AnonymousError("not_connected", {
|
||||
httpStatus: 401,
|
||||
});
|
||||
}
|
||||
const model = await UserModel.findById(user._id);
|
||||
if (!model) {
|
||||
req.logout();
|
||||
req.logout((error) => console.error(error));
|
||||
throw new AnonymousError("not_connected", {
|
||||
httpStatus: 401,
|
||||
});
|
||||
|
||||
@@ -10,7 +10,7 @@ router.use(ensureAuthenticated);
|
||||
|
||||
router.get("/logout", async (req: express.Request, res: express.Response) => {
|
||||
try {
|
||||
req.logout();
|
||||
req.logout((error) => console.error(error));
|
||||
res.redirect("/");
|
||||
} catch (error) {
|
||||
handleError(error, res);
|
||||
|
||||
Reference in New Issue
Block a user