Julio Biason
11 years ago
1 changed files with 208 additions and 0 deletions
@ -0,0 +1,208 @@
|
||||
FORMAT: 1A |
||||
HOST: http://pospichil.com/luncho/ |
||||
|
||||
# Lunch-o |
||||
Lunching for Groups. |
||||
|
||||
# Group Tokens |
||||
Requesting access tokens. |
||||
|
||||
## Token access [/token/] |
||||
Request an access token. |
||||
|
||||
### Request a token [POST] |
||||
+ Request (application/json) |
||||
|
||||
{ "username": "username", "password": "hash" } |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK", "token": "user-token" } |
||||
|
||||
+ Response 403 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Invalid password" } |
||||
|
||||
|
||||
# Group Users |
||||
|
||||
User management. |
||||
|
||||
## Users [/user/] |
||||
|
||||
### Creation [POST] |
||||
|
||||
+ Request (application/json) |
||||
|
||||
{ "username": "username", "full_name": "Full Name", "password": "hash" } |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK" } |
||||
|
||||
+ Response 409 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "username already exists" } |
||||
|
||||
## Single User [/user/{token}/{username}/] |
||||
|
||||
Manage a single user. |
||||
|
||||
+ Parameters |
||||
+ token ... The user token. |
||||
+ username ... Username used in the creation process. |
||||
|
||||
### Update information [POST] |
||||
|
||||
+ Request (application/json) |
||||
|
||||
{ "full_name": "Full name", "password": "hash" } |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK" } |
||||
|
||||
+ Response 401 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Invalid token" } |
||||
|
||||
+ Response 403 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "User is not admin or not the same user" } |
||||
|
||||
|
||||
### Remove user [DELETE] |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK" } |
||||
|
||||
+ Response 401 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Invalid token" } |
||||
|
||||
+ Response 403 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "User is not admin or not the same user" } |
||||
|
||||
# Group Places |
||||
Retrieval and management (for admin users) for lunching. |
||||
|
||||
## Places [/places/{token}/] |
||||
|
||||
Retrieve the list of all places the user has access. |
||||
|
||||
+ Parameters |
||||
+ token ... The user token. |
||||
|
||||
### Retrieval [GET] |
||||
|
||||
Retrieve the list of places. |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK", "places": [{"name": "Place 1", "id": 1} |
||||
{"name": "Place 2", "id": 2}} |
||||
|
||||
### Add a new place [PUT] |
||||
|
||||
Add a new place. The user must be admin to do so. |
||||
|
||||
+ Request (application/json) |
||||
|
||||
{ "place": "Place Name" } |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK", "id": 3 } |
||||
|
||||
+ Response 401 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Invalid token" } |
||||
|
||||
+ Response 403 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "User is not admin" } |
||||
|
||||
|
||||
## Place management [/places/{token}/{id}/] |
||||
|
||||
Manage a single place. The user must be admin. |
||||
|
||||
+ Parameters |
||||
+ token ... The user token. |
||||
+ id ... The place id. |
||||
|
||||
### Edit a place [POST] |
||||
|
||||
+ Request (application/json) |
||||
|
||||
{ "name": "Place 3" } |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK" } |
||||
|
||||
+ Response 401 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Invalid token" } |
||||
|
||||
+ Response 403 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "User is not admin" } |
||||
|
||||
### Remove a place [DELETE] |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK" } |
||||
|
||||
+ Response 401 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Invalid token" } |
||||
|
||||
+ Response 403 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "User is not admin" } |
||||
|
||||
# Group Voting |
||||
User voting. |
||||
|
||||
## Voting [/vote/{token}/] |
||||
|
||||
Make a vote for the day. The day is controlled by the server itself. If a vote has been cast |
||||
but later removed, the server will also |
||||
|
||||
+ Parameters |
||||
+ token ... The user token. |
||||
|
||||
### Cast a vote [POST] |
||||
+ Request (application/json) |
||||
|
||||
{ "choices": [1, 2, 3] } |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK" } |
||||
|
||||
+ Response 401 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Invalid token" } |
||||
|
||||
+ Response 403 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Casted vote was removed" } |
||||
|
||||
+ Response 409 (application/json) |
||||
|
||||
{ "status": "ERROR", "error": "Vote for place %d appeared more than once" } |
||||
|
||||
### Remove a vote [DELETE] |
||||
|
||||
Remove a vote for the day. Once a vote has been removed, it can't be |
||||
recasted. |
||||
|
||||
+ Response 200 (application/json) |
||||
|
||||
{ "status": "OK" } |
||||
|
Loading…
Reference in new issue