I'm using ISR, my route api/revalidate is consistently triggered even though i am using a secret
Unanswered
Giant panda posted this in #help-forum
Giant pandaOP
file in question:
why is the route constantly being triggered in production? its consting me a significant amount
import { SIGNATURE_HEADER_NAME, isValidSignature } from '@sanity/webhook'
import { NextApiRequest, NextApiResponse } from 'next'
import { generateSiteMap } from 'utils/helper.server'
export const config = {
api: {
bodyParser: false,
},
}
export default async function handler(
req: NextApiRequest,
res: NextApiResponse,
) {
if (req.method !== 'POST') {
return res.status(405).send('Method Not Allowed')
}
const SANITY_WEBHOOK_SECRET = process.env.NEXT_PUBLIC_SANITY_HOOK_SECRET
const signature = req.headers[SIGNATURE_HEADER_NAME]
const isValid = isValidSignature(
JSON.stringify(req.body),
signature as string,
SANITY_WEBHOOK_SECRET,
)
// Validate signature
if (!isValid) {
res.status(401).json({ success: false, message: 'Invalid signature' })
return
}
try {
const dynamicLocations = await generateSiteMap()
const allLocations = [
...dynamicLocations.map((q) => q.loc),
`/`,
`/posts`,
`/projects`,
`/contact-us`,
`/employees`,
`/lead-generation`,
]
for (let i = 0; i < allLocations.length; i++) {
await res.revalidate(allLocations[i])
}
return res.status(204).send('No Content')
} catch (error) {
console.error(error)
return res.status(500).send('Internal Server Error')
}
}why is the route constantly being triggered in production? its consting me a significant amount