Structurer les erreurs des champs principaux de l’Appartement #43

Closed
opened 2026-07-24 17:45:56 +02:00 by nessar · 4 comments
nessar commented 2026-07-24 17:45:56 +02:00 (Migrated from 172.24.0.1:8928)

Parent

#41

What to build

When a landlord creates or edits an Appartement, make the core name, address, and purchase-price constraints agree end to end. Invalid requests must return every stable machine-readable field failure, and Angular must show actionable French guidance without discarding the structured response or exposing internal exception text.

Acceptance criteria

  • Blank or whitespace-only name and address values are rejected beside their controls after touch or submit.
  • Every strictly positive purchase price is accepted, including values below one euro; zero and negative values are rejected.
  • Accepted name and address values are trimmed without altering meaningful internal spacing.
  • An invalid backend request returns HTTP 400 with validation_failed and every core field path/code discovered at the request boundary.
  • The shared frontend save boundary preserves structured field failures and safely falls back for unknown, conflict, network, and unexpected errors.
  • Arbitrary internal exception messages are not exposed; conflicts remain 409 and unexpected failures use a safe 500 response.
  • Focused backend HTTP and Angular behavior tests cover the complete slice and relevant checks pass.

Blocked by

  • None — can start immediately.
## Parent #41 ## What to build When a landlord creates or edits an Appartement, make the core name, address, and purchase-price constraints agree end to end. Invalid requests must return every stable machine-readable field failure, and Angular must show actionable French guidance without discarding the structured response or exposing internal exception text. ## Acceptance criteria - [ ] Blank or whitespace-only name and address values are rejected beside their controls after touch or submit. - [ ] Every strictly positive purchase price is accepted, including values below one euro; zero and negative values are rejected. - [ ] Accepted name and address values are trimmed without altering meaningful internal spacing. - [ ] An invalid backend request returns HTTP 400 with `validation_failed` and every core field path/code discovered at the request boundary. - [ ] The shared frontend save boundary preserves structured field failures and safely falls back for unknown, conflict, network, and unexpected errors. - [ ] Arbitrary internal exception messages are not exposed; conflicts remain 409 and unexpected failures use a safe 500 response. - [ ] Focused backend HTTP and Angular behavior tests cover the complete slice and relevant checks pass. ## Blocked by - None — can start immediately.
nessar commented 2026-07-24 17:45:57 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #44

mentioned in issue #44
nessar commented 2026-07-24 17:45:58 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in issue #45

mentioned in issue #45
nessar commented 2026-07-24 20:02:04 +02:00 (Migrated from 172.24.0.1:8928)

mentioned in commit 7c7111139ba57050235c7a184fccd34b51110b5e

mentioned in commit 7c7111139ba57050235c7a184fccd34b51110b5e
nessar (Migrated from 172.24.0.1:8928) closed this issue 2026-07-26 19:21:35 +02:00

Preserved GitLab #43 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 1; visible source notes: 3.

gitlab-47-issue-43.md (SHA-256 00a1c60b582b0a8f1f24c6f23d2c19527ff820a0a189765bf4c54896a862717e)

gitlab-47-issue-43.json (SHA-256 cf3918b1d457fc1dc8aa3252f13411f51d68c74eca939f9de9bd01d62faecf6d)

Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.

<!-- gitlab-to-gitea-history:47:Issue:43 --> Preserved GitLab #43 history: source attribution, exact timestamps, discussion grouping and review positions. Historical diff snapshots: 1; visible source notes: 3. [gitlab-47-issue-43.md](https://gitea.nessar.fr/attachments/9238cafc-dcc1-446f-8042-a6eb0abb101d) (SHA-256 `00a1c60b582b0a8f1f24c6f23d2c19527ff820a0a189765bf4c54896a862717e`) [gitlab-47-issue-43.json](https://gitea.nessar.fr/attachments/6c6a75af-6499-4ed0-9edb-642cff2d9719) (SHA-256 `cf3918b1d457fc1dc8aa3252f13411f51d68c74eca939f9de9bd01d62faecf6d`) Old CI job execution and reports are omitted. Original source files and rollback backups remain protected.
gitea-emergency added this to the Development project 2026-10-11 22:14:37 +02:00
gitea-emergency moved this to Closed in Development on 2026-10-11 22:14:37 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nessar/lmnp-organizer#43