customer/docs/diagram/README.md
2023-06-26 14:52:00 +03:00

54 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
**UseCase авторизации пользователя (Пользователь существует / Пароль верный / Аккаунт не существует):**
```plantuml
participant Frontend
participant CustomerService
participant AuthService
participant HubAdminService
participant PaymentService
participant CBRFService
database AuthServiceDB
database ServiceDB
Frontend -> AuthService : Запрос на авторизацию пользователя
AuthService -> AuthServiceDB : Запрос на существования пользователя
AuthService <-- AuthServiceDB : Ответ: пользователь существует
AuthService -> AuthService : Проверка пароля (пароль верный)
Frontend <-- AuthService : Ответ успешной авторизации: \n- refreshToken в onlyHttp куках\n- accessToken в body \n- информация о пользователе
Frontend -> Frontend : Записывает accessToken в store (Redux / Recoil)
Frontend -> Service : Запрос на получение аккаунта \n- accessToken должен храниться \nв Authorization Header \nиспользуя метод Bearer <accessToken>
Service -> ServiceDB : Проверка на \nсуществование аккаунта
Service <-- ServiceDB : Ответ: \nаккаунта не существует
Frontend <-- Service : Ошибка: аккаунта не существует
```
## Relationships
```plantuml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
Container(CustomerService, "Customer Service", "Golang", "Сервис customer")
Container(AuthService, "Auth Service", "NodeJS", "Сервис единой авторизации")
Container(CbrfService, "CBRF Worker Service", "Golang", "Сервис по выдаче и перевода курсов валют")
Container(PaymentService, "Payment Service", "Golang", "Платёжный сервис")
Container(HubadminService, "Hub admin Service", "NodeJS", "Севрис управления тарифами и привелегиями")
ContainerDb(CustomerDB, "Customer Service Database", "MongoDB", "Хранит информацию об аккаунтах")
ContainerDb(AuthServiceDB, "Auth Service Database", "MongoDB", "Хранит информацию о пользователях и сессиях")
ContainerDb(CbrfServiceDB, "CBRF Worker Database", "MongoDB", "Хранит информацию о курсах валют")
ContainerDb(PaymentServiceDB, "Payment Service Database", "MongoDB", "Хранит информацию о платежах и их состоянии")
ContainerDb(HubadminServiceDB, "Hubadmin service Database", "MongoDB", "Хранит информацию о тарифах и привелегиях")
Rel(CustomerService, AuthService, "Использует для получения актуальной информации о пользователе")
Rel(CustomerService, CbrfService, "Использует для перевода валюты с одного курса на другой")
Rel(CustomerService, PaymentService, "Использует для проведения оплаты, получения платёжной ссылки и уведомления об успешной/не_успешной оплате")
Rel(CustomerService, HubadminService, "Использует для получения информации о тарифах")
Rel_R(CustomerService, CustomerDB, "Читает/Записывает")
Rel_R(AuthService, AuthServiceDB, "Читает/Записывает")
Rel_R(CbrfService, CbrfServiceDB, "Читает/Записывает")
Rel_R(PaymentService, PaymentServiceDB, "Читает/Записывает")
Rel_R(HubadminService, HubadminServiceDB, "Читает/Записывает")
```