diff --git a/src/app/api/articoli/[id]/route.ts b/src/app/api/articoli/[id]/route.ts index 56e8128..4df5a0f 100644 --- a/src/app/api/articoli/[id]/route.ts +++ b/src/app/api/articoli/[id]/route.ts @@ -1,7 +1,7 @@ import { NextResponse } from "next/server"; import { auth } from "@/src/auth"; -import { deleteArticle, updateArticle } from "@/src/lib/articles"; +import { deleteArticle, updateArticle, getArticleById } from "@/src/lib/articles"; interface RouteContext { params: Promise<{ id: string }>; @@ -18,6 +18,24 @@ async function readId(params: Promise<{ id: string }>): Promise { return articleId; } +export async function GET(_request: Request, context: RouteContext) { + const session = await auth(); + + if (!session?.user) { + return NextResponse.json({ error: "Non autenticato" }, { status: 401 }); + } + + try { + const article = await getArticleById(await readId(context.params)); + return NextResponse.json({ article }); + } catch (error) { + return NextResponse.json( + { error: error instanceof Error ? error.message : "Articolo non trovato" }, + { status: 404 }, + ); + } +} + export async function PUT(request: Request, context: RouteContext) { const session = await auth(); diff --git a/src/components/ArticoliMacchinaModal.tsx b/src/components/ArticoliMacchinaModal.tsx index 4e13036..d417890 100644 --- a/src/components/ArticoliMacchinaModal.tsx +++ b/src/components/ArticoliMacchinaModal.tsx @@ -62,9 +62,12 @@ export default function ArticoliMacchinaModal({ let articoloEsiste = true; try { const res = await fetch(`/api/articoli/${articolo.id_articolo}`); - articoloEsiste = res.ok; + // Solo 404 indica che l'articolo non esiste + // Altri errori (401, 500, etc.) non significano che l'articolo non esiste + articoloEsiste = res.status !== 404; } catch { - articoloEsiste = false; + // In caso di errore di rete, assumiamo che l'articolo esista + articoloEsiste = true; } setRimuoviModal({