/** * Content API Route * * GET: Load current website content * POST: Save changed content (Admin only) */ import { NextRequest, NextResponse } from 'next/server' import { getContent, saveContent } from '@/lib/content' import type { WebsiteContent } from '@/lib/content-types' // GET - Load content export async function GET() { try { const content = getContent() return NextResponse.json(content) } catch (error) { console.error('Error loading content:', error) return NextResponse.json( { error: 'Failed to load content' }, { status: 500 } ) } } // POST - Save content export async function POST(request: NextRequest) { try { // Simple admin check via header or query // In production: JWT/Session-based auth const adminKey = request.headers.get('x-admin-key') const expectedKey = process.env.ADMIN_API_KEY || 'breakpilot-admin-2024' if (adminKey !== expectedKey) { return NextResponse.json( { error: 'Unauthorized' }, { status: 401 } ) } const content: WebsiteContent = await request.json() // Validation if (!content.hero || !content.features || !content.faq || !content.pricing) { return NextResponse.json( { error: 'Invalid content structure' }, { status: 400 } ) } const result = saveContent(content) if (result.success) { return NextResponse.json({ success: true, message: 'Content saved' }) } else { return NextResponse.json( { error: result.error || 'Failed to save content' }, { status: 500 } ) } } catch (error) { console.error('Error saving content:', error) return NextResponse.json( { error: error instanceof Error ? error.message : 'Failed to save content' }, { status: 500 } ) } }