feature: events polling

This commit is contained in:
Andy Burke 2025-07-02 21:28:07 -07:00
parent 61a51017a3
commit b700251278
19 changed files with 353 additions and 77 deletions

View file

@ -1,4 +1,5 @@
import { EVENT, EVENTS } from '../../../../../../models/event.ts';
import { FSDB_COLLECTION } from '@andyburke/fsdb';
import { EVENT, get_events_collection_for_room } from '../../../../../../models/event.ts';
import { ROOM, ROOMS } from '../../../../../../models/room.ts';
import parse_body from '../../../../../../utils/bodyparser.ts';
import * as CANNED_RESPONSES from '../../../../../../utils/canned_responses.ts';
@ -29,7 +30,8 @@ PRECHECKS.GET = [get_session, get_user, require_user, async (_req: Request, meta
}
}];
export async function GET(_req: Request, meta: Record<string, any>): Promise<Response> {
const event: EVENT | null = await EVENTS.get(meta.params.event_id);
const events: FSDB_COLLECTION<EVENT> = get_events_collection_for_room(meta.room.id);
const event: EVENT | null = await events.get(meta.params.event_id);
if (!event) {
return CANNED_RESPONSES.not_found();
@ -76,7 +78,8 @@ export async function PUT(req: Request, meta: Record<string, any>): Promise<Resp
const now = new Date().toISOString();
try {
const event: EVENT | null = await EVENTS.get(meta.params.event_id);
const events: FSDB_COLLECTION<EVENT> = get_events_collection_for_room(meta.room.id);
const event: EVENT | null = await events.get(meta.params.event_id);
if (!event) {
return CANNED_RESPONSES.not_found();
@ -98,7 +101,7 @@ export async function PUT(req: Request, meta: Record<string, any>): Promise<Resp
}
};
await EVENTS.update(updated);
await events.update(updated);
return Response.json(updated, {
status: 200
});
@ -147,12 +150,13 @@ PRECHECKS.DELETE = [
}
];
export async function DELETE(_req: Request, meta: Record<string, any>): Promise<Response> {
const event: EVENT | null = await EVENTS.get(meta.params.event_id);
const events: FSDB_COLLECTION<EVENT> = get_events_collection_for_room(meta.room.id);
const event: EVENT | null = await events.get(meta.params.event_id);
if (!event) {
return CANNED_RESPONSES.not_found();
}
await EVENTS.delete(event);
await events.delete(event);
return Response.json({
deleted: true