diff --git a/research/API Documentation.md b/research/API Documentation.md new file mode 100644 index 0000000..d3eec75 --- /dev/null +++ b/research/API Documentation.md @@ -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" +} +``` \ No newline at end of file