UseCase редактирования дня в дневнике

This commit is contained in:
Антон
2025-11-24 17:30:59 +03:00
parent beb9672590
commit c560d99e85
+63 -19
View File
@@ -65,7 +65,6 @@
##### Требования к валидации: ##### Требования к валидации:
* login: 3-50 символов, ^[A-Za-z0-9_]+$, уникальное значение * login: 3-50 символов, ^[A-Za-z0-9_]+$, уникальное значение
* password: ≥ 5 символов * password: ≥ 5 символов
##### Response - 201 - Created ##### Response - 201 - Created
``` ```
{ {
@@ -75,7 +74,6 @@
} }
} }
``` ```
##### Errors ##### Errors
* `409 USER_EXISTS` — пользователь с таким логином уже есть(`B1`) * `409 USER_EXISTS` — пользователь с таким логином уже есть(`B1`)
* `422 VALIDATION_FAILED` — пустой логин/неправильный пароль(`B2`) * `422 VALIDATION_FAILED` — пустой логин/неправильный пароль(`B2`)
@@ -131,12 +129,10 @@
"token": af32df3bas739f272bd109c823 "token": af32df3bas739f272bd109c823
} }
``` ```
##### Errors ##### Errors
* `401 BAD_CREDENTIALS` — неверный логин/пароль (B1) * `401 BAD_CREDENTIALS` — неверный логин/пароль (B1)
* `422 VALIDATION_FAILED` — пустые поля (B2) * `422 VALIDATION_FAILED` — пустые поля (B2)
* `400 BAD_REQUEST` — сервер не смог десереализовать JSON * `400 BAD_REQUEST` — сервер не смог десереализовать JSON
#### Logout-Request #### Logout-Request
``` ```
{ {
@@ -179,7 +175,6 @@ null
### 8.API-Маршруты ### 8.API-Маршруты
* `GET /api/v1/User/Diaries` - получить кусок дневника пользователя (требует Authorization: Bearer <token>) query-параметры: from (int, по умолч. 0), count (int, по умолч. 20) * `GET /api/v1/User/Diaries` - получить кусок дневника пользователя (требует Authorization: Bearer <token>) query-параметры: from (int, по умолч. 0), count (int, по умолч. 20)
* `GET /api/v1/User/TreatmentSchemes` - получить список схем пользователя (требует Authorization: Bearer <token>) query-параметры: from (int, по умолч. 0), count (int, по умолч. 20) * `GET /api/v1/User/TreatmentSchemes` - получить список схем пользователя (требует Authorization: Bearer <token>) query-параметры: from (int, по умолч. 0), count (int, по умолч. 20)
### 9.Контракт ### 9.Контракт
#### Diaries-Request #### Diaries-Request
##### Response - 200 - OK ##### Response - 200 - OK
@@ -222,11 +217,9 @@ null
] ]
} }
``` ```
##### Errors ##### Errors
* `401 TOKEN_REQUIRED|TOKEN_EXPIRED` — токен недействителен, либо отсутствует * `401 TOKEN_REQUIRED|TOKEN_EXPIRED` — токен недействителен, либо отсутствует
* `500 DATA_LOAD_FAILED` — ошибка при загрузке данных (`B1`) * `500 DATA_LOAD_FAILED` — ошибка при загрузке данных (`B1`)
#### TreatmentSchemes-Request #### TreatmentSchemes-Request
##### Response - 200 - OK ##### Response - 200 - OK
``` ```
@@ -249,11 +242,9 @@ null
] ]
} }
``` ```
##### Errors ##### Errors
* `401 TOKEN_REQUIRED|TOKEN_EXPIRED` — токен недействителен, либо отсутствует * `401 TOKEN_REQUIRED|TOKEN_EXPIRED` — токен недействителен, либо отсутствует
* `500 DATA_LOAD_FAILED` — ошибка при загрузке данных (B1) * `500 DATA_LOAD_FAILED` — ошибка при загрузке данных (B1)
### 10. Используемые сущности ДБ ### 10. Используемые сущности ДБ
* diaries(uuid(PK), time , mania_level , depression_level , mood_level , activity_level , appetite_level , dream_level , anxiety_level, user_treatment_schemes_uuid) * diaries(uuid(PK), time , mania_level , depression_level , mood_level , activity_level , appetite_level , dream_level , anxiety_level, user_treatment_schemes_uuid)
* mania(level(PK)) * mania(level(PK))
@@ -310,7 +301,6 @@ null
##### Требования к валидации: ##### Требования к валидации:
* Все поля, кроме `comment` обязательны к заполнению * Все поля, кроме `comment` обязательны к заполнению
* `user_treatment_schemes_uuid` должен указывать на существующую схему лечения * `user_treatment_schemes_uuid` должен указывать на существующую схему лечения
##### Response - 201 - Created ##### Response - 201 - Created
``` ```
{ {
@@ -341,13 +331,11 @@ null
}, },
} }
``` ```
##### Errors ##### Errors
* `400 BAD_REQUEST` — отсутствуют обязательные поля * `400 BAD_REQUEST` — отсутствуют обязательные поля
* `400 BAD_REQUEST` — сервер не смог десереализовать JSON * `400 BAD_REQUEST` — сервер не смог десереализовать JSON
* `422 UNPROCECCABLE_ENTITY` - Во `time` значение размерностей ниже, чем день, должно быть равно 0 * `422 UNPROCECCABLE_ENTITY` - Во `time` значение размерностей ниже, чем день, должно быть равно 0
* `422 TREATMENT_SCHEME_IS_NOT_EXISTS` - такой схемы лечения болезни не существует * `422 TREATMENT_SCHEME_IS_NOT_EXISTS` - такой схемы лечения болезни не существует
### 10. Используемые сущности ДБ ### 10. Используемые сущности ДБ
* diaries(uuid(PK), time , mania_level , depression_level , mood_level , activity_level , appetite_level , dream_level , anxiety_level, user_treatment_schemes_uuid) * diaries(uuid(PK), time , mania_level , depression_level , mood_level , activity_level , appetite_level , dream_level , anxiety_level, user_treatment_schemes_uuid)
* mania(level(PK)) * mania(level(PK))
@@ -385,8 +373,6 @@ null
* Пользователь изменил запись соглсано условиям выше в БД * Пользователь изменил запись соглсано условиям выше в БД
### 8.API-Маршруты ### 8.API-Маршруты
* `PUT /api/v1/Auth/Diaries/:diary_guid` - Изменение записи в дневнике * `PUT /api/v1/Auth/Diaries/:diary_guid` - Изменение записи в дневнике
### 9.Контракт ### 9.Контракт
#### Diaries-Request #### Diaries-Request
``` ```
@@ -408,7 +394,6 @@ null
##### Требования к валидации: ##### Требования к валидации:
* Все поля, кроме `comment` обязательны к заполнению * Все поля, кроме `comment` обязательны к заполнению
* `user_treatment_schemes_uuid` должен указывать на существующую схему лечения * `user_treatment_schemes_uuid` должен указывать на существующую схему лечения
##### Response - 201 - Updated ##### Response - 201 - Updated
``` ```
{ {
@@ -444,7 +429,6 @@ null
* `400 BAD_REQUEST` — сервер не смог десереализовать JSON * `400 BAD_REQUEST` — сервер не смог десереализовать JSON
* `422 UNPROCECCABLE_ENTITY` - `time` не должно быть изменено * `422 UNPROCECCABLE_ENTITY` - `time` не должно быть изменено
* `422 TREATMENT_SCHEME_IS_NOT_EXISTS` - такой схемы лечения болезни не существует * `422 TREATMENT_SCHEME_IS_NOT_EXISTS` - такой схемы лечения болезни не существует
### 10. Используемые сущности ДБ ### 10. Используемые сущности ДБ
* diaries(uuid(PK), time , mania_level , depression_level , mood_level , activity_level , appetite_level , dream_level , anxiety_level, user_treatment_schemes_uuid) * diaries(uuid(PK), time , mania_level , depression_level , mood_level , activity_level , appetite_level , dream_level , anxiety_level, user_treatment_schemes_uuid)
* mania(level(PK)) * mania(level(PK))
@@ -478,22 +462,21 @@ null
* Целевая запись отсутствует в БД * Целевая запись отсутствует в БД
### 8.API-Маршруты ### 8.API-Маршруты
* `DELETE /api/v1/Auth/Diaries/:diary_guid` - удаление записи в дневнике * `DELETE /api/v1/Auth/Diaries/:diary_guid` - удаление записи в дневнике
### 9.Контракт ### 9.Контракт
#### Diaries-Request #### Diaries-Request
##### Требования к валидации: ##### Требования к валидации:
* `:diary_guid` должен указывать на существующую страницу дневника * `:diary_guid` должен указывать на существующую страницу дневника
##### Response - 204 - Deleted ##### Response - 204 - Deleted
``` ```
null null
``` ```
##### Errors ##### Errors
* `404 NOT_FOUND` - такой схемы лечения болезни никогда не существовало или она уже удалена * `404 NOT_FOUND` - такой схемы лечения болезни никогда не существовало или она уже удалена
### 10. Используемые сущности ДБ ### 10. Используемые сущности ДБ
* diaries(uuid(PK)) * diaries(uuid(PK))
## UseCase №7 ## UseCase №7
### 1.Название: Создание схемы лечения ### 1.Название: Создание схемы лечения
### 2.Актор: Пользователь ### 2.Актор: Пользователь
@@ -511,3 +494,64 @@ null
* Схему нельзя создать в таком виде. На попытку создать схему выходит окно ошибок * Схему нельзя создать в таком виде. На попытку создать схему выходит окно ошибок
### 7.Постусловия ### 7.Постусловия
* Схема создана и доступна для выбора в качестве лечения * Схема создана и доступна для выбора в качестве лечения
### 8.API-маршруты
* `POST /api/v1/TreatmentScheme` - создание схемы лечения
### 9.Контракт
#### Diaries-Request
```
{
"treatment_name": "Bipolar I Scheme Urgent",
"instructions": "Схема для быстрого и жесткого купирования психозов. Аминазин пить каждый день.",
"medications": [
{
"uuid": "eda5a5f7-167a-44b9-900d-c5c6acfc249b",
"name": "Aminazin",
"dose": 100,
"unit": "mg",
"is_urgent": true
},
{
"uuid": "eda5a5f7-167a-44b9-900d-c5c6acfc249b",
"name": "Haloperidol",
"dose": 15,
"unit": "mg",
"is_urgent": false
}
]
}
```
##### Требования к валидации:
* `treatment_name` обязателен к заполнению
* `medications` должен содержать хотя бы одно лекарство
##### Response - 200 - Updated
```
{
"uuid": "eda5a5f7-167a-44b9-900d-c5c6acfc249b"
"treatment_name": "Bipolar I Scheme Urgent",
"instructions": "Схема для быстрого и жесткого купирования психозов. Аминазин пить каждый день.",
"medications": [
{
"uuid": "eda5a5f7-167a-44b9-900d-c5c6acfc249b",
"name": "Aminazin",
"dose": 100,
"unit": "mg",
"is_urgent": true
},
{
"uuid": "eda5a5f7-167a-44b9-900d-c5c6acfc249b",
"name": "Haloperidol",
"dose": 15,
"unit": "mg",
"is_urgent": false
}
]
}
```
##### Errors
* `400 BAD_REQUEST` — сервер не смог десереализовать JSON
* `400 BAD_REQUEST` — Обязательные поля заполнены неправильно
* `409 SCHEME_ALREADYEXISTS` - такая схема уже существует
### 10. Используемые сущности ДБ
* user_treatment_schemes(uuid, user_uuid, treatment_name, instructions)
* medications(uuid, name, dose, unit, is_urgent)
* treatment_schemes(user_treatment_schemes_uuid, medication_uuid)