From 023f8bcbb23c51687a9b61b2a2318f2c32a234da Mon Sep 17 00:00:00 2001 From: DecDuck Date: Thu, 7 Nov 2024 20:07:53 +1100 Subject: [PATCH] fix(invitations): fix expires requirement in the admin endpoint --- .../server/api/v1/admin/auth/invitation/index.post.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/server/server/api/v1/admin/auth/invitation/index.post.ts b/server/server/api/v1/admin/auth/invitation/index.post.ts index a0dab37a..60a700c6 100644 --- a/server/server/api/v1/admin/auth/invitation/index.post.ts +++ b/server/server/api/v1/admin/auth/invitation/index.post.ts @@ -8,18 +8,29 @@ export default defineEventHandler(async (h3) => { const isAdmin = body.isAdmin; const username = body.username; const email = body.email; + const expires = body.expires; + if (!expires) + throw createError({ statusCode: 400, statusMessage: "No expires field." }); if (isAdmin !== undefined && typeof isAdmin !== "boolean") throw createError({ statusCode: 400, statusMessage: "isAdmin must be a boolean", }); + const expiresDate = new Date(expires); + if (!(expiresDate instanceof Date && !isNaN(expiresDate.getTime()))) + throw createError({ + statusCode: 400, + statusMessage: "Invalid expires date", + }); + const invitation = await prisma.invitation.create({ data: { isAdmin: isAdmin, username: username, email: email, + expires: expiresDate }, });