diff --git a/ui/app/api/news/[id]/route.ts b/ui/app/api/news/[id]/route.ts index 02d52a2..3843011 100644 --- a/ui/app/api/news/[id]/route.ts +++ b/ui/app/api/news/[id]/route.ts @@ -1,12 +1,17 @@ import { NextResponse } from "next/server"; -import { fetchNewsData } from "../../../../lib/fetchNewsData"; +import fs from "node:fs/promises"; +import path from "node:path"; export async function GET(request: Request, { params }: { params: { id: string } }) { - const newsData = await fetchNewsData(params.id); + try { + const dataDirectory = path.join(process.cwd(), "public", "data"); + const filePath = path.join(dataDirectory, `${params.id}.json`); + const fileContents = await fs.readFile(filePath, "utf8"); + const newsData = JSON.parse(fileContents); - if (!newsData) { + return NextResponse.json(newsData); + } catch (error) { + console.error("Error reading news data:", error); return NextResponse.json({ error: "News not found" }, { status: 404 }); } - - return NextResponse.json(newsData); } diff --git a/ui/app/news/[id]/page.tsx b/ui/app/news/[id]/page.tsx index a98b18f..0c47af4 100644 --- a/ui/app/news/[id]/page.tsx +++ b/ui/app/news/[id]/page.tsx @@ -1,8 +1,15 @@ -import { fetchNewsData } from "../../../lib/fetchNewsData"; import NewsDetail from "../../../components/NewsDetail"; +async function getNewsData(id: string) { + const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/news/${id}`, { next: { revalidate: 60 } }); + if (!res.ok) { + throw new Error("Failed to fetch news"); + } + return res.json(); +} + export default async function NewsPage({ params }: { params: { id: string } }) { - const newsData = await fetchNewsData(params.id); + const newsData = await getNewsData(params.id); if (!newsData) { return