From 2010c68c64b5271f84670162ffed230982428e98 Mon Sep 17 00:00:00 2001 From: Marais Devis Date: Wed, 17 Jul 2024 15:35:34 +0200 Subject: [PATCH] Update Evnt db with create new ev + fix form issue --- app/(auth)/login/LoginForm.tsx | 2 +- app/(auth)/register/RegisterForm.tsx | 2 +- app/api/route.ts | 9 ++++++ database/events.ts | 47 ++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 app/api/route.ts diff --git a/app/(auth)/login/LoginForm.tsx b/app/(auth)/login/LoginForm.tsx index c34a6d6..4447ab3 100644 --- a/app/(auth)/login/LoginForm.tsx +++ b/app/(auth)/login/LoginForm.tsx @@ -19,7 +19,7 @@ export default function LoginForm(props: Props) { async function handleLogin(event: React.FormEvent) { event.preventDefault(); - const response = await fetch('api/login', { + const response = await fetch('/api/login', { method: 'POST', body: JSON.stringify({ email, diff --git a/app/(auth)/register/RegisterForm.tsx b/app/(auth)/register/RegisterForm.tsx index 3f98156..5cae8bf 100644 --- a/app/(auth)/register/RegisterForm.tsx +++ b/app/(auth)/register/RegisterForm.tsx @@ -16,7 +16,7 @@ export default function RegisterForm() { async function handleRegister(event: React.FormEvent) { event.preventDefault(); - const response = await fetch('api/register', { + const response = await fetch('/api/register', { method: 'POST', body: JSON.stringify({ username, diff --git a/app/api/route.ts b/app/api/route.ts new file mode 100644 index 0000000..f1a40ff --- /dev/null +++ b/app/api/route.ts @@ -0,0 +1,9 @@ +import { NextResponse } from 'next/server'; + +type RootResponseBodyGet = { + events: string; +}; + +export function GET(): NextResponse { + return NextResponse.json({ events: '/api/events' }); +} diff --git a/database/events.ts b/database/events.ts index f20a6b1..3d31bfa 100644 --- a/database/events.ts +++ b/database/events.ts @@ -41,3 +41,50 @@ export const getEventInsecure = cache(async (id: number) => { return event; }); + +export const createEvent = cache( + async (sessionToken: string, newEvent: Omit) => { + const [event] = await sql` + INSERT INTO + events ( + user_id, + name, + type, + date, + location, + duration, + entry_fee, + category, + description, + image, + organizer_url, + age_restriction, + archived + ) + VALUES + ( + ${newEvent.userId}, + ${newEvent.name}, + ${newEvent.type}, + ${newEvent.date}, + ${newEvent.location}, + ${newEvent.duration}, + ${newEvent.entryFee}, + ${newEvent.category}, + ${newEvent.description}, + ${newEvent.image}, + ${newEvent.organizerUrl}, + ${newEvent.ageRestriction}, + ${newEvent.archived} + FROM + sessions + WHERE + token = ${sessionToken} + AND sessions.expiry_timestamp > now() + ) + RETURNING + events.* + `; + return event; + }, +);