Setup table migration and update schemas/endpoints

This commit is contained in:
2019-07-31 20:38:48 +02:00
parent effa3ef442
commit 6c562ee7f6
6 changed files with 171 additions and 22 deletions
+19 -19
View File
@@ -18,7 +18,7 @@ Sleep Tracker is intended for anyone interested in improving their sleep and hea
## Database Schemas
### Users `users`
### Users Schema `users`
| field | data type | metadata |
| :--------| :--------------- | :-------------------------------------------------- |
| id | unsigned integer | primary key, auto-increments, generated by database |
@@ -26,35 +26,35 @@ Sleep Tracker is intended for anyone interested in improving their sleep and hea
| username | string | required |
| password | string | required |
### Sleep Sessions `sessions`
### Sleep Sessions Schema `sessions`
| field | data type | metadata |
| :------------ | :--------------- | :-------------------------------------------------- |
| id | unsigned integer | primary key, auto-increments, generated by database |
| user_id | unsigned integer | foreign key referencing `users.id`, required |
| bed_time | unsigned integer | timestamp with date, required |
| wake_time | unsigned integer | timestamp with date, required |
| bed_tiredness | unsigned integer | between 1-5, |
| wake_mood | unsigned integer | between 1-5, |
| day_mood | unsigned integer | between 1-5, |
| bed_tiredness | unsigned integer | |
| wake_mood | unsigned integer | |
| day_mood | unsigned integer | |
### Average Mood per Sleep Session `moods`
| field | data type | metadata |
| :------------- | :--------------- | :--------------------------------------------------- |
| id | unsigned integer | primary key, auto-increments, generated by database |
| session_date | unsigned integer | foreign key referencing `sessions.wake_time` |
| sleep_duration | unsigned integer | |
| average_mood | float | average of bed_tiredness/wake_mood/day_mood |
### Average Mood per Sleep Session Schema `dailyAverages`
| field | data type | metadata |
| :------------- | :--------------- | :-------------------------------------------------- |
| id | unsigned integer | primary key, auto-increments, generated by database |
| session_user | unsigned integer | foreign key referencing `sessions.user_id` |
| session_date | unsigned integer | foreign key referencing `sessions.wake_time` |
| sleep_duration | unsigned integer | |
| average_mood | float | |
## API Endpoints
- `POST /api/users` - add a new user
- `GET /api/users/:id` - fetch a user
- `PUT /api/users/:id` - update a user
- `GET /api/sessions` - fetch list of all sessions
- `POST /api/sessions` - add a session
- `GET /api/sessions/:id` - get a single session by id
- `PUT /api/sessions/:id` - update a session by user id
- `DELETE /api/sessions/:id` - delete a session by user id
- `GET /api/users/:id/sessions` - fetch list of all sessions by user id
- `POST /api/users/:id/sessions` - add a session y user id
- `GET /api/users/:id/sessions/:id` - fetch a single session by id
- `PUT /api/users/:id/sessions/:id` - update a session by id
- `DELETE /api/users/:id/sessions/:id` - delete a session by id
- `GET /api/moods/:id` - fetch a list of last 30 moods by user id
- `GET /api/dailyaverages/:id` - fetch a list of last 30 daily averages by user id