mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-07-06 13:47:59 +02:00
fix(#91): fix repository claim
This commit is contained in:
@@ -13,6 +13,7 @@ import Repository from "../Repository";
|
|||||||
import ConferenceModel from "../database/conference/conferences.model";
|
import ConferenceModel from "../database/conference/conferences.model";
|
||||||
import AnonymousError from "../AnonymousError";
|
import AnonymousError from "../AnonymousError";
|
||||||
import { downloadQueue, removeQueue } from "../queue";
|
import { downloadQueue, removeQueue } from "../queue";
|
||||||
|
import RepositoryModel from "../database/repositories/repositories.model";
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@@ -50,7 +51,18 @@ router.post("/claim", async (req: express.Request, res: express.Response) => {
|
|||||||
repo: r.name,
|
repo: r.name,
|
||||||
accessToken: user.accessToken,
|
accessToken: user.accessToken,
|
||||||
});
|
});
|
||||||
if ((repoConfig.source as GitHubBase).githubRepository.id != repo.id) {
|
if (!repo) {
|
||||||
|
throw new AnonymousError("repo_not_found", {
|
||||||
|
object: req.body,
|
||||||
|
httpStatus: 404,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const dbRepo = await RepositoryModel.findById(
|
||||||
|
(repoConfig.source as GitHubBase).githubRepository.id
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!dbRepo || dbRepo.externalId != repo.id) {
|
||||||
throw new AnonymousError("repo_not_found", {
|
throw new AnonymousError("repo_not_found", {
|
||||||
object: req.body,
|
object: req.body,
|
||||||
httpStatus: 404,
|
httpStatus: 404,
|
||||||
@@ -78,7 +90,12 @@ router.post(
|
|||||||
const repo = await getRepo(req, res, { nocheck: true });
|
const repo = await getRepo(req, res, { nocheck: true });
|
||||||
if (!repo) return;
|
if (!repo) return;
|
||||||
|
|
||||||
if (repo.status == "preparing" || repo.status == "removing") return;
|
if (
|
||||||
|
repo.status == "preparing" ||
|
||||||
|
repo.status == "removing" ||
|
||||||
|
repo.status == "expiring"
|
||||||
|
)
|
||||||
|
return;
|
||||||
|
|
||||||
const user = await getUser(req);
|
const user = await getUser(req);
|
||||||
isOwnerOrAdmin([repo.owner.id], user);
|
isOwnerOrAdmin([repo.owner.id], user);
|
||||||
|
|||||||
@@ -87,8 +87,8 @@ router.get(
|
|||||||
fiveMinuteAgo.setMinutes(fiveMinuteAgo.getMinutes() - 5);
|
fiveMinuteAgo.setMinutes(fiveMinuteAgo.getMinutes() - 5);
|
||||||
if (repo.status != "ready") {
|
if (repo.status != "ready") {
|
||||||
if (
|
if (
|
||||||
repo.model.statusDate < fiveMinuteAgo &&
|
repo.model.statusDate < fiveMinuteAgo
|
||||||
repo.status != "preparing"
|
// && repo.status != "preparing"
|
||||||
) {
|
) {
|
||||||
await repo.updateStatus("preparing");
|
await repo.updateStatus("preparing");
|
||||||
await downloadQueue.add(repo, { jobId: repo.repoId });
|
await downloadQueue.add(repo, { jobId: repo.repoId });
|
||||||
|
|||||||
Reference in New Issue
Block a user