feat(planning): planningsoppervlak in de OciServe-gateway (D-0) #2122

Closed
opened 2026-09-19 20:30:34 +00:00 by brenno · 0 comments
Owner

Overgebracht vanuit brenno/Keiko#285. De serverzijde is inmiddels geland (OciServe PR #609, zelfinschrijving #591), dus de parkeerreden vervalt.

Nieuwe methoden met dezelfde strenge parseervorm die de bestaande modellen hanteren (onbekende velden weigeren waar dat nu al gebeurt, FormatException bij incomplete payloads):

GET  organizations/{org}/me/course-offerings
GET  organizations/{org}/me/course-offerings/{id}
POST organizations/{org}/me/course-offerings/{id}/registrations
GET  organizations/{org}/me/bookings
POST organizations/{org}/me/bookings/{id}/cancel
POST organizations/{org}/me/bookings/{id}/confirm
POST organizations/{org}/me/bookings/{id}/decline

Nieuwe modellen in lib/models/ociserve_models.dart: OciServeOfferingSummary, OciServeTrainingSession, OciServeBooking, OciServeEligibility. Alle mutaties krijgen een Idempotency-Key, net als de bestaande bewijsuploads.

Contract (D-6): Keiko pint het servercontract in api/ociserve.openapi.yaml met een pin.json en bewaakt drift in de poort. OciDeck kent zo'n pin niet; de gateway is met de hand geschreven. Gewenst: dezelfde gepinde spec en driftcontrole, of ten minste een contracttest die de gateway tegen de gepubliceerde spec houdt. Tot die tijd vermeldt docs/KNOWN_LIMITATIONS.md expliciet dat de planningsfunctionaliteit tegen een nog niet uitgebrachte serverversie is gebouwd.

Overgebracht vanuit brenno/Keiko#285. De serverzijde is inmiddels geland (OciServe PR #609, zelfinschrijving #591), dus de parkeerreden vervalt. Nieuwe methoden met dezelfde strenge parseervorm die de bestaande modellen hanteren (onbekende velden weigeren waar dat nu al gebeurt, `FormatException` bij incomplete payloads): ``` GET organizations/{org}/me/course-offerings GET organizations/{org}/me/course-offerings/{id} POST organizations/{org}/me/course-offerings/{id}/registrations GET organizations/{org}/me/bookings POST organizations/{org}/me/bookings/{id}/cancel POST organizations/{org}/me/bookings/{id}/confirm POST organizations/{org}/me/bookings/{id}/decline ``` Nieuwe modellen in `lib/models/ociserve_models.dart`: `OciServeOfferingSummary`, `OciServeTrainingSession`, `OciServeBooking`, `OciServeEligibility`. Alle mutaties krijgen een `Idempotency-Key`, net als de bestaande bewijsuploads. **Contract (D-6):** Keiko pint het servercontract in `api/ociserve.openapi.yaml` met een `pin.json` en bewaakt drift in de poort. OciDeck kent zo'n pin niet; de gateway is met de hand geschreven. Gewenst: dezelfde gepinde spec en driftcontrole, of ten minste een contracttest die de gateway tegen de gepubliceerde spec houdt. Tot die tijd vermeldt `docs/KNOWN_LIMITATIONS.md` expliciet dat de planningsfunctionaliteit tegen een nog niet uitgebrachte serverversie is gebouwd.
brenno 2026-09-20 09:23:56 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#2122
No description provided.