From 2f1c7bacf4ea45d6edc013b6eb98cb6eb0da2568 Mon Sep 17 00:00:00 2001 From: alma Date: Wed, 14 Jan 2026 12:33:11 +0100 Subject: [PATCH] corr add group --- app/api/groups/route.ts | 22 +++++++++++++++++++++- app/missions/equipe/page.tsx | 16 ++++++++++++---- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/app/api/groups/route.ts b/app/api/groups/route.ts index e011d20..1b3c887 100644 --- a/app/api/groups/route.ts +++ b/app/api/groups/route.ts @@ -184,6 +184,12 @@ export async function POST(req: Request) { } const token = await getAdminToken(); + if (!token) { + return NextResponse.json( + { message: "Erreur d'authentification avec Keycloak" }, + { status: 500 } + ); + } const response = await fetch( `${process.env.KEYCLOAK_BASE_URL}/admin/realms/${process.env.KEYCLOAK_REALM}/groups`, @@ -198,7 +204,21 @@ export async function POST(req: Request) { ); if (!response.ok) { - throw new Error('Échec de la création du groupe'); + // Try to get error details from Keycloak + let errorMessage = 'Échec de la création du groupe'; + try { + const errorData = await response.json(); + // Keycloak error format: { errorMessage: "..." } or { error: "..." } + errorMessage = errorData.errorMessage || errorData.error || errorData.message || errorMessage; + } catch { + // If response is not JSON, use status text + errorMessage = response.statusText || errorMessage; + } + + return NextResponse.json( + { message: errorMessage }, + { status: response.status } + ); } const groupData = await response.json(); diff --git a/app/missions/equipe/page.tsx b/app/missions/equipe/page.tsx index a2df439..71ba6cd 100644 --- a/app/missions/equipe/page.tsx +++ b/app/missions/equipe/page.tsx @@ -492,21 +492,29 @@ export default function EquipePage() { }); if (!response.ok) { - const errorData = await response.json().catch(() => ({})); - throw new Error(errorData.message || "Failed to create group"); + // Try to parse error message from response + let errorMessage = "Échec de la création du groupe"; + try { + const errorData = await response.json(); + errorMessage = errorData.message || errorData.error || errorMessage; + } catch { + // If response is not JSON, use status text + errorMessage = response.statusText || errorMessage; + } + throw new Error(errorMessage); } const newGroup = await response.json(); setGroups(prev => [...prev, newGroup]); setNewGroupDialogOpen(false); setNewGroupName(""); - toast({ title: "Succès", description: "Groupe créé" }); + toast({ title: "Succès", description: "Groupe créé avec succès" }); fetchData(); // Refresh data } catch (error) { console.error("Error creating group:", error); toast({ title: "Erreur", - description: error instanceof Error ? error.message : "Échec de la création", + description: error instanceof Error ? error.message : "Échec de la création du groupe", variant: "destructive" }); } finally {