feat(db): init mongo and passing komga conf

This commit is contained in:
Julien Froidefond
2025-02-14 14:23:30 +01:00
parent 08f6e6a264
commit 1f881ade26
11 changed files with 1047 additions and 446 deletions

View File

@@ -1,16 +1,57 @@
import { NextResponse } from "next/server";
import { ConfigDBService } from "@/lib/services/config-db.service";
export async function POST(request: Request) {
try {
const data = await request.json();
console.log("Configuration Komga reçue:", data);
return NextResponse.json({ message: "Configuration reçue avec succès" }, { status: 200 });
} catch (error) {
console.error("Erreur lors de la réception de la configuration:", error);
const mongoConfig = await ConfigDBService.saveConfig(data);
// Convertir le document Mongoose en objet simple
const config = {
url: mongoConfig.url,
username: mongoConfig.username,
password: mongoConfig.password,
userId: mongoConfig.userId,
};
return NextResponse.json(
{ error: "Erreur lors de la réception de la configuration" },
{ status: 400 }
{ message: "Configuration sauvegardée avec succès", config },
{ status: 200 }
);
} catch (error) {
console.error("Erreur lors de la sauvegarde de la configuration:", error);
if (error instanceof Error && error.message === "Utilisateur non authentifié") {
return NextResponse.json({ error: "Non autorisé" }, { status: 401 });
}
return NextResponse.json(
{ error: "Erreur lors de la sauvegarde de la configuration" },
{ status: 500 }
);
}
}
export async function GET() {
try {
const mongoConfig = await ConfigDBService.getConfig();
// Convertir le document Mongoose en objet simple
const config = {
url: mongoConfig.url,
username: mongoConfig.username,
password: mongoConfig.password,
userId: mongoConfig.userId,
};
return NextResponse.json(config, { status: 200 });
} catch (error) {
console.error("Erreur lors de la récupération de la configuration:", error);
if (error instanceof Error) {
if (error.message === "Utilisateur non authentifié") {
return NextResponse.json({ error: "Non autorisé" }, { status: 401 });
}
if (error.message === "Configuration non trouvée") {
return NextResponse.json({ error: "Configuration non trouvée" }, { status: 404 });
}
}
return NextResponse.json(
{ error: "Erreur lors de la récupération de la configuration" },
{ status: 500 }
);
}
}