Refactor code structure for improved readability and maintainability
Some checks failed
CI / lint (push) Failing after 10s
CI / test-backend (push) Has been skipped
CI / test-frontend (push) Has been skipped
CI / test-e2e (push) Has been skipped

This commit is contained in:
2026-03-22 11:34:38 +01:00
parent 5eaf320fc5
commit 2667e11284
46 changed files with 4949 additions and 157 deletions

View File

@@ -40,23 +40,25 @@ const zod_2 = require("zod");
const searchMetadataSchema = zod_1.z.object({
q: zod_1.z.string().min(1, 'El parámetro de búsqueda es requerido'),
platform: zod_1.z.string().optional(),
year: zod_1.z.coerce.number().int().min(1900).max(2100).optional(),
});
async function metadataRoutes(app) {
/**
* GET /api/metadata/search?q=query&platform=optional
* Buscar metadata de juegos
* GET /api/metadata/search?q=query&platform=optional&year=optional
* Buscar metadata de juegos en múltiples fuentes (IGDB, RAWG, TheGamesDB)
*/
app.get('/metadata/search', async (request, reply) => {
try {
// Validar parámetros de query con Zod
const validated = searchMetadataSchema.parse(request.query);
// Llamar a metadataService
const result = await metadataService.enrichGame({
// Llamar a metadataService.searchGames para obtener múltiples resultados
const results = await metadataService.searchGames({
title: validated.q,
platform: validated.platform,
year: validated.year,
});
// Si hay resultado, devolver como array; si no, devolver array vacío
return reply.code(200).send(result ? [result] : []);
// Devolver array de resultados
return reply.code(200).send(results);
}
catch (error) {
if (error instanceof zod_2.ZodError) {