From eb1a97541e0049d6028876d34ec2d3e1d8085266 Mon Sep 17 00:00:00 2001 From: makearmy Date: Mon, 29 Sep 2025 12:05:58 -0400 Subject: [PATCH] removed bad directus fields routes --- app/api/directus/choices/route.ts | 39 ------------------------------- app/api/directus/fields/route.ts | 26 --------------------- 2 files changed, 65 deletions(-) delete mode 100644 app/api/directus/choices/route.ts delete mode 100644 app/api/directus/fields/route.ts diff --git a/app/api/directus/choices/route.ts b/app/api/directus/choices/route.ts deleted file mode 100644 index 1b66287d..00000000 --- a/app/api/directus/choices/route.ts +++ /dev/null @@ -1,39 +0,0 @@ -// app/api/directus/choices/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 = String(searchParams.get("collection") || ""); - const group = String(searchParams.get("group") || ""); - const field = String(searchParams.get("field") || ""); - if (!collection || !group || !field) { - return Response.json({ error: "collection, group, and field are required" }, { status: 400 }); - } - - // Pull field metadata server-side (admin token), then extract repeater child choices - const meta = await directusAdminFetch<{ data: any[] }>( - `/fields?filter[collection][_eq]=${encodeURIComponent(collection)}&limit=500` - ); - const rows: any[] = Array.isArray(meta?.data) ? meta.data : []; - - const parent = rows.find((r: any) => r?.field === group); - const nestedChildren: any[] = parent?.meta?.options?.fields || []; - const child = - nestedChildren.find((f: any) => f?.field === field) || - rows.find((r: any) => r?.field === `${group}.${field}`); - - const choices: any[] = - (child?.options?.choices as any[]) ?? - (child?.meta?.options?.choices as any[]) ?? - []; - - const data = choices.map((c: any) => ({ - id: String(c.value ?? c.key ?? c.id), - label: String(c.text ?? c.label ?? c.name ?? c.value ?? c.id), - })); - - return Response.json({ data }); -} diff --git a/app/api/directus/fields/route.ts b/app/api/directus/fields/route.ts deleted file mode 100644 index e9a5f21c..00000000 --- a/app/api/directus/fields/route.ts +++ /dev/null @@ -1,26 +0,0 @@ -// 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 }); - } -}