User Story:
Als backend systeem wil ik via een API functionaliteit bieden om gebruikersprofielen, instellingen en sessies te beheren, zodat de frontend applicatie de gebruiker in staat kan stellen zijn accountgegevens en voorkeuren aan te passen, zijn favoriete nummers te bekijken en veilig uit te loggen.
Acceptatiecriteria (Backend):
Definition of Done (DoD):
User Story:
Als backend systeem wil ik via een API functionaliteit bieden om gebruikersprofielen, instellingen en sessies te beheren, zodat de frontend applicatie de gebruiker in staat kan stellen zijn accountgegevens en voorkeuren aan te passen, zijn favoriete nummers te bekijken en veilig uit te loggen.
Acceptatiecriteria (Backend):
Er is een PUT of PATCH endpoint (bijv. /api/user/profile) voor het updaten van de accountnaam van de geauthenticeerde gebruiker.
Er is een specifiek PUT of PATCH endpoint (bijv. /api/user/password) voor het wijzigen van het wachtwoord, waarbij het huidige wachtwoord wordt geverifieerd en het nieuwe wachtwoord veilig wordt gehasht.
Er is een endpoint om gebruikersvoorkeuren (zoals "change preference" en acceptatie van de "AI policy") op te slaan en op te halen (bijv. via een preferences JSON-kolom in de users tabel of een aparte user_preferences tabel).
Er is een POST endpoint (bijv. /api/logout) geïmplementeerd dat de huidige authenticatie-token van de gebruiker intrekt (revoke via Laravel Sanctum of Passport) om veilig uitloggen te ondersteunen.
Er is een GET endpoint beschikbaar dat de favoriete nummers (liked songs) van de geauthenticeerde gebruiker ophaalt (inclusief eventuele eager loading van artiest- of genre-data).
email,username,password,profielfoto
Definition of Done (DoD):
Code is netjes geschreven en volgt de Laravel (PSR) standaarden, waarbij validatieregels netjes in FormRequests zijn geplaatst (vooral belangrijk bij wachtwoordwijzigingen).
Feature tests (via Pest of PHPUnit) zijn geschreven voor de profielupdates, wachtwoordvalidatie en het uitloggen, en alle tests slagen.
Alle nieuwe endpoints, inclusief verwachte request body's en response formaten, zijn gedocumenteerd (bijv. in Postman of Swagger) voor de frontend-developers.
Code is gereviewd (Pull Request) en goedgekeurd door minstens één andere developer.
De feature is succesvol gemerged naar de juiste branch zonder merge conflicts.