From 0534d138004e33c401c90ef7d49be29bfe75cbd3 Mon Sep 17 00:00:00 2001 From: Mingyu Song <100754581+mikekks@users.noreply.github.com> Date: Sun, 27 Oct 2024 12:26:45 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EC=8A=B9=EC=9D=B8=EB=90=9C=20?= =?UTF-8?q?=EC=8B=A0=EC=B2=AD=EC=9E=90=20=EC=88=98=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#464)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 승인된 신청자 수 필드 추가 * refactor: 사용하지 않는 QueryProjection 삭제 + 모임 제목에 private final 추가 * test: appliedCount -> approvedCount 로 변경 --- .../main/global/dto/MeetingResponseDto.java | 47 +++++-------------- .../v2/service/MeetingV2ServiceTest.java | 6 +-- 2 files changed, 14 insertions(+), 39 deletions(-) diff --git a/main/src/main/java/org/sopt/makers/crew/main/global/dto/MeetingResponseDto.java b/main/src/main/java/org/sopt/makers/crew/main/global/dto/MeetingResponseDto.java index 07022937..d8a676a7 100644 --- a/main/src/main/java/org/sopt/makers/crew/main/global/dto/MeetingResponseDto.java +++ b/main/src/main/java/org/sopt/makers/crew/main/global/dto/MeetingResponseDto.java @@ -3,16 +3,14 @@ import java.time.LocalDateTime; import java.util.List; +import java.util.Objects; import org.sopt.makers.crew.main.global.constant.CrewConst; import org.sopt.makers.crew.main.entity.meeting.Meeting; -import org.sopt.makers.crew.main.entity.meeting.enums.MeetingCategory; import org.sopt.makers.crew.main.entity.meeting.enums.MeetingJoinablePart; import org.sopt.makers.crew.main.entity.meeting.vo.ImageUrlVO; import org.sopt.makers.crew.main.entity.user.User; -import com.querydsl.core.annotations.QueryProjection; - import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; import lombok.Getter; @@ -28,7 +26,7 @@ public class MeetingResponseDto { private final Integer id; @Schema(description = "모임 제목", example = "모임 제목입니다") @NotNull - String title; + private final String title; @Schema(description = "대상 기수", example = "33") @NotNull private final Integer targetActiveGeneration; @@ -70,36 +68,12 @@ public class MeetingResponseDto { @Schema(description = "모임장 정보", example = "") @NotNull private final MeetingCreatorDto user; - @Schema(description = "신청 승인 수", example = "7") + @Schema(description = "TODO: FE에서 수정 완료 후 삭제 ", example = "[DEPRECATED]") @NotNull private final int appliedCount; - - @QueryProjection - public MeetingResponseDto(Integer id, String title, Integer targetActiveGeneration, - @NotNull MeetingJoinablePart[] joinableParts, MeetingCategory category, Boolean canJoinOnlyActiveGeneration, - Integer status, - List imageURL, Boolean isMentorNeeded, LocalDateTime mStartDate, LocalDateTime mEndDate, - int capacity, - MeetingCreatorDto user, int appliedCount) { - - boolean processedCanJoinOnlyActiveGeneration = canJoinOnlyActiveGeneration - && (CrewConst.ACTIVE_GENERATION.equals(targetActiveGeneration)); - - this.id = id; - this.title = title; - this.targetActiveGeneration = targetActiveGeneration; - this.joinableParts = joinableParts; - this.category = category.getValue(); - this.canJoinOnlyActiveGeneration = processedCanJoinOnlyActiveGeneration; - this.status = status; - this.imageURL = imageURL; - this.isMentorNeeded = isMentorNeeded; - this.mStartDate = mStartDate; - this.mEndDate = mEndDate; - this.capacity = capacity; - this.user = user; - this.appliedCount = appliedCount; - } + @Schema(description = "승인된 신청자 수", example = "3") + @NotNull + private final int approvedCount; public LocalDateTime getmStartDate() { return mStartDate; @@ -109,15 +83,16 @@ public LocalDateTime getmEndDate() { return mEndDate; } - public static MeetingResponseDto of(Meeting meeting, User meetingCreator, int appliedCount, LocalDateTime now) { + public static MeetingResponseDto of(Meeting meeting, User meetingCreator, int approvedCount, LocalDateTime now) { MeetingCreatorDto creatorDto = MeetingCreatorDto.of(meetingCreator); - boolean canJoinOnlyActiveGeneration = meeting.getTargetActiveGeneration() == CrewConst.ACTIVE_GENERATION + boolean canJoinOnlyActiveGeneration = + Objects.equals(meeting.getTargetActiveGeneration(), CrewConst.ACTIVE_GENERATION) && meeting.getCanJoinOnlyActiveGeneration(); return new MeetingResponseDto(meeting.getId(), meeting.getTitle(), - meeting.getTargetActiveGeneration(), meeting.getJoinableParts(), meeting.getCategory(), + meeting.getTargetActiveGeneration(), meeting.getJoinableParts(), meeting.getCategory().getValue(), canJoinOnlyActiveGeneration, meeting.getMeetingStatus(now), meeting.getImageURL(), meeting.getIsMentorNeeded(), meeting.getMStartDate(), meeting.getMEndDate(), meeting.getCapacity(), - creatorDto, appliedCount); + creatorDto, approvedCount, approvedCount); } } diff --git a/main/src/test/java/org/sopt/makers/crew/main/meeting/v2/service/MeetingV2ServiceTest.java b/main/src/test/java/org/sopt/makers/crew/main/meeting/v2/service/MeetingV2ServiceTest.java index 78ffd8a6..21b8a8ba 100644 --- a/main/src/test/java/org/sopt/makers/crew/main/meeting/v2/service/MeetingV2ServiceTest.java +++ b/main/src/test/java/org/sopt/makers/crew/main/meeting/v2/service/MeetingV2ServiceTest.java @@ -472,7 +472,7 @@ void normal_getMeetings_success() { "title", "category", "canJoinOnlyActiveGeneration", "mStartDate", "mEndDate", "capacity", "isMentorNeeded", "targetActiveGeneration", - "joinableParts", "status", "appliedCount" + "joinableParts", "status", "approvedCount" ).containsExactly( tuple("세미나 구합니다 - 신청후", "세미나", false, LocalDateTime.of(2024, 5, 29, 0, 0), @@ -542,7 +542,7 @@ void getOnlyActiveGenerationMeeting_getMeetings_meetings() { "title", "category", "canJoinOnlyActiveGeneration", "mStartDate", "mEndDate", "capacity", "isMentorNeeded", "targetActiveGeneration", - "joinableParts", "status", "appliedCount" + "joinableParts", "status", "approvedCount" ).containsExactly( tuple("스터디 구합니다1", "행사", true, LocalDateTime.of(2024, 5, 29, 0, 0), @@ -588,7 +588,7 @@ void getByCategory_getMeetings_meetings() { "title", "category", "canJoinOnlyActiveGeneration", "mStartDate", "mEndDate", "capacity", "isMentorNeeded", "targetActiveGeneration", - "joinableParts", "status", "appliedCount" + "joinableParts", "status", "approvedCount" ).containsExactly( tuple("세미나 구합니다 - 신청후", "세미나", false, LocalDateTime.of(2024, 5, 29, 0, 0),