34 lines
920 B
TypeScript
34 lines
920 B
TypeScript
import { defineEventHandler, readBody, createError } from 'h3'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const { message, recaptchaToken } = await readBody(event)
|
|
|
|
if (!message?.trim()) {
|
|
throw createError({ statusCode: 400, message: 'Mensaje vacío' })
|
|
}
|
|
|
|
const config = useRuntimeConfig(event)
|
|
const webhookUrl = config.public.feedbackWebhook
|
|
const feedbackToken = config.feedbackToken
|
|
|
|
if (!webhookUrl) {
|
|
throw createError({ statusCode: 500, message: 'Webhook no configurado' })
|
|
}
|
|
|
|
const headers: Record<string, string> = {}
|
|
if (feedbackToken) {
|
|
headers['X-Feedback-Token'] = feedbackToken
|
|
}
|
|
|
|
try {
|
|
const res = await $fetch(webhookUrl, {
|
|
method: 'POST',
|
|
headers,
|
|
body: { message, recaptchaToken }
|
|
})
|
|
return { ok: true, data: res }
|
|
} catch (e) {
|
|
throw createError({ statusCode: 502, message: 'Error al reenviar el feedback' })
|
|
}
|
|
})
|