MBO-Tech-IT-Webseite/modules/06-website-cms/files/app/api/admin/ueber-uns/route.ts

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 })
}