Add KYOO_PREFIX handling in api's redirect

This commit is contained in:
Zoe Roux 2025-03-23 15:00:48 +01:00
parent 92b0076bef
commit 204344955e
No known key found for this signature in database
9 changed files with 23 additions and 15 deletions

View File

@ -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." },

View File

@ -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: {

View File

@ -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: {

View File

@ -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: {

View File

@ -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: {

View File

@ -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: {

View File

@ -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: {

View File

@ -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)

View File

@ -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}`);