Переосмысление usecase'ов

This commit is contained in:
Антон
2025-08-19 09:56:54 +03:00
parent 5fbaadaa79
commit e478ff5769
+20 -20
View File
@@ -10,17 +10,18 @@
* Пользователь не авторизован в системе * Пользователь не авторизован в системе
* Пользователь с данным login'ом отсутствует в системе * Пользователь с данным login'ом отсутствует в системе
### 5.Основной поток: ### 5.Основной поток:
#### А1.Пользователь при входе в систему выбрасывается из системы
* Пользователь заходит в приложение на любую страницу * Пользователь заходит в приложение на любую страницу
* Из-за отсутсвия авторизации приложение перенаправляет его на страницу авторизации * Из-за отсутсвия авторизации приложение перенаправляет его на страницу авторизации и регистрации
* Пользователь кликает по ссылке, ведущей на странице регистрации * Пользователь кликает по ссылке, ведущей на странице регистрации
* На странице регистрации пользователь вводит логин и пароль * На странице регистрации пользователь вводит логин и пароль
* Пользователь нажимает кнопку "Зарегистрироваться" * Пользователь нажимает кнопку "Зарегистрироваться"
* Система выводит сообщение, что пользователь зарегистрирован в приложении * Система выводит сообщение, что пользователь зарегистрирован в приложении
### 6.Альтернативные потоки: ### 6.Потоки исключений:
#### А1.Пользователь с таким логином уже есть в системе #### B1.Пользователь с таким логином уже есть в системе
* Процедура регистрации проваливается * Процедура регистрации проваливается
* Выводится нотификация с сообщением об ошибке по причине наличия такого же логина в системе * Выводится нотификация с сообщением об ошибке по причине наличия такого же логина в системе
#### А2.Пользователь оставил пустым логин или пустой/неправильный пароль #### B2.Пользователь оставил пустым логин или пустой/неправильный пароль
* При попытке регистрации подсвечиваются незаполненные поля, или поле пароля, если пароль неправильный * При попытке регистрации подсвечиваются незаполненные поля, или поле пароля, если пароль неправильный
* Выводится сообщение об ошибке * Выводится сообщение об ошибке
### 7.Постусловия ### 7.Постусловия
@@ -49,8 +50,8 @@
``` ```
##### Errors ##### Errors
* `409 USER_EXISTS` — пользователь с таким логином уже есть(`A1`) * `409 USER_EXISTS` — пользователь с таким логином уже есть(`B1`)
* `422 VALIDATION_FAILED` — пустой логин/неправильный пароль(`A2`) * `422 VALIDATION_FAILED` — пустой логин/неправильный пароль(`B2`)
* `400 BAD_REQUEST` — сервер не смог десереализовать JSON * `400 BAD_REQUEST` — сервер не смог десереализовать JSON
### 10. Используемые сущности ДБ ### 10. Используемые сущности ДБ
@@ -64,15 +65,16 @@
* Пользователь должен быть зарегистрирован в системе * Пользователь должен быть зарегистрирован в системе
* Пользователь должен быть не авторизован в системе * Пользователь должен быть не авторизован в системе
### 5.Основной поток: ### 5.Основной поток:
#### А1.Пользователь при входе в систему выбрасывается из системы
* Пользователь заходит в приложение на любую страницу * Пользователь заходит в приложение на любую страницу
* Из-за отсутствия авторизации приложение перенаправляет его на страницу авторизации * Из-за отсутствия авторизации приложение перенаправляет его на страницу авторизации
* Пользователь вводит свой логин и пароль * Пользователь вводит свой логин и пароль
* Пользователь получает токен, который открывает ему доступ к получению собственных данных * Пользователь получает токен, который открывает ему доступ к получению собственных данных
### 6.Альтернативные потоки: ### 6.Альтернативные потоки:
#### А1.Введен неправильный логин или неправильный пароль #### B1.Введен неправильный логин или неправильный пароль
* Пользователь не получает токен, авторизация провалена * Пользователь не получает токен, авторизация провалена
* Выводится сообщение об ошибке * Выводится сообщение об ошибке
#### А2.Поле логин или пароль оставлены пустыми #### B2.Поле логин или пароль оставлены пустыми
* При попытке авторизации не происходит запрос токена. Авторизация провалена * При попытке авторизации не происходит запрос токена. Авторизация провалена
* Пустые поля подкрашиваются, как ошибочно заполненные * Пустые поля подкрашиваются, как ошибочно заполненные
* Выводится сообщение об ошибке * Выводится сообщение об ошибке
@@ -105,36 +107,34 @@
#### Logout-Request #### Logout-Request
``` ```
{ {
"login": "ivan_89", "token": af32df3bas739f272bd109c823
"password": "S3cureP@ssw0rd"
} }
``` ```
##### Response - 200 - OK ##### Response - 200 - OK
``` ```
{ null
"token": af32df3bas739f272bd109c823
"expiresIn": 36000000 // 10 часов
}
``` ```
### 10. Используемые сущности ДБ ### 10. Используемые сущности ДБ
* users(guid(PK), login(unique), hashed_password) * users(guid(PK), login(unique), hashed_password)
## UseCase №3 ## UseCase №3
### 1.Название: Вход в систему ### 1.Название: Переход на главную страницу
### 2.Актор: Пользователь ### 2.Актор: Пользователь
### 3.Цель: Предоставить пользователю поверхностный вывод данных о нем и инструменты для глубокого просмотра данных и их модификации ### 3.Цель: Предоставить пользователю поверхностный вывод данных о нем и инструменты для глубокого просмотра данных и их модификации
### 4.Предусловия: ### 4.Предусловия:
// Предусмотреть то, что пользователь может перейти страницу сильно после того, как авторизуется
* Пользователь имеет актуальный токен, подтверждающий его авторизацию в системе * Пользователь имеет актуальный токен, подтверждающий его авторизацию в системе
* Пользователь получил токен только что и не успел сделать дополнительных действий * Пользователь перешел на главную страницу
### 5.Основной поток: ### 5.Основной поток:
#### A1.Записи в дневнике есть
* Система перенаправляет пользователя на его основную страницу * Система перенаправляет пользователя на его основную страницу
* Система запрашивает и выводит последние записи и схемы лечения его дневника * Система запрашивает и выводит последние записи и схемы лечения его дневника
### 6.Альтернативные потоки: #### A2.Записей в дневнике нет
#### А1.Записей в дневнике нет
* Заместо вывода записей в дневнике, система выводит заглушку, информирующую пользователя, что дневник пуст * Заместо вывода записей в дневнике, система выводит заглушку, информирующую пользователя, что дневник пуст
* Система делает доступными операции с дневником * Система делает доступными операции с дневником
#### А2.Записи по какой-то причине не подгрузились ### 6.Альтернативные потоки(Потоки исключений):
#### B1.Записи по какой-то причине не подгрузились
* Система выводит нотификацию об ошибке и ее причине * Система выводит нотификацию об ошибке и ее причине
* Заместо вывода записей, система выводит на этом месте заглушку, информирующую о неправильной работе приложения и предоставляющей для нажатия кнопку перезагрузки страницы * Заместо вывода записей, система выводит на этом месте заглушку, информирующую о неправильной работе приложения и предоставляющей для нажатия кнопку перезагрузки страницы
### 7.Постусловия ### 7.Постусловия
@@ -181,7 +181,7 @@
##### Errors ##### Errors
* `401 TOKEN_REQUIRED|TOKEN_EXPIRED` — токен недействителен, либо отсутствует * `401 TOKEN_REQUIRED|TOKEN_EXPIRED` — токен недействителен, либо отсутствует
* `500 DATA_LOAD_FAILED` — ошибка при загрузке данных (А2) * `500 DATA_LOAD_FAILED` — ошибка при загрузке данных (`B1`)
#### TreatmentSchemes-Request #### TreatmentSchemes-Request
##### Response - 200 - OK ##### Response - 200 - OK