Files
website/server/api/message.post.ts
Arthur DANJOU 5ca0137c4e Lint code
Signed-off-by: Arthur DANJOU <arthurdanjou@outlook.fr>
2024-04-20 01:33:40 +02:00

31 lines
787 B
TypeScript

import {z} from 'zod'
const MessageValidator = z.object({
message: z.string(),
}).parse
export default defineEventHandler(async (event) => {
const { message } = await readValidatedBody(event, MessageValidator)
const { user } = await requireUserSession(event)
const config = useRuntimeConfig(event)
await sendDiscordWebhookMessage(config, {
title: 'New guestbook message ✨',
description: `**${user.username}** has signed the book : "*${message}*"`,
color: 15893567,
})
return useDB().insert(tables.guestbookMessages)
.values({
message,
email: user.email,
username: user.username,
image: user.picture,
})
.onConflictDoUpdate({
target: tables.guestbookMessages.email,
set: {
message,
},
})
})