Files
evento/packages/server/src/api/admin/guests/routes.ts

37 lines
1.0 KiB
TypeScript

import { Router } from "express";
import { GuestService } from "../../../modules/guests/service";
import { validateBody } from "../../../core/middleware/validate";
import { createGuestSchema, updateRsvpSchema } from "../../../modules/guests/types";
const service = new GuestService();
export function registerGuestRoutes(router: Router) {
const r = Router();
// Admin can manage guests (same endpoints, can be extended with extra checks)
r.post("/guest", validateBody(createGuestSchema), async (req, res) => {
const guest = await service.createGuest(req.body);
res.json(guest);
});
r.get("/guest", async (_req, res) => {
const guests = await service.listGuests();
res.json(guests);
});
r.patch(
"/guest/:id/rsvp",
validateBody(updateRsvpSchema),
async (req, res) => {
const updated = await service.updateRsvp(req.params.id, req.body);
if (!updated) {
return res.status(404).json({ error: "Guest not found" });
}
res.json(updated);
},
);
router.use(r);
}