-
Notifications
You must be signed in to change notification settings - Fork 0
2. Club Routes
Note
These routes handle club creation, updates, and memberships with role-based access control.
| Method | Endpoint | Description |
|---|---|---|
| GET | /clubs/ |
Retrieve all clubs (public). |
| GET | /clubs/:clubUuid |
Get specific club by UUID (public). |
| POST | /clubs/ |
Create a new club (INMA_ADMIN only). |
| PUT | /clubs/:clubUuid |
Update a club (INMA_ADMIN or Club Admin). |
| DELETE | /clubs/:clubUuid |
Delete a club (INMA_ADMIN only). |
| PUT | /clubs/:clubUuid/term-reset |
Reset club term (INMA_ADMIN or Club Admin). |
| Method | Endpoint | Description |
|---|---|---|
| GET | /clubs/:clubUuid/memberships |
Get all memberships for a club (Admin roles only). |
| GET | /clubs/:clubUuid/memberships/:membershipUuid |
Get specific membership (Admin roles only). |
| POST | /clubs/:clubUuid/memberships |
Create a membership (Admin roles only). |
| PUT | /clubs/:clubUuid/memberships/:membershipUuid |
Update membership (Admin roles only). |
| POST | /clubs/:clubUuid/memberships/me |
Join a club (User only). |
| DELETE | /clubs/:clubUuid/memberships/me |
Leave a club (Club member only). |
| DELETE | /clubs/:clubUuid/memberships/:membershipUuid |
Delete membership (Admin roles only). |
- 🏛 Club Management: Full CRUD for clubs with validation.
- 👥 Membership Control: Join, leave, create, update, or delete memberships based on roles.
- 🔒 Role-Based Access: Middleware protects each route with
authorize(...). - 🧪 Validation: Uses Zod schemas to validate input (
insertClubSchema,updateClubMembershipSchema, etc.). - 🔄 Term Reset: Admins can archive all memberships and tasks using the term-reset route.
GET /clubs/Returns paginated list of all clubs.
GET /clubs/:clubUuidReturns a single club.
POST /clubs/Creates a new club.
Requires: INMA_ADMIN
Body Schema: insertClubSchema
PUT /clubs/:clubUuidUpdates a club.
Requires: INMA_ADMIN or CLUB_ADMIN
Body Schema: updateClubSchema
DELETE /clubs/:clubUuidDeletes a club permanently.
Requires: INMA_ADMIN
PUT /clubs/:clubUuid/term-resetArchives inactive/denied memberships and tasks.
Requires: INMA_ADMIN or CLUB_ADMIN
GET /clubs/:clubUuid/membershipsReturns all memberships for the given club.
Roles: INMA_ADMIN, UNI_ADMIN, SUPERVISOR, CLUB_ADMIN, HR
GET /clubs/:clubUuid/memberships/:membershipUuidReturns a single membership entry.
POST /clubs/:clubUuid/membershipsAdmin-initiated member creation.
Roles: INMA_ADMIN, CLUB_ADMIN, HR
PUT /clubs/:clubUuid/memberships/:membershipUuidUpdate membership role or tag.
POST /clubs/:clubUuid/memberships/meUsed by a regular user to request joining a club.
DELETE /clubs/:clubUuid/memberships/meAllows a club member to leave.
DELETE /clubs/:clubUuid/memberships/:membershipUuidAdmin-initiated delete.