# Endorsement Zoals besproken op de eerste bestuursvergadering. ! Work in progress, dingen zijn nog shit en moeten nog gefixed worden, beware ## Endpoints ### Geen authenticatie - `/users`: Alle users en hun achievements, volledig - `/users/`: Alle data over de user `username` - `/login` en `/logout`: Laat de user aan- en afmelden - `/achievement/`: Alle data over die specifieke achievement ### Enkel bereikbaar na aanmelden - `/users//addachievement?name=XYZ`: Maakt een nieuw achievement aan bij `username` met naam `XYZ` en laat de ingelogde persoon endorsen - `/achievement//endorse`: Voegt de ingelogde persoon toe aan `endorsed_by` van achievement `id` - `/achievement//unendorse`: Verwijdert de ingelogde persoon van `endorsed_by` van achievement `id` ## DB model ### User | name | type | nullable | uniek | beschrijving | |--------|------------|----------|-------|--------------| | **id** | String(80) | False | True | de username | ### Achievement | name | type | nullable | uniek | beschrijving | |-------------|---------------|----------|-------|----------------------------------| | **id** | Integer | False | True | unieke id | | name | String(128) | False | False | beschrijving van de achievement | | achieved_by | FK -> user.id | False | False | wie de achievement gehaald heeft | ### Endorses Relatie tussen `User` en `Achievement`