// src/lib/directus/news.ts import { directusFetch } from "@/lib/directus/index"; import { NewsItem } from "@/types/news"; /** * 最新ニュース5件取得 */ export async function getLatestNews(): Promise { const query = [ "filter[status][_eq]=1", // ✅ 公開=1 のみ取得 "sort[]=-published_at", "limit=5", "fields[]=id", "fields[]=title", "fields[]=slug", "fields[]=published_at", "fields[]=thumbnail.id", "fields[]=thumbnail.filename_disk", "fields[]=linkurl", "fields[]=link_target", "fields[]=tags", ].join("&"); return await directusFetch(`/items/news?${query}`); } /** * 全ニュース一覧取得 */ export async function getAllNews(): Promise { const query = [ "filter[status][_eq]=1", // ✅ 公開=1 のみ取得 "sort[]=-published_at", "fields[]=id", "fields[]=title", "fields[]=slug", "fields[]=published_at", "fields[]=thumbnail.id", "fields[]=thumbnail.filename_disk", "fields[]=linkurl", "fields[]=link_target", "fields[]=tags", "fields[]=content", ].join("&"); return await directusFetch(`/items/news?${query}`); } /** * ニュースID指定で詳細取得 */ export async function getNewsById(id: number): Promise { try { return await directusFetch( `/items/news/${id}?fields=id,title,content,published_at,tags,status,thumbnail.id,mainimg.*` ); } catch { return null; } }