Fix & test random slug reservation

This commit is contained in:
Zoe Roux
2025-01-13 14:15:16 +01:00
parent 1cdb372079
commit d1609ddfbf
3 changed files with 24 additions and 9 deletions
+3 -2
View File
@@ -17,8 +17,9 @@ export const seed = new Elysia()
const err = validateTranslations(body.translations);
if (err) return error(400, err);
const { status, ...ret } = await seedMovie(body);
return error(status, ret);
const ret = await seedMovie(body);
if (ret.status === 422) return error(422, ret);
return error(ret.status, ret);
},
{
body: "seed-movie",
+11 -7
View File
@@ -30,18 +30,22 @@ export type SeedMovieResponse = typeof SeedMovieResponse.static;
export const seedMovie = async (
seed: SeedMovie,
): Promise<SeedMovieResponse & {
status: "Created" | "OK" | "Conflict";
}> => {
const { translations, videos: vids, ...bMovie } = seed;
): Promise<
| (SeedMovieResponse & { status: "Created" | "OK" | "Conflict" })
| { status: 422; message: string }
> => {
if (seed.slug === "random") {
if (seed.airDate === null) {
throw new KErrorT("`random` is a reserved slug. Use something else.");
if (!seed.airDate) {
return {
status: 422,
message: "`random` is a reserved slug. Use something else.",
};
}
seed.slug = `random-${getYear(seed.airDate)}`;
}
const { translations, videos: vids, ...bMovie } = seed;
const ret = await db.transaction(async (tx) => {
const movie: Show = {
kind: "movie",