import { NextResponse } from "next/server"; import { auth } from "@/lib/auth"; import { Role } from "@/prisma/generated/prisma/client"; import { readdir } from "fs/promises"; import { join } from "path"; import { existsSync } from "fs"; export async function GET() { try { const session = await auth(); if (!session?.user || session.user.role !== Role.ADMIN) { return NextResponse.json({ error: "Accès refusé" }, { status: 403 }); } const images: string[] = []; // Lister les images dans public/ const publicDir = join(process.cwd(), "public"); if (existsSync(publicDir)) { const files = await readdir(publicDir); const imageFiles = files.filter( (file) => file.match(/\.(jpg|jpeg|png|gif|webp|svg)$/i) && !file.startsWith(".") ); images.push(...imageFiles.map((file) => `/${file}`)); } // Lister les images dans public/uploads/ const uploadsDir = join(publicDir, "uploads"); if (existsSync(uploadsDir)) { const uploadFiles = await readdir(uploadsDir); const imageFiles = uploadFiles.filter((file) => file.match(/\.(jpg|jpeg|png|gif|webp|svg)$/i) ); images.push(...imageFiles.map((file) => `/uploads/${file}`)); } return NextResponse.json({ images }); } catch (error) { console.error("Error listing images:", error); return NextResponse.json( { error: "Erreur lors de la récupération des images" }, { status: 500 } ); } }