ordinarthur c4486d9e5e fix(api): exception handler normalise toutes les erreurs en { errors: [...] }
3 tests Japa étaient en échec à cause de réponses non conformes au contrat backend.md §6 :

- E_INVALID_CREDENTIALS (Adonis auth) renvoyait 400 au lieu de 401 → mappé explicitement vers 401 + code 'invalid_credentials'
- Custom Exception (status + code + message) côté controllers (ex. client_email_required) sortait en shape Adonis par défaut { message, name, code } → wrap en { errors: [{ code, message }] }
- E_VALIDATION_ERROR de Vine relayé proprement (au cas où, déjà géré en pratique)

L'enveloppe { errors: [...] } est maintenant garantie pour toutes les erreurs HTTP. Le SPA peut switch sur errors[0].code sans deviner la shape.

Tests : 50/50 passent.
2026-05-06 15:55:27 +02:00
..
2026-05-06 15:15:07 +02:00