import { NextRequest } from 'next/server' import { prisma } from '@/lib/prisma' export async function GET(req: NextRequest) { try { const canvasId = req.nextUrl.searchParams.get('id') console.log('[Slides API] Request for id:', canvasId) if (!canvasId) { console.log('[Slides API] ERROR: Missing id') return new Response(JSON.stringify({ error: 'Missing id' }), { status: 400, headers: { 'Content-Type': 'application/json' }, }) } const canvas = await prisma.canvas.findUnique({ where: { id: canvasId }, }) if (!canvas) { console.log('[Slides API] ERROR: Canvas not found for id:', canvasId) return new Response(JSON.stringify({ error: 'Not found' }), { status: 404, headers: { 'Content-Type': 'application/json' }, }) } console.log('[Slides API] Canvas found:', canvas.name, '| data length:', canvas.data?.length) console.log('[Slides API] Raw data start:', canvas.data?.substring(0, 200)) let parsed: any try { parsed = JSON.parse(canvas.data) } catch (parseErr) { console.log('[Slides API] ERROR: JSON parse failed:', parseErr) return new Response(JSON.stringify({ error: 'Invalid data' }), { status: 500, headers: { 'Content-Type': 'application/json' }, }) } console.log('[Slides API] Parsed type:', parsed.type, '| has html:', !!parsed.html, '| html length:', parsed.html?.length) console.log('[Slides API] HTML start:', parsed.html?.substring(0, 150)) if (parsed.type !== 'slides' || !parsed.html) { console.log('[Slides API] ERROR: Not a slides canvas. type:', parsed.type, 'html exists:', !!parsed.html) return new Response(JSON.stringify({ error: 'Not a slides canvas' }), { status: 400, headers: { 'Content-Type': 'application/json' }, }) } console.log('[Slides API] SUCCESS: Returning HTML, length:', parsed.html.length) return new Response(parsed.html, { status: 200, headers: { 'Content-Type': 'text/html; charset=utf-8', 'Cache-Control': 'no-cache', }, }) } catch (error) { console.error('[Slides API] FATAL:', error) return new Response(JSON.stringify({ error: 'Internal Server Error' }), { status: 500, headers: { 'Content-Type': 'application/json' }, }) } }