"use server";
import { getListContent } from "@/service/landing/landing";
import { NextResponse } from "next/server";
export async function GET() {
try {
const baseUrl = "https://mediahub.polri.go.id/in";
const response = await getListContent({
page: 1,
limit: "100",
search: "",
});
const articles = response?.data?.data || [];
const urls = articles
.map((article: any) => {
const type =
article.fileTypeId == 1
? "image"
: article.fileTypeId == 2
? "video"
: article.fileTypeId == 3
? "document"
: "audio";
const slug = article.slug
? encodeURIComponent(article.slug)
: article.id;
const lastmod = article.updatedAt
? new Date(article.updatedAt).toISOString()
: new Date().toISOString();
return `
${baseUrl}/${type}/detail/${article.id}-${slug}
${lastmod}
weekly
0.8
`;
})
.join("\n");
const sitemap = `
${baseUrl}
${new Date().toISOString()}
daily
1.0
${urls}
`;
return new NextResponse(sitemap, {
headers: {
"Content-Type": "application/xml",
},
});
} catch (error: any) {
console.error("Sitemap error:", error);
return new NextResponse("Sitemap generation failed", { status: 500 });
}
}