diff options
author | Raphael <mail@raphaelkabo.com> | 2024-02-06 09:18:19 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-06 09:18:19 +0000 |
commit | 9e249e508ead933cb26eba597003a3b4764e27a5 (patch) | |
tree | ff9c1b7784b436002a2ebfa86779c4e25ecf64b1 /src/routes | |
parent | ecff04b132db687f67d9a6cda2d1c13831c45394 (diff) | |
parent | e40ef51f26d04620b85fcbb15b5c9de857fcbf7b (diff) |
Merge pull request #129 from lowercasename/rk/fix-pleroma
Pleroma federation fixes and hidden RSVP functionality
Diffstat (limited to 'src/routes')
-rw-r--r-- | src/routes/frontend.ts | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/routes/frontend.ts b/src/routes/frontend.ts index cc97ab8..8ddfbf6 100644 --- a/src/routes/frontend.ts +++ b/src/routes/frontend.ts @@ -142,7 +142,11 @@ router.get("/:eventID", async (req: Request, res: Response) => { if (el.number && el.number > 1) { el.name = `${el.name} (${el.number} people)`; } - return el; + return { + ...el, + // Backwards compatibility - if visibility is not set, default to public + visibility: el.visibility || "public", + }; }) .filter((obj, pos, arr) => { return ( @@ -159,6 +163,24 @@ router.get("/:eventID", async (req: Request, res: Response) => { } return acc; }, 0) || 0; + const visibleAttendees = eventAttendees?.filter( + (attendee) => attendee.visibility === "public", + ); + const hiddenAttendees = eventAttendees?.filter( + (attendee) => attendee.visibility === "private", + ); + const numberOfHiddenAttendees = eventAttendees?.reduce( + (acc, attendee) => { + if ( + attendee.status === "attending" && + attendee.visibility === "private" + ) { + return acc + (attendee.number || 1); + } + return acc; + }, + 0, + ); if (event.maxAttendees) { spotsRemaining = event.maxAttendees - numberOfAttendees; if (spotsRemaining <= 0) { @@ -189,8 +211,10 @@ router.get("/:eventID", async (req: Request, res: Response) => { title: event.name, escapedName: escapedName, eventData: event, - eventAttendees: eventAttendees, + visibleAttendees, + hiddenAttendees, numberOfAttendees, + numberOfHiddenAttendees, spotsRemaining: spotsRemaining, noMoreSpots: noMoreSpots, eventStartISO: eventStartISO, |