diff --git a/app/events/page.tsx b/app/events/page.tsx
index cf47d9f..e853e9b 100644
--- a/app/events/page.tsx
+++ b/app/events/page.tsx
@@ -1,8 +1,59 @@
+import Link from 'next/link';
+import { getEventsInsecure } from '../../database/events';
+
export const metadata = {
title: 'Upcoming Events',
description: 'Upcoming events around the city',
};
-export default function EventsPage() {
- return
Home
Upcoming Events
-
Post Events
+
{user ? (
<>
{user.username}
+ Post Events
>
) : (
diff --git a/database/events.ts b/database/events.ts
index c3d8e54..bdc2016 100644
--- a/database/events.ts
+++ b/database/events.ts
@@ -1,16 +1,60 @@
-export type Event = {
- id: number;
- user_id: number;
- name: string;
- type: string;
- date: Date;
- location: string;
- duration: number | null;
- entry_fee: number | null;
- category: string;
- description: string;
- image: string;
- organizer_url: string;
- age_restriction: boolean | null;
- archived: boolean | null;
-};
+import { cache } from 'react';
+import { sql } from './connect';
+
+export const getEventsInsecure = cache(async () => {
+ const events = await sql<
+ {
+ id: number;
+ userId: number;
+ name: string;
+ type: string;
+ date: Date;
+ location: string;
+ duration: number | null;
+ entryFee: number | null;
+ category: string;
+ description: string;
+ image: string;
+ organizerUrl: string;
+ ageRestriction: boolean | null;
+ archived: boolean;
+ }[]
+ >`
+ SELECT
+ *
+ FROM
+ events
+ `;
+
+ return events;
+});
+
+export const getEventInsecure = cache(async (id: number) => {
+ const [event] = await sql<
+ {
+ id: number;
+ userId: number;
+ name: string;
+ type: string;
+ date: Date;
+ location: string;
+ duration: number | null;
+ entryFee: number | null;
+ category: string;
+ description: string;
+ image: string;
+ organizerUrl: string;
+ ageRestriction: boolean | null;
+ archived: boolean;
+ }[]
+ >`
+ SELECT
+ *
+ FROM
+ events
+ WHERE
+ id = ${id}
+ `;
+
+ return event;
+});
diff --git a/migrations/00002-createTableEvents.ts b/migrations/00002-createTableEvents.ts
index a37de0e..758dfb9 100644
--- a/migrations/00002-createTableEvents.ts
+++ b/migrations/00002-createTableEvents.ts
@@ -1,5 +1,22 @@
import { Sql } from 'postgres';
+export type Event = {
+ id: number;
+ userId: number;
+ name: string;
+ type: string;
+ date: Date;
+ location: string;
+ duration: null | number;
+ entryFee: null | number;
+ category: string;
+ description: string;
+ image: string;
+ organizerUrl: string;
+ ageRestriction: null | false | true;
+ archived: boolean;
+};
+
export async function up(sql: Sql) {
await sql`
CREATE TABLE events (
diff --git a/migrations/00007-insertEvents.ts b/migrations/00007-insertEvents.ts
index fdab3ed..6e3c5b4 100644
--- a/migrations/00007-insertEvents.ts
+++ b/migrations/00007-insertEvents.ts
@@ -188,7 +188,9 @@ export async function up(sql: Sql) {
${event.user_id},
${event.name},
${event.type},
- ${event.date},
+ date (
+ ${event.date}
+ ),
${event.location},
${event.duration},
${event.entry_fee},