// app/api/directus/fields/route.ts import { NextRequest } from "next/server"; import { directusAdminFetch } from "@/lib/directus"; export const dynamic = "force-dynamic"; export async function GET(req: NextRequest) { const { searchParams } = new URL(req.url); const collection = searchParams.get("collection")?.trim(); if (!collection) { return Response.json({ error: "Missing ?collection" }, { status: 400 }); } try { // Preferred endpoint const res = await directusAdminFetch(`/fields/${encodeURIComponent(collection)}`); const data = Array.isArray(res?.data) ? res.data : Array.isArray(res) ? res : []; return Response.json({ data }); } catch { // Fallback (some Directus setups restrict the path variant) const qs = new URLSearchParams({ "filter[collection][_eq]": collection }); const fb = await directusAdminFetch(`/fields?${qs.toString()}`); const data = Array.isArray(fb?.data) ? fb.data : Array.isArray(fb) ? fb : []; return Response.json({ data }); } }