this code works when I use postman to call my webhook but fails on Netlify
the Netlify log shows the last debug before the return recordHook payload:
but postman receives
error decoding lambda response:
error decoding lambda response:
json: cannot unmarshal object into Go struct field .body of type string
odd…
thanks, Al;
import type { APIGatewayEvent, Context } from 'aws-lambda'
import {
verifyEvent,
VerifyOptions,
WebhookVerificationError,
} from '@redwoodjs/api/webhooks'
import { logger } from 'src/lib/logger'
import process from 'process'
export const handler = async (event: APIGatewayEvent, context: Context) => {
const webhookInfo = { webhook: 'recordHook' }
const webhookLogger = logger.child({ webhookInfo })
webhookLogger.debug({ event: event }, 'recordHook event')
try {
// verifyEvent('skipVerifier', { event })
const options = {
signatureHeader: 'X-Webhook-Signature',
issuer: 'repeater.dev',
} as VerifyOptions
webhookLogger.debug(
`recordHook VerifyOptions: issuer: 'repeater.dev', secret: ${process.env.guid}`
)
verifyEvent('jwtVerifier', {
event,
secret: process.env.guid,
options,
})
const payload = JSON.parse(event.body)
webhookLogger.debug(
`recordHook payload: ${JSON.stringify(payload, null, 2)}`
)
return {
statusCode: 200,
body: {
now: Date.now(),
},
}
} catch (error) {
if (error instanceof WebhookVerificationError) {
webhookLogger.warn('Unauthorized')
return {
statusCode: 401,
}
} else {
webhookLogger.error({ error }, error.message)
return {
statusCode: 500,
body: JSON.stringify({
error: error.message,
}),
}
}
}
}