Files
web/apps/scandic-web/app/sitemap/route.ts
Joakim Jäderberg daf765f3d5 Merged in feature/wrap-logging (pull request #2511)
Feature/wrap logging

* feat: change all logging to go through our own logger function so that we can control log levels

* move packages/trpc to using our own logger

* merge


Approved-by: Linus Flood
2025-07-03 12:37:04 +00:00

36 lines
1022 B
TypeScript

import { createLogger } from "@scandic-hotels/common/logger/createLogger"
import { env } from "@/env/server"
import { getLastUpdated, getSitemapIds } from "@/utils/sitemap"
export const dynamic = "force-dynamic"
const sitemapLogger = createLogger("sitemap")
export async function GET() {
sitemapLogger.debug(`Fetching sitemap`)
const lastUpdated = await getLastUpdated()
const sitemaps = await getSitemapIds()
if (!sitemaps || sitemaps.length === 0) {
return new Response("No sitemaps found", { status: 404 })
}
sitemapLogger.debug(`Sitemaps retrieved: ${sitemaps.length}`)
const urls = sitemaps.map(
(id) => `<sitemap>
<loc>${env.PUBLIC_URL}/sitemap-${id}.xml</loc>
<lastmod>${lastUpdated}</lastmod>
</sitemap>`
)
const sitemapIndexXML = `<?xml version="1.0" encoding="UTF-8"?>\n<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">${urls.join("")}\n</sitemapindex>`
return new Response(sitemapIndexXML, {
headers: { "Content-Type": "application/xml" },
})
}