feat(technique) : sous-ressources Contacts / Adresses / RIBs (ERP-135) #94
Reference in New Issue
Block a user
Delete Branch "feature/ERP-135-sous-ressources-provider"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Stackée sur ERP-134 (cible = sa branche, pas develop).
Expose les sous-collections du prestataire en
#[ApiResource]: POST sur le parent (/providers/{id}/{contacts,addresses,ribs}) + GET/PATCH/DELETE unitaires (/provider_{contacts,addresses,ribs}/{id}). Édition complète par onglet (pas de POST-only, RETEX M1/M2).Processors dédiés
chk_provider_contact_name→ 422 surfirstName). DELETE libre (RG-3.12 front-driven).user_sited'un user non-bypass → 422 sursites). RG-3.05/3.06/3.09 via contraintes entité.accounting.manage.Sécurité
Contacts/Adresses =
technique.providers.manage; RIB =technique.providers.accounting.manage.Tests
ProviderSubResourceApiTest— 19 cas (CRUD chaque sous-ressource, 403 selon permission, 409 dernier RIB LCR, 422 cloisonnement site adresse). HelpersaddContact/addRib/paymentTypeajoutés àAbstractProviderApiTestCase.make test→ OK (631 tests, 2917 assertions)make php-cs-fixer-allow-risky→ 0 fixAucune migration (réutilise les tables
provider_contact/address/ribd'ERP-133).Ticket : Lesstime #135 (ERP-135).
Expose les sous-collections du prestataire en #[ApiResource] (POST sur le parent + PATCH/DELETE/GET unitaires), edition complete par onglet (pas de POST-only, RETEX M1/M2) : - ProviderContact : POST /providers/{id}/contacts, PATCH/DELETE /provider_contacts/{id} (security technique.providers.manage). ProviderContactProcessor : normalisation RG-3.11 (nom/prenom Title Case, telephones chiffres, email lowercase) + RG-3.04 (au moins un champ parmi prenom/nom/telephone/email, miroir du CHECK chk_provider_contact_name -> 422). - ProviderAddress : POST /providers/{id}/addresses, PATCH/DELETE /provider_addresses/{id} (security technique.providers.manage). ProviderAddressProcessor : rattachement parent + cloisonnement d'ecriture des sites de l'adresse (RG-3.05 / § 2.13 : site hors user_site -> 422 sur sites). - ProviderRib : POST /providers/{id}/ribs, PATCH/DELETE /provider_ribs/{id} (security technique.providers.accounting.manage). ProviderRibProcessor : RG-3.08 (DELETE du dernier RIB sous LCR -> 409). Tests : ProviderSubResourceApiTest (19 cas) — CRUD chaque sous-ressource, 403 selon permission (Contacts/Adresses=manage, RIB=accounting.manage), 409 dernier RIB LCR, 422 cloisonnement site adresse. Helpers addContact/addRib/paymentType ajoutes a AbstractProviderApiTestCase.Consolidée dans #100 : toute la pile M3-Prestataire (ERP-134 à ERP-139) a été rebasée sur develop et regroupée dans la MR #100 (mergeable, tests verts). Cette MR intermédiaire est fermée pour ne garder qu'une seule MR ouverte. Les commits de ce ticket restent présents dans #100.
Pull request closed