feat: add admin sitemap regeneration endpoint and cron task

This commit is contained in:
2026-05-09 13:30:38 +08:00
parent c6a9b448d3
commit 03428bdd0b
5 changed files with 277 additions and 235 deletions
+24
View File
@@ -0,0 +1,24 @@
import { Elysia } from "elysia"
import { requireAdmin } from "@/lib/auth/guard"
import { generateSitemaps } from "@/lib/sitemap/generate-static"
export const sitemapRegenerateRoutes = new Elysia({ prefix: "/sitemap" })
.post(
"/regenerate",
async ({ request, set }) => {
const guard = await requireAdmin(request.headers)
if (!guard.ok) {
set.status = guard.status
return { error: guard.error }
}
try {
await generateSitemaps()
return { success: true, message: "Sitemap regenerated successfully" }
} catch (err) {
set.status = 500
return { error: "Failed to regenerate sitemap", details: err instanceof Error ? err.message : String(err) }
}
},
)