Project/Duri

커플 연결 서비스 구현 (1 / ? - 흐름 및 API 구상)

조용우 2025. 5. 6. 07:02

1. 로그인 후, 두 사람이 각자 인증코드 발급받음

2. 한 명이 상대방의 코드를 입력해 연결 요청 보냄

3.

요청받은 유저는 ㅇㅇㅇ로부터 커플 요청이 왔습니다 메세지 띄우기

요청한 유저는 <코드> 연결 중, 응답 대기중입니다 메세지 띄우기

4.1 거절하면 요청자에게 거절됨 메세지 표시

4.2 수락하면 두 사람은 커플로 연결됨

4.3 요청자가 취소하면 요청자에게 요청을 취소했다는 알림 표시 -> 1로 돌아감


1. 로그인 후, 두 사람이 각자 인증코드 발급받음

프론트

GET /couple/connect/code (인증코드 발급/ 이미 유효한 인증코드가 있다면 불러오기)
GET /couple/connect/status/send (보낸 요청에 대한 정보)

GET /couple/connect/status/receive (받은 요청에 대한 정보)

(앱이 종료되거나 백그라운드로 넘어갔을 때 알림을 받지 못할 것을 대비)

 

백엔드 Response

요청자 (왼쪽)

GET /couple/connect/code -> 200 OK String code

GET /couple/connect/status/send -> 200 OK status = (null, Pending, Accept, Reject)

## 내가 보낸것에 대한 응답

null -> 아무 요청 안보냈을 때
Pending -> 요청 대기중일 때

Accept -> 요청 수락됐을 때

Reject -> 요청 거절됐을 때

GET /couple/connect/status/receive -> 200 OK status = (null, Pending, Cancel)

## 내가 받은것에 대한 응답

null -> 아무 요청 안왔을 때

Pending -> 요청 받았을 때

Cancel -> 요청이 취소됐을 때

 

응답자 (오른쪽)

GET /couple/request/code -> 200 OK String code

GET /couple/connect/status/send -> 200 OK (null, Pending, Accept, Reject)

GET /couple/connect/status/receive -> 200 OK status = (null, Pending, Cancel)

# 위와 동일

 

2. 한 명이 상대방의 코드를 입력해 연결 요청 보냄

프론트

요청자 (왼쪽)

POST /couple/connect (상대방의 코드를 입력)

 

3.

요청받은 유저(오른쪽)는 ㅇㅇㅇ로부터 커플 요청이 왔습니다 메세지 띄우기

요청한 유저(왼쪽)는 <코드> 연결 중, 응답 대기중입니다 메세지 띄우기

 

백엔드 Response

요청자(왼쪽)

2 에서 보낸 POST /couple/connect (요청자가 상대방의 코드를 입력)

-> 200 OK status = Pending

 

응답자(오른쪽)

-> WebSocket 이용해서 요청자로부터 커플 연결 요청이 왔다는 모달 띄우기 status = Pending

-> FCM 이용해서 푸시 알람 생성

4.1 거절하면 요청자에게 거절됨 메세지 표시

프론트

응답자(오른쪽)

POST /couple/connect/reject (요청 거절)

-> 200 OK

 

백엔드 Response

요청자(왼쪽)

-> WebSocket 이용해서 응답자로부터 요청이 거절됐다는 모달 띄우기

-> FCM 이용해서 푸시 알람 생성

 

응답자(오른쪽)

POST /couple/connect/reject -> 200 OK

4.2 수락하면 두 사람은 커플로 연결됨

프론트

응답자(오른쪽)

POST /couple/connect/accept (요청 수락)

 

백엔드 Response

요청자(왼쪽)

-> WebSocket 이용해서 메인페이지로 redirect 되도록 응답

-> FCM 이용해서 푸시 알람 생성

 

응답자(오른쪽)

POST /couple/connect/accept -> 200 OK -> 프론트 redirect to 메인페이지("/")

4.3 요청자가 취소하면 요청자에게 요청을 취소했다는 알림 표시 -> 1로 돌아감

프론트

요청자(왼쪽)

POST /couple/connect/cancel (요청 취소)

 

백엔드 Response

요청자(왼쪽)

POST /couple/connect/cancel -> 200 OK

-> WebSocket 이용해서 메인페이지로 redirect 되도록 응답

 

응답자(오른쪽)

case 1. 앱에 접속 중이었다면

-> WebSocket 이용해서 수락 대기 창 끄기, 알림 생성 (상대방이 요청을 취소했습니다)

case 2. 접속중이 아니었다면 -> FCM 이용해서 푸시 알람 생성 (요청 취소)