sequenceDiagram participant User participant View participant Server participant DB User->>View: "스터디 1" 클릭 View->>Server: 스터디 가입 신청 정보 목록 요청(사용자식별정보, study_id) loop ValidationCheck Server->>Server: 토큰 기반 사용자 인증 성공 : return userId Server->>Server: 스터디장 권한 확인 end Server->>DB: 해당스터디에 대해 아직 처리되지 않은 신청목록 요청 DB->>Server: 스터디 신청정보 목록 가져오기 Server->>View: 스터디신청정보DTO 목록 리턴
스터디 신청정보 데이터 처리 필요함
어떤 도메인이 필요한가?
sequenceDiagram participant 서비스A participant 스터디 participant 스터디그룹 서비스A->>스터디: "study_id" 를 사용해 "스터디" 엔티티 조회 스터디->>서비스A: study_id 인 스터디가 존재하면 반환 서비스A->>서비스A: "스터디장권한 확인" 서비스A->>스터디그룹: study_id 인 스터디에 참여신청한 "서비스_그룹"조회 스터디그룹->>서비스A: 서비스그룹 List 반환
특정한 스터디 신청 거절, 승낙
- 1안: studies/{studyId} + requestBody
{ studyGroupId: status: }
- 현재 “스터디 참여 신청 정보" 또한 “스터디 그룹" 에 들어가는 상태 라서 리소스 id 로 적을 때 무엇으로 명시해주어야 할지 망설여진다 : studyGroup, applyId
스터디의 스터디 멤버의의 “상태에 대한 수정" 이기 때문에 PUT 을 사용하여, body 로 받아야 하는게 아닐까? 라는 생각
- 2안? : studies/{studyId}/study-member/{id}?status=
- “승낙" → Accepted 로 상태 변화
- “거절"→ CANCELD 로 상태 변화
- 3안 : studies/{studyId}/study-member/{id} + requestBody
{ status: }
study_group
현재인원 4, 최대인원 5
- 신청 1
- 신청 2
- 신청 3
sequenceDiagram participant 서비스A participant 스터디 participant 스터디그룹 loop 모집마감스터디확인 서비스A->>스터디: study_id 인 스터디가 존재하는지 조회 서비스A->>스터디그룹: study_id 인 스터디에 "참여중인" 스터디그룹원 인원조회 서비스A->>서비스A: 모집마감된 스터디인지 확인 end 서비스A->>스터디그룹: 해당 스터디그룹레코드 상태변경