Skip to content

Commit 819f3ee

Browse files
committed
api endpoints
1 parent 4eed05a commit 819f3ee

6 files changed

Lines changed: 157 additions & 141 deletions

File tree

website/app/modules/luma/api.server.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ type Deps = {
5252
logger: Logger;
5353
};
5454

55+
export type LumaClient = ReturnType<typeof createLumaClient>;
56+
5557
export const createLumaClient = ({ mainConfig, logger }: Deps) => {
5658
const apiKey = mainConfig.luma.apiKey;
5759

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { Route } from "./+types/api.events.$id.register";
2+
3+
export async function action({ params, context }: Route.ActionArgs) {
4+
const { id } = params;
5+
const event = await context.queryClient.getEventById(id);
6+
if(!event) {
7+
return Response.json({ success: false, error: 'Event not found' }, { status: 404, statusText: 'Event not found' });
8+
}
9+
if(!event.lumaEventId) {
10+
return Response.json({ success: false, error: 'Event not yet open' }, { status: 401, statusText: 'Event not yet open' });
11+
}
12+
// try {
13+
// const attendees = await context.lumaClient.getAllAttendees(event.lumaEventId);
14+
// } catch(error: unknown) {
15+
// const message = error instaceof Error ? error.message : 'Something went wrong';
16+
// return new Response.json({ success: false, error: message})
17+
// }
18+
return Response.json({ success: true });
19+
}

website/app/routes/api.events.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Route } from "./+types/api.events";
2+
3+
export async function loader({ context }: Route.ActionArgs) {
4+
const events = await context.queryClient.getPublishedUpcomingEvents();
5+
const data = events.map((event) => ({
6+
id: event.id,
7+
slug: event.slug,
8+
name: event.name,
9+
startDate: event.startDate,
10+
location: event.shortLocation,
11+
}));
12+
return Response.json({ success: true, data });
13+
}

website/app/routes/api.speakers.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { Route } from "./+types/api.speakers";
2+
3+
export async function loader({ context }: Route.ActionArgs) {
4+
const speakersWithTalks = await context.queryClient.getSpeakersWithTalks();
5+
const data = speakersWithTalks.speakers.map((speaker) => ({
6+
name: speaker.name,
7+
}));
8+
return Response.json({ success: true, data });
9+
}

0 commit comments

Comments
 (0)