-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
✨ [STMT-295] 관리자 여부, 포도알 전송 가능 여부 판단 API 분리 및 멤버 상세 화면 통합 API 구현 (#153)
* 📝 [STMT-291] 스터디 멤버 상세 조회 API 응답 성공 요청본문 명세서 추가 * ♻️ [STMT-291] 멤버 상세 정보 api에서 포도알 전송 여부 api 분리 * ✨ [STMT-291] 로그인한 멤버가 스터디 관리자 판별 API 구현 * ✨ [STMT-291] 관리자 여부, 포도알 전송 가능 여부 조회에 스터디 존재 검증 로직 추가 * ✅ [STMT-291] 관리자 여부 조회 API 테스트 작성 * ✅ [STMT-291] 멤버 포도알 전송 가능 여부 조회 API 테스트 작성 * ✨ [STMT-291] 활동 목록 간략 조회 API에 memberId 쿼리 파라미터 추가 * ✅ [STMT-291] 활동 목록 간략 조회 API memberId 쿼리 파라미터 추가 API 테스트에 반영 * ✨ [STMT-295] 스터디 멤버 상세 화면 조회 API 구현 * ✅ [STMT-295] 스터디 멤버 상세 화면 조회 API 테스트 작성 * ✨ [STMT-291] 스터디 홈 화면 조회 통합 API 구현 * ✅ [STMT-291] 스터디 홈 화면 조회 통합 API 테스트 작성 * 🩹 [STMT-291] 스터디 멤버 관리자 여부 조회 문서화 PATH 오류 수정 * 📝 [STMT-291] 포도알 전송 가능 여부, 관리자 여부, 통합 API 명세서 작성 * ✨ [STMT-291] 활동 상세 조회에 link 속성 추가
- Loading branch information
Showing
23 changed files
with
716 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
68 changes: 68 additions & 0 deletions
68
src/main/java/com/stumeet/server/bff/adapter/in/app/StudyHubApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
package com.stumeet.server.bff.adapter.in.app; | ||
|
||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.security.core.annotation.AuthenticationPrincipal; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
import com.stumeet.server.activity.adapter.in.response.ActivityListDetailedPageResponse; | ||
import com.stumeet.server.activity.application.port.in.ActivityQueryUseCase; | ||
import com.stumeet.server.activity.application.port.in.query.ActivityListDetailedQuery; | ||
import com.stumeet.server.bff.adapter.in.app.response.StudyDetailFullResponse; | ||
import com.stumeet.server.common.auth.model.LoginMember; | ||
import com.stumeet.server.common.model.ApiResponse; | ||
import com.stumeet.server.common.response.SuccessCode; | ||
import com.stumeet.server.study.adapter.in.web.response.StudyDetailResponse; | ||
import com.stumeet.server.study.application.port.in.StudyQueryUseCase; | ||
import com.stumeet.server.studymember.application.port.in.StudyMemberQueryUseCase; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
@RestController | ||
@RequestMapping("/api/external/v1") | ||
@RequiredArgsConstructor | ||
public class StudyHubApi { | ||
|
||
private final StudyQueryUseCase studyQueryUseCase; | ||
private final StudyMemberQueryUseCase studyMemberQueryUseCase; | ||
private final ActivityQueryUseCase activityQueryUseCase; | ||
|
||
@GetMapping("/studies/{studyId}") | ||
public ResponseEntity<ApiResponse<StudyDetailFullResponse>> getStudyDetailFull( | ||
@AuthenticationPrincipal LoginMember member, | ||
@PathVariable(name = "studyId") Long studyId | ||
) { | ||
StudyDetailResponse studyDetailResponse = studyQueryUseCase.getStudyDetailById(studyId); | ||
|
||
ActivityListDetailedQuery noticeQuery = getNoticeQuery(member.getId(), studyId); | ||
ActivityListDetailedPageResponse activityNotice = activityQueryUseCase.getDetails(noticeQuery) | ||
.items() | ||
.getFirst(); | ||
|
||
boolean isAdmin = studyMemberQueryUseCase.isMemberAdmin(studyId, member.getId()).isAdmin(); | ||
boolean canSendGrape = studyMemberQueryUseCase.canStudyMemberSendGrape(studyId, member.getId()).canSendGrape(); | ||
|
||
StudyDetailFullResponse response = new StudyDetailFullResponse( | ||
studyDetailResponse, | ||
activityNotice, | ||
isAdmin, | ||
canSendGrape | ||
); | ||
|
||
return ResponseEntity.ok( | ||
ApiResponse.success(SuccessCode.GET_SUCCESS, response) | ||
); | ||
} | ||
|
||
private ActivityListDetailedQuery getNoticeQuery(Long memberId, Long studyId) { | ||
return ActivityListDetailedQuery.builder() | ||
.memberId(memberId) | ||
.studyId(studyId) | ||
.page(0) | ||
.size(1) | ||
.isNotice(true) | ||
.build(); | ||
} | ||
} |
46 changes: 46 additions & 0 deletions
46
src/main/java/com/stumeet/server/bff/adapter/in/app/StudyMemberHubApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
package com.stumeet.server.bff.adapter.in.app; | ||
|
||
import org.springframework.http.ResponseEntity; | ||
import org.springframework.security.core.annotation.AuthenticationPrincipal; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.PathVariable; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
import com.stumeet.server.bff.adapter.in.app.response.StudyMemberDetailFullResponse; | ||
import com.stumeet.server.common.auth.model.LoginMember; | ||
import com.stumeet.server.common.model.ApiResponse; | ||
import com.stumeet.server.common.response.SuccessCode; | ||
import com.stumeet.server.studymember.application.port.in.StudyMemberQueryUseCase; | ||
import com.stumeet.server.studymember.application.port.in.response.StudyMemberDetailResponse; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
@RestController | ||
@RequestMapping("/api/external/v1") | ||
@RequiredArgsConstructor | ||
public class StudyMemberHubApi { | ||
|
||
private final StudyMemberQueryUseCase studyMemberQueryUseCase; | ||
|
||
@GetMapping("/studies/{studyId}/members/{memberId}") | ||
public ResponseEntity<ApiResponse<StudyMemberDetailFullResponse>> getStudyMemberDetailFull( | ||
@AuthenticationPrincipal LoginMember member, | ||
@PathVariable Long studyId, | ||
@PathVariable Long memberId | ||
) { | ||
StudyMemberDetailResponse studyMemberDetail = studyMemberQueryUseCase.getStudyMemberDetail(studyId, memberId, member.getId()); | ||
boolean isAdmin = studyMemberQueryUseCase.isMemberAdmin(studyId, memberId).isAdmin(); | ||
boolean canSendGrape = studyMemberQueryUseCase.canStudyMemberSendGrape(studyId, memberId).canSendGrape(); | ||
|
||
StudyMemberDetailFullResponse response = new StudyMemberDetailFullResponse( | ||
studyMemberDetail, | ||
isAdmin, | ||
canSendGrape | ||
); | ||
|
||
return ResponseEntity.ok( | ||
ApiResponse.success(SuccessCode.GET_SUCCESS, response) | ||
); | ||
} | ||
} |
12 changes: 12 additions & 0 deletions
12
src/main/java/com/stumeet/server/bff/adapter/in/app/response/StudyDetailFullResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package com.stumeet.server.bff.adapter.in.app.response; | ||
|
||
import com.stumeet.server.activity.adapter.in.response.ActivityListDetailedPageResponse; | ||
import com.stumeet.server.study.adapter.in.web.response.StudyDetailResponse; | ||
|
||
public record StudyDetailFullResponse( | ||
StudyDetailResponse studyDetail, | ||
ActivityListDetailedPageResponse activityNotice, | ||
Boolean isAdmin, | ||
Boolean canSendGrape | ||
) { | ||
} |
10 changes: 10 additions & 0 deletions
10
...in/java/com/stumeet/server/bff/adapter/in/app/response/StudyMemberDetailFullResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package com.stumeet.server.bff.adapter.in.app.response; | ||
|
||
import com.stumeet.server.studymember.application.port.in.response.StudyMemberDetailResponse; | ||
|
||
public record StudyMemberDetailFullResponse( | ||
StudyMemberDetailResponse studyMemberDetailResponse, | ||
Boolean isAdmin, | ||
Boolean canSendGrape | ||
) { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.