Add public schedule endpoint (GET /public/schedule) #239
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/basketball-api#239
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Prerequisite for
forgejo_admin/westside-landing#172(public schedule page refactor). Admin schedule endpoints (#232, #233) are merged. This adds the unauthenticated public equivalent.Repo
forgejo_admin/basketball-apiUser Story
story:WS-S13As a prospect or parent, I want to see the current schedule on the public website without needing to log in.Context
The admin schedule endpoints (
GET /admin/schedule/*) requirerequire_role("admin"). The public schedule page needs an unauthenticated endpoint following the existing pattern ofGET /public/teamsandGET /public/coachesinroutes/public.py.The endpoint should return the same data shape as
GET /admin/schedulebut:is_active=true)start_date >= todayor no filter — let frontend handle display)File Targets
Files to modify:
src/basketball_api/routes/public.py— addGET /public/scheduleendpoint returning{ practices: [...], events: [...] }Pattern reference (do NOT modify):
src/basketball_api/routes/schedule.py— admin schedule endpoints (query patterns, response schemas to reuse)src/basketball_api/routes/public.py— existing public routes pattern (no auth, tenant from slug)Files NOT to touch:
src/basketball_api/routes/schedule.py— admin endpoints stay as-issrc/basketball_api/models.py— no model changesAcceptance Criteria
GET /public/schedulereturns{ practices: [...], events: [...] }is_active=true)Test Expectations
pytest tests/ -vConstraints
routes/public.pypatterns (no auth dependency, tenant from path or default)routes/schedule.pywhere possibleChecklist
Related
forgejo_admin/westside-landing#172(public schedule page refactor)forgejo_admin/basketball-api#232— data model (merged)forgejo_admin/basketball-api#233— admin endpoints (merged)project-westside-basketballScope Review: APPROVED
Review note:
review-653-2026-03-28Scope is solid. All template sections present, traceability complete, file targets verified. Single file modification (
routes/public.py) following established no-auth pattern. Unblocks board item #649 (westside-app schedule refactor). No decomposition needed.