import { NextRequest, NextResponse } from 'next/server'; import { prisma } from '@/lib/prisma'; import { getCurrentUser } from '@/lib/auth'; // PUT - Attribuer ou modifier le rôle d'un utilisateur export async function PUT( request: NextRequest, { params }: { params: { id: string } } ) { try { const currentUser = await getCurrentUser(); if (!currentUser) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } const body = await request.json(); const { roleId } = body; const user = await prisma.user.findUnique({ where: { id: params.id }, }); if (!user) { return NextResponse.json( { error: 'Utilisateur non trouvé' }, { status: 404 } ); } // Vérifier que le rôle existe si fourni if (roleId) { const role = await prisma.role.findUnique({ where: { id: roleId }, }); if (!role) { return NextResponse.json( { error: 'Rôle non trouvé' }, { status: 404 } ); } } // Mettre à jour le rôle de l'utilisateur const updatedUser = await prisma.user.update({ where: { id: params.id }, data: { roleId: roleId || null, }, select: { id: true, email: true, name: true, roleId: true, role: { select: { id: true, name: true, description: true, }, }, createdAt: true, }, }); return NextResponse.json(updatedUser); } catch (error) { console.error('Erreur lors de l\'attribution du rôle:', error); return NextResponse.json( { error: 'Erreur serveur' }, { status: 500 } ); } }