import { NextRequest, NextResponse } from "next/server"; import { getContentByKey } from "@/lib/content"; import { getContentPage } from "@/lib/directus"; export async function GET(request: NextRequest) { const { searchParams } = new URL(request.url); const key = searchParams.get("key"); const locale = searchParams.get("locale") || "en"; if (!key) { return NextResponse.json({ error: "key is required" }, { status: 400 }); } try { // 1) Try Directus first const directusPage = await getContentPage(key, locale); if (directusPage) { return NextResponse.json({ content: { title: directusPage.title, slug: directusPage.slug, locale: directusPage.locale || locale, content: directusPage.content, }, source: "directus", }); } // 2) Fallback: PostgreSQL const translation = await getContentByKey({ key, locale }); if (!translation) return NextResponse.json({ content: null }); return NextResponse.json({ content: translation, source: "postgresql" }); } catch (error) { // If DB isn't migrated/available, fail soft so the UI can fall back to next-intl strings. if (process.env.NODE_ENV === "development") { console.warn("Content API failed; returning null content:", error); } return NextResponse.json({ content: null }); } }