Add original translation support on the /movies/{id} route

This commit is contained in:
Zoe Roux
2025-01-16 23:44:19 +01:00
parent f3f69a0def
commit 7fcaf6490d
2 changed files with 36 additions and 3 deletions
+25 -2
View File
@@ -69,12 +69,29 @@ export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] })
columns: {
pk: false,
},
where: eq(showTranslations.language, sql`any(${sqlarr(langs)})`),
where: !langs.includes("*")
? eq(showTranslations.language, sql`any(${sqlarr(langs)})`)
: undefined,
orderBy: [
sql`array_position(${sqlarr(langs)}, ${showTranslations.language})`,
],
limit: 1,
},
originalTranslation: {
columns: {
poster: true,
thumbnail: true,
banner: true,
logo: true,
},
extras: {
// TODO: also fallback on user settings (that's why i made a select here)
preferOriginal:
sql<boolean>`(select coalesce(${preferOriginal ?? null}::boolean, false))`.as(
"preferOriginal",
),
},
},
},
});
@@ -92,7 +109,13 @@ export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] })
});
}
set.headers["content-language"] = translation.language;
return { ...ret, ...translation };
return {
...ret,
...translation,
...(ret.originalTranslation?.preferOriginal
? ret.originalTranslation
: {}),
};
},
{
detail: {