From 3fdd8859ceebcf36a5f775a12e9d637ca9e0d648 Mon Sep 17 00:00:00 2001 From: Oskar Date: Mon, 30 Nov 2020 18:00:16 +0100 Subject: [PATCH] Add API spec to resolve #2 --- docs/API.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ docs/SCHEMA.md | 7 ++++--- ftracker/core.py | 4 +++- setup.py | 1 + 4 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 docs/API.md diff --git a/docs/API.md b/docs/API.md new file mode 100644 index 0000000..a3f94d7 --- /dev/null +++ b/docs/API.md @@ -0,0 +1,51 @@ +API Endpoint Documentation +========================== + +Arrival +```javascript +[Request] +POST /arrival + +{ + "name": "Firstname Lastname", + "agreetoguidelines": true +} + +[Response] +200 OK +``` + + +Departure +```javascript +[Request] +POST /departure + +{ + "name": "Firstname Lastname", + "cleanedworkspace": true +} + +[Response] +OK +``` + + +Retrieve data +```javascript +[Request] +GET /data +Authorization: Basic < base64 USER:PASSWORD > + +[Response] +200 OK + +[ + { + 'name': 'firstname-middlename-lastname', + 'arrival': 'UTC-ISO-TIMESTAMP', + 'departure': 'UTC-ISO-TIMESTAMP' + }, + ... +] +``` diff --git a/docs/SCHEMA.md b/docs/SCHEMA.md index 9274e17..6dd99b3 100644 --- a/docs/SCHEMA.md +++ b/docs/SCHEMA.md @@ -1,5 +1,5 @@ -Database Layout -=============== +Database Layout Documentation +============================= Default table ``` @@ -8,6 +8,7 @@ Default table 'name': 'firstname-middlename-lastname', 'arrival': 'UTC-ISO-TIMESTAMP', 'departure': 'UTC-ISO-TIMESTAMP' - } + }, + ... ] ``` diff --git a/ftracker/core.py b/ftracker/core.py index 678bf7e..4fce052 100644 --- a/ftracker/core.py +++ b/ftracker/core.py @@ -1,5 +1,6 @@ import json from datetime import datetime +from slugify import slugify from .config import config if not config: @@ -31,10 +32,11 @@ def post_time(): # TODO: JSON schema validation # TODO: JSON content validation + name = slugify(data['name']) now = datetime.utcnow() db.insert({ - 'name': data['name'], + 'name': name, 'arrival': now.isoformat(), 'departure': None }) diff --git a/setup.py b/setup.py index 6be5e47..474add5 100644 --- a/setup.py +++ b/setup.py @@ -19,6 +19,7 @@ st.setup( install_requires=[ "flask", "tinydb", + "python-slugify", ], license=license_text, classifiers=[