import { NextRequest, NextResponse } from 'next/server'; import { prisma } from '@/lib/prisma'; import { getCurrentUser } from '@/lib/auth'; // GET - Liste toutes les permissions disponibles export async function GET(request: NextRequest) { try { const user = await getCurrentUser(); if (!user) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } const permissions = await prisma.permission.findMany({ orderBy: { name: 'asc', }, }); return NextResponse.json(permissions); } catch (error) { console.error('Erreur lors de la récupération des permissions:', error); return NextResponse.json( { error: 'Erreur serveur' }, { status: 500 } ); } } // POST - Créer une nouvelle permission export async function POST(request: NextRequest) { try { const user = await getCurrentUser(); if (!user) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } const body = await request.json(); const { name, description } = body; if (!name) { return NextResponse.json( { error: 'Le nom de la permission est requis' }, { status: 400 } ); } // Vérifier si la permission existe déjà const existing = await prisma.permission.findUnique({ where: { name }, }); if (existing) { return NextResponse.json( { error: 'Cette permission existe déjà' }, { status: 400 } ); } const permission = await prisma.permission.create({ data: { name, description: description || null, }, }); return NextResponse.json(permission, { status: 201 }); } catch (error) { console.error('Erreur lors de la création de la permission:', error); return NextResponse.json( { error: 'Erreur serveur' }, { status: 500 } ); } }