Add API spec to resolve #2

This commit is contained in:
Oskar Winkels 2020-11-30 18:00:16 +01:00 committed by Oskar
parent ab4ee6a00a
commit 3fdd8859ce
4 changed files with 59 additions and 4 deletions

51
docs/API.md Normal file
View File

@ -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'
},
...
]
```

View File

@ -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'
}
},
...
]
```

View File

@ -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
})

View File

@ -19,6 +19,7 @@ st.setup(
install_requires=[
"flask",
"tinydb",
"python-slugify",
],
license=license_text,
classifiers=[