From bafda3862dc7ace63d90eca31701f10aa584e91c Mon Sep 17 00:00:00 2001 From: Robbe Van Herck Date: Wed, 28 Nov 2018 15:02:38 +0100 Subject: [PATCH] Better api and README --- README.md | 42 +++++++++++++++++++++++++++++++++++++----- api.py | 17 +++++++++++++++++ endorsement.py | 3 ++- user.py | 3 --- 4 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 api.py diff --git a/README.md b/README.md index b86a5b2..4e0c610 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,16 @@ Zoals besproken op de eerste bestuursvergadering. -! Work in progress, dingen zijn nog shit en moeten nog gefixed worden, beware +! Beware: ux is nog verschrikkelijk lelijk, functioneel werkt het wel ## Endpoints ### Geen authenticatie -- `/users`: Alle users en hun achievements, volledig -- `/users/`: Alle data over de user `username` +- `/users`: Overzicht van alle users (default) +- `/users/`: Achievements van de user `username` - `/login` en `/logout`: Laat de user aan- en afmelden -- `/achievement/`: Alle data over die specifieke achievement +- `/achievement/`: Een specifieke achievement ### Enkel bereikbaar na aanmelden @@ -37,4 +37,36 @@ Zoals besproken op de eerste bestuursvergadering. ### Endorses -Relatie tussen `User` en `Achievement` \ No newline at end of file +Relatie tussen `User` en `Achievement` + +## API + +### /api/users + +Returnt een lijst van strings (usernames) + +### /api/achievements + +Return een lijst van Achievement-objecten + +Achievement-object: +```JSON +{ + id: number -> Unieke id + name: String -> Naam van het achievement + endorsed_by: [String] -> Lijst van User-ids die deze achievement endorsen + achieved_by: String -> User-id van de persoon die dit achievement gehaald heeft +} +``` + +### /api/all + +Returnt een lijst van User-objecten + +User-object +```JSON +{ + id: String -> Username + achievement: [Achievement] -> Lijst met achievements van deze persoon +} +``` diff --git a/api.py b/api.py new file mode 100644 index 0000000..05119cf --- /dev/null +++ b/api.py @@ -0,0 +1,17 @@ +from app import app, db +from models import User, Achievement + +import json + +@app.route("/api") +@app.route("/api/all") +def api_all(): + return json.dumps([user.to_obj() for user in User.query.all()]) + +@app.route("/api/users") +def api_all_users(): + return json.dumps([user.id for user in User.query.all()]) + +@app.route("/api/achievements") +def api_all_achievements(): + return json.dumps([achievement.to_obj() for achievement in Achievement.query.all()]) diff --git a/endorsement.py b/endorsement.py index b2a37d4..2ce99a7 100644 --- a/endorsement.py +++ b/endorsement.py @@ -3,4 +3,5 @@ from models import User, Achievement from login import * from user import * -from achievements import * \ No newline at end of file +from achievements import * +from api import * diff --git a/user.py b/user.py index b21d56a..a632647 100644 --- a/user.py +++ b/user.py @@ -36,6 +36,3 @@ def get_user(id): def all_users(): return render_template("allusers.html", data=[user.to_obj() for user in User.query.all()]) -@app.route("/all") -def all_users_json(): - return json.dumps([user.to_obj() for user in User.query.all()])