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:
33
apps/scandic-web/netlify/functions/sitemap-manual.mts
Normal file
33
apps/scandic-web/netlify/functions/sitemap-manual.mts
Normal 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 })
|
||||||
|
}
|
||||||
@@ -12,14 +12,24 @@ export default async (request: Request, _context: Context) => {
|
|||||||
headers.set("x-sitemap-sync-secret", SITEMAP_SYNC_SECRET!)
|
headers.set("x-sitemap-sync-secret", SITEMAP_SYNC_SECRET!)
|
||||||
|
|
||||||
try {
|
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,
|
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) {
|
} catch (error) {
|
||||||
console.error(`Error syncing sitemap: ${error}`)
|
console.error(`Error syncing sitemap: ${error}`)
|
||||||
return new Response("Failed to sync sitemap", { status: 500 })
|
return new Response("Failed to sync sitemap", { status: 500 })
|
||||||
}
|
}
|
||||||
|
console.log(`Sitemap synced initiated successfully`)
|
||||||
return new Response("Sitemap synced successfully", { status: 200 })
|
return new Response("Sitemap synced successfully", { status: 200 })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user