/** * GET /api/offers/flyer?language=de|en[&download=1][&refresh=1] * The marketing flyer PDF (preview/download for staff; the same file is attached * to quote/contract mails when the "Flyer anhängen" option is ticked). */ import { generateFlyerPdf } from '../../utils/offers/flyerPdf' export default defineEventHandler(async (event) => { const token = await getTokenHelper(event) if (!token) { setResponseStatus(event, 401); return 'Not authenticated' } const q = getQuery(event) try { const { buffer, filename } = await generateFlyerPdf(String(q.language || 'de'), !!q.refresh) setHeader(event, 'Content-Type', 'application/pdf') setHeader(event, 'Content-Disposition', `${q.download ? 'attachment' : 'inline'}; filename="${filename}"`) setHeader(event, 'Cache-Control', 'private, max-age=300') return buffer } catch (err: any) { console.error('[Flyer] generation failed:', err) setResponseStatus(event, 500) return err?.message || 'Flyer generation failed' } })