Feature #372
openDietary unblocked for real: IPD IDietaryOrderReadContract wired end to end (W9 D35)
0%
Description
D35 set out to build a DietaryOrder entity in IPD -- turned out to already exist, shipped on IPD dev months before ADR-0001 even started. A real implementation of IDietaryOrderReadContract (DietaryOrderLookupService + InternalDietaryOrdersController, 13 IPD tests) also already existed, but only on a dormant local branch (feat/canteen-admission-lookup) never opened as a PR.
Shipped across three repos, each on its own feature branch (dev untouched everywhere, per explicit instruction):
- nuvita-ipd: brought feat/canteen-admission-lookup current with dev (19 commits behind, clean merge, 1702/1702 tests green), pushed.
- nuvita-shared-kernel: brought feat/canteen-known-app current with dev (143 commits behind, clean merge, 1076/1076 tests green), pushed. New branch feat/canteen-dietary-order-http-client off it: HttpIpdServiceClient now implements IDietaryOrderReadContract (3rd interface on the existing client, same pattern as C2), calling IPD real endpoints. 15 new tests, 1091/1091 green.
- nuvita-canteen-management: swapped DI from UnimplementedDietaryOrderReadContract (thrown on every call since D27 -- no real diet order had ever flowed through this module) to the real AddIpdServiceClient registration. Deleted the module's own local-placeholder IDietaryOrderReadContract per its own doc comment's instruction ("delete this file... once the ADR is accepted"). Found and fixed a real naming collision this surfaced: the kernel branch also carries D29's draft IAttenderReadContract, colliding with this module's own local one of the same name -- resolved with using-aliases in 4 files, scoped narrowly (did not also swap attender identity to the real kernel contract -- separate task).
Full backend suite: 1434/1436 (2 pre-existing, unrelated, date-dependent Coupon_liability failures). Zero regressions across all three repos.
Still open: the dormant IPD branch and the two kernel branches are feature branches only, not yet opened as real PRs for review.