diff --git a/api/src/controllers/images.ts b/api/src/controllers/images.ts index 4d7e7a27..147233f0 100644 --- a/api/src/controllers/images.ts +++ b/api/src/controllers/images.ts @@ -15,6 +15,7 @@ import { KError } from "~/models/error"; import { bubble } from "~/models/examples"; import { AcceptLanguage, isUuid, processLanguages } from "~/models/utils"; import { imageDir } from "./seed/images"; +import { prefix } from "~/elysia"; function getRedirectToImageHandler({ filter, @@ -87,8 +88,8 @@ function getRedirectToImageHandler({ } set.headers["content-language"] = ret.language; return quality - ? redirect(`/images/${ret.image!.id}?quality=${quality}`) - : redirect(`/images/${ret.image!.id}`); + ? redirect(`${prefix}/images/${ret.image!.id}?quality=${quality}`) + : redirect(`${prefix}/images/${ret.image!.id}`); }; } @@ -181,8 +182,8 @@ export const imagesH = new Elysia({ tags: ["images"] }) }); } return quality - ? redirect(`/images/${ret.image!.id}?quality=${quality}`) - : redirect(`/images/${ret.image!.id}`); + ? redirect(`${prefix}/images/${ret.image!.id}?quality=${quality}`) + : redirect(`${prefix}/images/${ret.image!.id}`); }, { detail: { description: "Get the image of a staff member." }, @@ -256,8 +257,8 @@ export const imagesH = new Elysia({ tags: ["images"] }) } set.headers["content-language"] = ret.language; return quality - ? redirect(`/images/${ret.image!.id}?quality=${quality}`) - : redirect(`/images/${ret.image!.id}`); + ? redirect(`${prefix}/images/${ret.image!.id}?quality=${quality}`) + : redirect(`${prefix}/images/${ret.image!.id}`); }, { detail: { description: "Get the logo of a studio." }, diff --git a/api/src/controllers/shows/collections.ts b/api/src/controllers/shows/collections.ts index a845524a..2e1bc18c 100644 --- a/api/src/controllers/shows/collections.ts +++ b/api/src/controllers/shows/collections.ts @@ -22,6 +22,7 @@ import { } from "~/models/utils"; import { desc } from "~/models/utils/descriptions"; import { getShows, showFilters, showSort } from "./logic"; +import { prefix } from "~/elysia"; export const collections = new Elysia({ prefix: "/collections", @@ -113,7 +114,7 @@ export const collections = new Elysia({ status: 404, message: "No collection in the database.", }); - return redirect(`/collections/${serie.slug}`); + return redirect(`${prefix}/collections/${serie.slug}`); }, { detail: { diff --git a/api/src/controllers/shows/movies.ts b/api/src/controllers/shows/movies.ts index e1bb197d..bc6fef82 100644 --- a/api/src/controllers/shows/movies.ts +++ b/api/src/controllers/shows/movies.ts @@ -15,6 +15,7 @@ import { } from "~/models/utils"; import { desc } from "~/models/utils/descriptions"; import { getShows, showFilters, showSort } from "./logic"; +import { prefix } from "~/elysia"; export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] }) .model({ @@ -103,7 +104,7 @@ export const movies = new Elysia({ prefix: "/movies", tags: ["movies"] }) status: 404, message: "No movies in the database.", }); - return redirect(`/movies/${movie.slug}`); + return redirect(`${prefix}/movies/${movie.slug}`); }, { detail: { diff --git a/api/src/controllers/shows/series.ts b/api/src/controllers/shows/series.ts index 5aad0163..2f6a372d 100644 --- a/api/src/controllers/shows/series.ts +++ b/api/src/controllers/shows/series.ts @@ -15,6 +15,7 @@ import { } from "~/models/utils"; import { desc } from "~/models/utils/descriptions"; import { getShows, showFilters, showSort } from "./logic"; +import { prefix } from "~/elysia"; export const series = new Elysia({ prefix: "/series", tags: ["series"] }) .model({ @@ -103,7 +104,7 @@ export const series = new Elysia({ prefix: "/series", tags: ["series"] }) status: 404, message: "No series in the database.", }); - return redirect(`/series/${serie.slug}`); + return redirect(`${prefix}/series/${serie.slug}`); }, { detail: { diff --git a/api/src/controllers/shows/shows.ts b/api/src/controllers/shows/shows.ts index 49b837dd..fd3bff63 100644 --- a/api/src/controllers/shows/shows.ts +++ b/api/src/controllers/shows/shows.ts @@ -13,6 +13,7 @@ import { } from "~/models/utils"; import { desc } from "~/models/utils/descriptions"; import { getShows, showFilters, showSort } from "./logic"; +import { prefix } from "~/elysia"; export const showsH = new Elysia({ prefix: "/shows", tags: ["shows"] }) .model({ @@ -31,7 +32,7 @@ export const showsH = new Elysia({ prefix: "/shows", tags: ["shows"] }) status: 404, message: "No shows in the database.", }); - return redirect(`/${show.kind}s/${show.slug}`); + return redirect(`${prefix}/${show.kind}s/${show.slug}`); }, { detail: { diff --git a/api/src/controllers/staff.ts b/api/src/controllers/staff.ts index 56c1fa85..b5d95e49 100644 --- a/api/src/controllers/staff.ts +++ b/api/src/controllers/staff.ts @@ -22,6 +22,7 @@ import { } from "~/models/utils"; import { desc } from "~/models/utils/descriptions"; import { showFilters, showSort } from "./shows/logic"; +import { prefix } from "~/elysia"; const staffSort = Sort( { @@ -160,7 +161,7 @@ export const staffH = new Elysia({ tags: ["staff"] }) status: 404, message: "No staff in the database.", }); - return redirect(`/staff/${member.slug}`); + return redirect(`${prefix}/staff/${member.slug}`); }, { detail: { diff --git a/api/src/controllers/studios.ts b/api/src/controllers/studios.ts index ea9bac91..8e0667c8 100644 --- a/api/src/controllers/studios.ts +++ b/api/src/controllers/studios.ts @@ -32,6 +32,7 @@ import { } from "~/models/utils"; import { desc } from "~/models/utils/descriptions"; import { getShows, showFilters, showSort } from "./shows/logic"; +import { prefix } from "~/elysia"; const studioSort = Sort( { @@ -200,7 +201,7 @@ export const studiosH = new Elysia({ prefix: "/studios", tags: ["studios"] }) status: 404, message: "No studios in the database.", }); - return redirect(`/studios/${studio.slug}`); + return redirect(`${prefix}/studios/${studio.slug}`); }, { detail: { diff --git a/api/src/elysia.ts b/api/src/elysia.ts index acae2b05..cca847af 100644 --- a/api/src/elysia.ts +++ b/api/src/elysia.ts @@ -46,7 +46,8 @@ export const base = new Elysia({ name: "base" }) }) .as("plugin"); -export const app = new Elysia({ prefix: process.env.KYOO_PREFIX }) +export const prefix = process.env.KYOO_PREFIX; +export const app = new Elysia({ prefix }) .use(base) .use(showsH) .use(movies) diff --git a/api/src/index.ts b/api/src/index.ts index 83a1763c..2b34a526 100644 --- a/api/src/index.ts +++ b/api/src/index.ts @@ -9,7 +9,7 @@ await migrate(); let secret = process.env.JWT_SECRET; if (!secret) { - const auth = process.env.AUTH_SERVER ?? "http://auth:4568"; + const auth = process.env.AUTH_SERVER ?? "http://auth:4568/auth"; try { const ret = await fetch(`${auth}/info`); const info = await ret.json(); @@ -28,7 +28,6 @@ if (!secret) { processImages(); app - .use(jwt({ secret })) .use( swagger({ documentation: { @@ -77,6 +76,7 @@ app }, }), ) + .use(jwt({ secret })) .listen(3567); console.log(`Api running at ${app.server?.hostname}:${app.server?.port}`);