Added Endpoints and DB model to README.md

This commit is contained in:
Robbe Van Herck 2018-07-13 10:58:30 +02:00
parent 38f66a2584
commit 79711f1423
No known key found for this signature in database
GPG key ID: 4D1C8E8FBD1C7188
3 changed files with 39 additions and 3 deletions

View file

@ -2,4 +2,39 @@
Zoals besproken op de eerste bestuursvergadering. Zoals besproken op de eerste bestuursvergadering.
! Work in progress, dingen zijn nog shit en moeten nog gefixed worden, beware ! 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`

View file

@ -41,7 +41,8 @@ class Achievement(db.Model):
return { return {
"id": self.id, "id": self.id,
"name": self.name, "name": self.name,
"endorsed_by": [x.id for x in self.endorsed_by], # Don't show full user object to avoid infinite loops "endorsed_by": ([x.id for x in self.endorsed_by]), # Don't show full user object to avoid infinite loops
"achieved_by": self.achieved_by
} }
def __repr__(self): def __repr__(self):

View file

@ -6,7 +6,7 @@ from flask_login import current_user, login_required
import json import json
@app.route("/users/<id>/add_achievement") @app.route("/users/<id>/addachievement")
@login_required @login_required
def add_achievement(id): def add_achievement(id):
name = request.args.get("name") name = request.args.get("name")