Start API Documentation with account CRUD operations

This commit is contained in:
rui hildt 2020-03-23 17:38:43 +01:00
parent 25256e89ba
commit ab1c54461f

View File

@ -0,0 +1,123 @@
## API Documentation
___
> Values required in **`bold`**.
### **Accounts** | `account`
| field | data type | metadata |
| :-------------| :---------------- | :-------------------------------------------------- |
| id | unsigned integer | primary key, auto-increments, generated by database |
| username | string | required |
| email | string | required |
| password | string | required |
| timezone | string | |
| earliest_time | string | |
| latest_time | string | |
| created_at | datetime | generated by database |
#### Add an account
**`POST /api/account`**
##### Request
A json object for the user to register with **`username`**, **`email`**, **`password`**, `timezone`, `earliest_time` and `latest_time`.
```
{
"username": "jean,
"email": "jean@example.com",
"password": "really-strong-password",
"timezone": "Europe/Brussels",
"earliest_time":"09:30 AM",
"latest_time":"10:00 PM"
}
```
##### Response
A json object for the registered user with `id`, `username`, `email`, `timezone`, `earliest_time` and `latest_time`.
```
{
"id": 1,
"username": "jean",
"email": "jean@example.com",
"timezone": "Europe/Brussels",
"earliest_time":"09:30 AM",
"latest_time":"10:00 PM"
}
```
#### Update an account
**`PUT /api/account/:id`**
##### Request
A json object for the user to register with `id` and any of `username`, `email`, `password`, `timezone`, `earliest_time`, `latest_time`.
```
{
"id": 15,
"earliest_time":"08:30 AM",
"latest_time":"08:00 PM"
}
```
##### Response
A json object for the registered user with `id`, `username`, `email`, `timezone`, `earliest_time` and `latest_time`.
```
{
"id": 1,
"username": "jean",
"email": "jean@example.com",
"timezone": "Europe/Brussels",
"earliest_time":"09:30 AM",
"latest_time":"10:00 PM"
}
```
#### Delete an account
**`DELETE /api/account/:id`**
##### Request
A json object for the user to delete with `id`.
```
{
"id": 15
}
```
##### Response
A json object for the deleted user with `username` and `email`.
```
{
"username": "jean",
"email": "jean@example.com"
}
```
#### Log in an account
**`POST /api/account`**
##### Request
A json object for the user to login with either **`email`** or **`username`**, and **`password`** .
```
{
"username": "jean",
"password": "super-strong-password"
}
```
##### Response
A json object with the logged in user with `username` and `email`.
```
{
"id": 1,
"username": "jean",
"email": "jean@example.com",
"timezone": "Europe/Brussels",
"earliest_time":"09:30 AM",
"latest_time":"10:00 PM"
}
```