Integrated attendance system

This commit is contained in:
2025-11-25 13:11:08 -05:00
parent 0a718d36c2
commit ca4f6a811f
5 changed files with 75 additions and 25 deletions

View File

@@ -1,6 +1,6 @@
import { Request, Response } from "express";
import { getEventAttendance, getEventDetails, getShortEventsInRange } from "../services/calendarService";
import { CalendarEvent } from "@app/shared/types/calendar";
import { getEventAttendance, getEventDetails, getShortEventsInRange, setAttendanceStatus } from "../services/calendarService";
import { CalendarAttendance, CalendarEvent } from "@app/shared/types/calendar";
const express = require('express');
const r = express.Router();
@@ -35,6 +35,18 @@ r.get('/upcoming', async (req, res) => {
res.sendStatus(501);
})
r.post('/:id/attendance', async (req: Request, res: Response) => {
try {
let member = req.user.id;
let event = Number(req.params.id);
let state = req.query.state as CalendarAttendance;
setAttendanceStatus(member, event, state);
res.sendStatus(200);
} catch (error) {
console.error('Failed to set attendance:', error);
res.status(500).json(error);
}
})
//get event details
r.get('/:id', async (req: Request, res: Response) => {
try {
@@ -46,10 +58,11 @@ r.get('/:id', async (req: Request, res: Response) => {
res.status(200).json(details);
} catch (err) {
console.error('Insert failed:', err);
res.status(500).json(err);
res.status(500).json(err);
}
})
//post a new calendar event
r.post('/', async (req, res) => {