35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
import { NextRequest, NextResponse } from 'next/server'
|
|
import { requireAdmin } from '@/lib/admin-auth'
|
|
import { createServiceClient } from '@/lib/supabase'
|
|
|
|
export async function GET() {
|
|
const check = await requireAdmin()
|
|
if (check instanceof NextResponse) return check
|
|
const db = createServiceClient()
|
|
const [{ data: content }, { data: stats }] = await Promise.all([
|
|
db.from('ueber_uns_content').select('*').limit(1).single(),
|
|
db.from('ueber_uns_stats').select('*').order('reihenfolge'),
|
|
])
|
|
return NextResponse.json({ content: content ?? null, stats: stats ?? [] })
|
|
}
|
|
|
|
export async function PATCH(req: NextRequest) {
|
|
const check = await requireAdmin()
|
|
if (check instanceof NextResponse) return check
|
|
const body = await req.json()
|
|
const db = createServiceClient()
|
|
const { data: existing } = await db.from('ueber_uns_content').select('id').limit(1).single()
|
|
const fields = {
|
|
eyebrow_text: body.eyebrow_text ?? 'Klein, aber fein',
|
|
absatz1: body.absatz1 ?? '',
|
|
absatz2: body.absatz2 ?? '',
|
|
bild_url: body.bild_url ?? null,
|
|
updated_at: new Date().toISOString(),
|
|
}
|
|
const { error } = existing
|
|
? await db.from('ueber_uns_content').update(fields).eq('id', existing.id)
|
|
: await db.from('ueber_uns_content').insert(fields)
|
|
if (error) return NextResponse.json({ error: error.message }, { status: 500 })
|
|
return NextResponse.json({ success: true })
|
|
}
|