Clear tournament cache when avatar is approved

This commit is contained in:
Kalle
2024-07-21 11:00:43 +03:00
parent 01fcebd2c4
commit 28ce455f4c
2 changed files with 28 additions and 1 deletions

View File

@@ -0,0 +1,14 @@
import { db } from "~/db/sql";
export function findById(id: number) {
return db
.selectFrom("UnvalidatedUserSubmittedImage")
.leftJoin(
"CalendarEvent",
"CalendarEvent.avatarImgId",
"UnvalidatedUserSubmittedImage.id",
)
.select(["CalendarEvent.tournamentId"])
.where("UnvalidatedUserSubmittedImage.id", "=", id)
.executeTakeFirst();
}

View File

@@ -3,9 +3,16 @@ import { Form, useLoaderData } from "@remix-run/react";
import { Main } from "~/components/Main";
import { SubmitButton } from "~/components/SubmitButton";
import { requireUserId } from "~/features/auth/core/user.server";
import { clearTournamentDataCache } from "~/features/tournament-bracket/core/Tournament.server";
import { isMod } from "~/permissions";
import { notFoundIfFalsy, parseRequestFormData, validate } from "~/utils/remix";
import {
badRequestIfFalsy,
notFoundIfFalsy,
parseRequestFormData,
validate,
} from "~/utils/remix";
import { userSubmittedImage } from "~/utils/urls";
import * as ImageRepository from "../ImageRepository.server";
import { countAllUnvalidatedImg } from "../queries/countAllUnvalidatedImg.server";
import { oneUnvalidatedImage } from "../queries/oneUnvalidatedImage";
import { validateImage } from "../queries/validateImage";
@@ -20,8 +27,14 @@ export const action: ActionFunction = async ({ request }) => {
validate(isMod(user), "Only admins can validate images");
const image = badRequestIfFalsy(await ImageRepository.findById(data.imageId));
validateImage(data.imageId);
if (image.tournamentId) {
clearTournamentDataCache(image.tournamentId);
}
return null;
};