시퀀스 다이어그램 추가
- 아이템 장착 플로우 - 이메일 발송 플로우 - 재인증 플로우 - mermaid 형식으로 서비스 간 통신 흐름 시각화
This commit is contained in:
parent
d79b55ef45
commit
de4d319aee
@ -103,7 +103,97 @@ PostgreSQL (gmail_tokens 테이블)
|
||||
|
||||
---
|
||||
|
||||
## 4. API 설계
|
||||
## 4. 시퀀스 다이어그램
|
||||
|
||||
### 아이템 장착 플로우
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User as 사용자
|
||||
participant Front as 프론트엔드
|
||||
participant Gateway as Gateway(8100)
|
||||
participant Monitor as robeing-monitor(9024)
|
||||
participant RB as rb8001
|
||||
participant DB as PostgreSQL
|
||||
|
||||
User->>Front: Gmail 아이템 장착 클릭
|
||||
Front->>Gateway: POST /api/items/gmail/:userId/equip
|
||||
Gateway->>Gateway: JWT 토큰 검증
|
||||
Gateway->>Monitor: 장착 요청 전달
|
||||
Monitor->>DB: robeing_stats 조회 (레벨 체크)
|
||||
DB-->>Monitor: 레벨 정보
|
||||
alt 레벨 < 5
|
||||
Monitor-->>Front: INSUFFICIENT_LEVEL
|
||||
else 레벨 >= 5
|
||||
Monitor->>DB: gmail_tokens 업데이트
|
||||
Note over DB: is_equipped=true<br/>equipped_to=robeing_id
|
||||
Monitor->>DB: gmail_audit_logs 기록
|
||||
Monitor-->>RB: 장착 완료 알림
|
||||
Monitor-->>Front: 장착 성공
|
||||
end
|
||||
```
|
||||
|
||||
### 이메일 발송 플로우
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User as 사용자
|
||||
participant Front as 프론트엔드
|
||||
participant RB as rb8001
|
||||
participant Monitor as robeing-monitor(9024)
|
||||
participant Skill as skill-email(8501)
|
||||
participant DB as PostgreSQL
|
||||
participant Gmail as Gmail API
|
||||
|
||||
User->>Front: "이메일 보내줘" 요청
|
||||
Front->>RB: 메시지 전달
|
||||
RB->>Monitor: Gmail 아이템 장착 확인
|
||||
Monitor->>DB: gmail_tokens 조회
|
||||
DB-->>Monitor: 장착 상태 & 토큰 정보
|
||||
|
||||
alt 아이템 미장착
|
||||
Monitor-->>RB: ITEM_NOT_EQUIPPED
|
||||
RB-->>Front: "Gmail 아이템을 먼저 장착해주세요"
|
||||
else 아이템 장착됨
|
||||
Monitor-->>RB: 장착 확인
|
||||
RB->>Skill: 이메일 발송 요청
|
||||
Skill->>DB: 토큰 조회
|
||||
DB-->>Skill: access_token
|
||||
Skill->>Gmail: API 호출
|
||||
Gmail-->>Skill: 발송 결과
|
||||
Skill-->>RB: 성공/실패
|
||||
RB-->>Front: 결과 메시지
|
||||
end
|
||||
```
|
||||
|
||||
### 재인증 플로우
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User as 사용자
|
||||
participant Front as 프론트엔드
|
||||
participant Monitor as robeing-monitor(9024)
|
||||
participant Auth as auth-server(9000)
|
||||
participant Google as Google OAuth
|
||||
participant DB as PostgreSQL
|
||||
|
||||
Note over Front: 토큰 만료 상태 표시
|
||||
User->>Front: 재인증 버튼 클릭
|
||||
Front->>Monitor: POST /api/items/gmail/:userId/reauth
|
||||
Monitor->>Auth: OAuth URL 요청
|
||||
Auth->>Auth: state 생성
|
||||
Auth-->>Monitor: OAuth URL
|
||||
Monitor-->>Front: 리다이렉트 URL
|
||||
Front->>Google: OAuth 페이지로 이동
|
||||
User->>Google: 로그인 & 권한 승인
|
||||
Google->>Auth: 인증 코드 콜백
|
||||
Auth->>Google: 토큰 교환
|
||||
Google-->>Auth: access_token, refresh_token
|
||||
Auth->>DB: gmail_tokens 업데이트
|
||||
Auth-->>Front: 인증 완료
|
||||
Front->>Front: 아이템 상태 갱신
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. API 설계
|
||||
|
||||
### robeing-monitor (9024) 엔드포인트
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user