// app/api/health/directus/route.ts import { NextResponse } from "next/server"; import { directusFetch } from "@/lib/directus"; export const runtime = "nodejs"; export async function GET() { const out: any = { ok: true, checks: {} }; try { // who am I? try { const who = await directusFetch<{ data: any }>(`/users/me?fields=id,email,role.name`); out.checks.user = { ok: true, role: who?.data?.role?.name ?? null }; } catch (e: any) { out.checks.user = { ok: false, error: e?.message || String(e) }; } // can read folders? try { const folders = await directusFetch<{ data: any[] }>(`/folders?limit=1&fields=id,name`); out.checks.folders = { ok: true, sample: folders?.data?.[0] ?? null }; } catch (e: any) { out.checks.folders = { ok: false, error: e?.message || String(e) }; } // can read files (not create; safe) try { const files = await directusFetch<{ data: any[] }>(`/files?limit=0`); out.checks.files_read = { ok: true, totalKnown: files?.data?.length ?? 0 }; } catch (e: any) { out.checks.files_read = { ok: false, error: e?.message || String(e) }; } return NextResponse.json(out); } catch (e: any) { return NextResponse.json({ ok: false, error: e?.message || "health error", ...out }, { status: 500 }); } }