Merged in fix/sitemap-issue (pull request #1788)

fix/sitemap: default to prod url and added logging. Also added new sitemap function to be able to invoke it on request.

* test

* wip

* wip

* Added error message to log


Approved-by: Joakim Jäderberg
This commit is contained in:
Linus Flood
2025-04-15 05:59:13 +00:00
parent af65fbf7f4
commit a27d702008
2 changed files with 45 additions and 2 deletions

View File

@@ -0,0 +1,33 @@
/* eslint-disable import/no-anonymous-default-export */
import type { Context } from "@netlify/functions"
export default async (request: Request, _context: Context) => {
const SITEMAP_SYNC_SECRET = request.headers.get("x-sitemap-sync-secret")
const PUBLIC_URL = Netlify.env.get("PUBLIC_URL")
console.info(`Started sitemap sync at: ${new Date().toISOString()}!`)
const headers = new Headers()
headers.set("x-sitemap-sync-secret", SITEMAP_SYNC_SECRET!)
try {
const url = new URL(
"/api/sitemap",
PUBLIC_URL || "https://www.scandichotels.com"
)
const response = await fetch(url, {
headers,
})
if (!response.ok) {
const text = await response.text()
throw new Error(
`HTTP error syncing sitemap! status: ${response.status}, url: ${url.href}, message: ${text}`
)
}
const data = await response.json()
console.log(`Sitemap data: ${JSON.stringify(data)}`)
} catch (error) {
console.error(`Error syncing sitemap: ${error}`)
return new Response("Failed to sync sitemap", { status: 500 })
}
console.log(`Sitemap synced initiated successfully`)
return new Response("Sitemap synced successfully", { status: 200 })
}

View File

@@ -12,14 +12,24 @@ export default async (request: Request, _context: Context) => {
headers.set("x-sitemap-sync-secret", SITEMAP_SYNC_SECRET!)
try {
await fetch(`${PUBLIC_URL}/api/sitemap`, {
const url = new URL(
"/api/sitemap",
PUBLIC_URL || "https://www.scandichotels.com"
)
const response = await fetch(url, {
headers,
})
if (!response.ok) {
const text = await response.text()
throw new Error(
`HTTP error syncing sitemap! status: ${response.status}, url: ${url.href}, message: ${text}`
)
}
} catch (error) {
console.error(`Error syncing sitemap: ${error}`)
return new Response("Failed to sync sitemap", { status: 500 })
}
console.log(`Sitemap synced initiated successfully`)
return new Response("Sitemap synced successfully", { status: 200 })
}