endorsement/README.md

40 lines
1.5 KiB
Markdown
Raw Normal View History

2018-07-12 22:38:54 +02:00
# 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/<username>`: Alle data over de user `username`
- `/login` en `/logout`: Laat de user aan- en afmelden
- `/achievement/<id>`: Alle data over die specifieke achievement
### Enkel bereikbaar na aanmelden
- `/users/<username>/addachievement?name=XYZ`: Maakt een nieuw achievement aan bij `username` met naam `XYZ` en laat de ingelogde persoon endorsen
- `/achievement/<id>/endorse`: Voegt de ingelogde persoon toe aan `endorsed_by` van achievement `id`
- `/achievement/<id>/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`