/* 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/web/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 })
}
