Fix entries test with videos

This commit is contained in:
Zoe Roux
2025-03-06 12:22:45 +01:00
parent 66fadb2b20
commit e86ab9c081
12 changed files with 53 additions and 23 deletions
+9 -9
View File
@@ -111,9 +111,9 @@ async function getEntries({
.from(entryVideoJoin)
.where(eq(entryVideoJoin.entryPk, entries.pk))
.leftJoin(videos, eq(videos.pk, entryVideoJoin.videoPk))
.as("video");
.as("videos");
const videosJ = db
.select({ videos: sql`json_agg("video")`.as("videos") })
.select({ videos: sql`coalesce(json_agg("videos"), '[]'::json)`.as("videos") })
.from(videosQ)
.as("videos_json");
@@ -130,9 +130,9 @@ async function getEntries({
.select({
...entryCol,
...transCol,
videos: sql`${videosJ.videos}`.as("videos"),
videos: videosJ.videos,
// specials don't have an `episodeNumber` but a `number` field.
number: sql<number>`${episodeNumber}`.as("number"),
number: episodeNumber,
// merge `extraKind` into `kind`
kind: sql<EntryKind>`case when ${kind} = 'extra' then ${extraKind} else ${kind}::text end`.as(
@@ -140,11 +140,11 @@ async function getEntries({
),
// assign more restrained types to make typescript happy.
externalId: sql<any>`${externalId}`.as("externalId"),
order: sql<number>`${order}`.as("order"),
seasonNumber: sql<number>`${seasonNumber}`.as("seasonNumber"),
episodeNumber: sql<number>`${episodeNumber}`.as("episodeNumber"),
name: sql<string>`${name}`.as("name"),
externalId: sql<any>`${externalId}`,
order: sql<number>`${order}`,
seasonNumber: sql<number>`${seasonNumber}`,
episodeNumber: sql<number>`${episodeNumber}`,
name: sql<string>`${name}`,
})
.from(entries)
.innerJoin(transQ, eq(entries.pk, transQ.pk))
+1 -1
View File
@@ -131,7 +131,7 @@ export const insertEntries = async (
entryPk: retEntries[i].pk,
entrySlug: retEntries[i].slug,
// The first video should not have a rendering.
needRendering: j && seed.videos!.length > 1,
needRendering: j !== 0 && seed.videos!.length > 1,
}));
});
+1 -1
View File
@@ -39,7 +39,7 @@ export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] })
if (!ret) {
return error(404, {
status: 404,
message: "Movie not found",
message: `No movie found with id or slug: '${id}'.`,
});
}
if (!ret.language) {