Skip to content

Align remaining controllers to domain responses #4

@WilliamAGH

Description

@WilliamAGH

Objective\nReplace remaining Map/ad-hoc response shapes in web controllers with domain response records, keeping domain framework-free and contracts explicit.\n\n## Inventory (current Map/ad-hoc usage)\n- BaseController: handleServiceException/handleValidationException/createSuccessResponse use Map\n- ExceptionResponseBuilder: buildErrorResponse/buildSuccessResponse return Map\n- IngestionController: /api/ingest and /api/ingest/local return Map\n- CustomErrorController: handleApiError returns Map\n\n## Tasks\n- [ ] Create domain package for ingestion responses (e.g., )\n - [ ] Add (fields: , )\n - [ ] Add (fields: , , )\n - [ ] Add (fields: , , nullable)\n - [ ] Add sealed interfaces and with permitted types\n - [ ] Javadoc all public records per JD1–JD8\n- [ ] Create domain error response(s) for API errors (e.g., )\n - [ ] Add (fields: , , nullable)\n - [ ] Add sealed interface if reused beyond CustomErrorController/BaseController\n - [ ] Ensure no Spring/HTTP imports in domain\n- [ ] Refactor ExceptionResponseBuilder to return domain responses\n - [ ] Replace Map returns with domain response records\n - [ ] Remove HashMap/Map usage\n- [ ] Refactor BaseController to use domain responses\n - [ ] Update method signatures to ResponseEntity of domain response interface\n- [ ] Refactor IngestionController to return domain responses\n - [ ] /api/ingest -> on success\n - [ ] /api/ingest/local -> on success\n - [ ] Validation + IO/runtime errors -> \n - [ ] Update method Javadocs to remove Map references\n- [ ] Refactor CustomErrorController API path to return domain error response\n - [ ] Replace Map response with \n- [ ] Update any tests asserting old Map shapes\n - [ ] WebMvc/MockMvc tests (if present) should assert new JSON fields\n- [ ] Verify policy compliance\n - [ ] No Map<String,Object> in controllers for these paths\n - [ ] Domain types free of framework imports\n - [ ] No generic identifiers (ND rules)\n\n## Validation\n- [ ] Run > Task :compileJava UP-TO-DATE

Task :processResources UP-TO-DATE
Task :classes UP-TO-DATE
Task :compileTestJava UP-TO-DATE
Task :processTestResources UP-TO-DATE
Task :testClasses UP-TO-DATE
18:23:26.034 [Thread-20] �[34mINFO �[0;39m �[36mEMBEDDING_CACHE�[0;39m - Saving cache before shutdown...
18:23:26.034 [Thread-20] �[34mINFO �[0;39m �[36mEMBEDDING_CACHE�[0;39m - Exporting 0 cached embeddings
18:23:26.036 [Thread-20] �[34mINFO �[0;39m �[36mEMBEDDING_CACHE�[0;39m - Successfully exported cache
18:23:26.036 [Thread-20] �[34mINFO �[0;39m �[36mEMBEDDING_CACHE�[0;39m - Cache saved successfully. Total embeddings cached: 0
Task :test

BUILD SUCCESSFUL in 5s
5 actionable tasks: 1 executed, 4 up-to-date
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.2.1/userguide/configuration_cache_enabling.html\n- [ ] If failures, update tests or domain contracts accordingly\n

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions