Project

General

Profile

Actions

Feature #372

open
NP NP

Dietary unblocked for real: IPD IDietaryOrderReadContract wired end to end (W9 D35)

Feature #372: Dietary unblocked for real: IPD IDietaryOrderReadContract wired end to end (W9 D35)

Added by Navya P. about 1 month ago. Updated 28 days ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
-
Start date:
10/13/2026
Due date:
% Done:

0%

Estimated time:
Resolved By:

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):

  1. nuvita-ipd: brought feat/canteen-admission-lookup current with dev (19 commits behind, clean merge, 1702/1702 tests green), pushed.
  2. 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.
  3. 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.

Actions

Also available in: PDF Atom