diff --git a/src/api/routes/discovery.ts b/src/api/routes/discovery/categories.ts similarity index 71% rename from src/api/routes/discovery.ts rename to src/api/routes/discovery/categories.ts index 461681780..c8decd95f 100644 --- a/src/api/routes/discovery.ts +++ b/src/api/routes/discovery/categories.ts @@ -1,17 +1,17 @@ /* Spacebar: A FOSS re-implementation and extension of the Discord.com backend. - Copyright (C) 2023 Spacebar and Spacebar Contributors - + Copyright (C) 2026 Spacebar and Spacebar Contributors + This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. - + You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ @@ -21,10 +21,21 @@ import { route } from "@spacebar/api/middlewares"; import { Categories } from "@spacebar/database"; const router = Router({ mergeParams: true }); - router.get( - "/categories", + "/", route({ + query: { + primary_only: { + type: "boolean", + default: false, + required: false, + }, + locale: { + type: "string", + default: "en_US", + required: false, + }, + }, responses: { 200: { body: "APIDiscoveryCategoryArray", @@ -32,15 +43,11 @@ router.get( }, }), async (req: Request, res: Response) => { - // TODO: - // Get locale instead - - // const { locale, primary_only } = req.query; - const { primary_only } = req.query; + const { locale, primary_only } = req.query; const out = primary_only ? await Categories.find({ where: { is_primary: true } }) : await Categories.find(); - res.send(out); + res.send(out.map((x) => x.toDiscoveryCategory(locale as string | undefined))); }, );