Neah-Enkun/front/app/api/users/[id]/route.ts

41 lines
1.1 KiB
TypeScript

import { getServerSession } from "next-auth";
import { authOptions } from "../../auth/[...nextauth]/route";
import { NextResponse } from "next/server";
export async function DELETE(
req: Request,
{ params }: { params: { id: string } }
) {
const session = await getServerSession(authOptions);
if (
!session?.user?.role?.includes("admin") &&
!session?.user?.role?.includes("TEACHERS")
) {
return NextResponse.json({ error: "Non autorisé" }, { status: 401 });
}
try {
const response = await fetch(
`${process.env.KEYCLOAK_BASE_URL}/admin/realms/${process.env.KEYCLOAK_REALM}/users/${params.id}`,
{
method: "DELETE",
headers: {
Authorization: `Bearer ${session.accessToken}`,
},
}
);
if (response.ok) {
return NextResponse.json({ success: true });
} else {
return NextResponse.json(
{ error: "Erreur suppression utilisateur" },
{ status: 400 }
);
}
} catch (error) {
return NextResponse.json({ error: "Erreur serveur" }, { status: 500 });
}
}