Implement saved, taking, and taken course persistence #17

Open
opened 2026-11-07 20:27:04 +00:00 by etashj · 0 comments
Member

Goal

Restore the personal course list endpoints in crates/courses-web-api/src/backend/personal.rs.

Scope

  • Implement GET /api/profile/courses and PUT/DELETE /api/profile/courses/{code} with the retained saved_courses schema.
  • Support the states and response shapes in sites/web/src/lib/contracts.ts, including saved, taking, and taken courses.
  • Validate catalog course references and require verified identity. Isolate every operation by owner.
  • Add OpenAPI coverage and tests for state changes, deletion, persistence, invalid course codes, and cross-user isolation.

Done when

Saved/taking/taken selections survive reloads and match the frontend contract without 501 responses. Update feature documentation.

See sites/docs/src/backend-development.md and sites/docs/src/api/user.md.

## Goal Restore the personal course list endpoints in `crates/courses-web-api/src/backend/personal.rs`. ## Scope - Implement `GET /api/profile/courses` and `PUT/DELETE /api/profile/courses/{code}` with the retained `saved_courses` schema. - Support the states and response shapes in `sites/web/src/lib/contracts.ts`, including saved, taking, and taken courses. - Validate catalog course references and require verified identity. Isolate every operation by owner. - Add OpenAPI coverage and tests for state changes, deletion, persistence, invalid course codes, and cross-user isolation. ## Done when Saved/taking/taken selections survive reloads and match the frontend contract without 501 responses. Update feature documentation. See `sites/docs/src/backend-development.md` and `sites/docs/src/api/user.md`.
Sign in to join this conversation.
No description provided.