diff --git a/src/main/java/site/dogether/challengegroup/controller/ChallengeGroupController.java b/src/main/java/site/dogether/challengegroup/controller/ChallengeGroupController.java index 33dabc6..c4c3673 100644 --- a/src/main/java/site/dogether/challengegroup/controller/ChallengeGroupController.java +++ b/src/main/java/site/dogether/challengegroup/controller/ChallengeGroupController.java @@ -68,6 +68,7 @@ public ResponseEntity> joinChallengeGrou joinChallengeGroupDto.name(), joinChallengeGroupDto.maximumMemberCount(), joinChallengeGroupDto.startAt(), + joinChallengeGroupDto.endAt(), joinChallengeGroupDto.durationOption()) )); } diff --git a/src/main/java/site/dogether/challengegroup/controller/response/JoinChallengeGroupResponse.java b/src/main/java/site/dogether/challengegroup/controller/response/JoinChallengeGroupResponse.java index 2b4bda7..9955a26 100644 --- a/src/main/java/site/dogether/challengegroup/controller/response/JoinChallengeGroupResponse.java +++ b/src/main/java/site/dogether/challengegroup/controller/response/JoinChallengeGroupResponse.java @@ -4,6 +4,7 @@ public record JoinChallengeGroupResponse( String name, int maximumMemberCount, String startAt, + String endAt, int durationOption ) { } diff --git a/src/main/java/site/dogether/challengegroup/service/ChallengeGroupService.java b/src/main/java/site/dogether/challengegroup/service/ChallengeGroupService.java index 180d16f..186e01e 100644 --- a/src/main/java/site/dogether/challengegroup/service/ChallengeGroupService.java +++ b/src/main/java/site/dogether/challengegroup/service/ChallengeGroupService.java @@ -1,5 +1,9 @@ package site.dogether.challengegroup.service; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.List; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -23,11 +27,6 @@ import site.dogether.member.service.MemberService; import site.dogether.notification.service.NotificationService; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; -import java.util.List; - @Slf4j @RequiredArgsConstructor @Transactional(readOnly = true) @@ -109,11 +108,13 @@ public JoinChallengeGroupDto joinChallengeGroup(final String joinCode, final Str final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd"); final String startAtFormatted = challengeGroupJpaEntity.getStartAt().format(formatter); + final String endAtFormatted = challengeGroupJpaEntity.getEndAt().format(formatter); return new JoinChallengeGroupDto( joiningGroup.getName(), joiningGroup.getMaximumMemberCount(), startAtFormatted, + endAtFormatted, joiningGroup.getDurationOption().getValue() ); } diff --git a/src/main/java/site/dogether/challengegroup/service/dto/JoinChallengeGroupDto.java b/src/main/java/site/dogether/challengegroup/service/dto/JoinChallengeGroupDto.java index 4fffd36..82eb4fe 100644 --- a/src/main/java/site/dogether/challengegroup/service/dto/JoinChallengeGroupDto.java +++ b/src/main/java/site/dogether/challengegroup/service/dto/JoinChallengeGroupDto.java @@ -4,6 +4,7 @@ public record JoinChallengeGroupDto( String name, int maximumMemberCount, String startAt, + String endAt, int durationOption ) { } diff --git a/src/test/java/site/dogether/docs/challengegroup/ChallengeGroupControllerDocsTest.java b/src/test/java/site/dogether/docs/challengegroup/ChallengeGroupControllerDocsTest.java index e3721fa..64fd12c 100644 --- a/src/test/java/site/dogether/docs/challengegroup/ChallengeGroupControllerDocsTest.java +++ b/src/test/java/site/dogether/docs/challengegroup/ChallengeGroupControllerDocsTest.java @@ -1,5 +1,20 @@ package site.dogether.docs.challengegroup; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; +import static org.springframework.restdocs.payload.PayloadDocumentation.requestFields; +import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static site.dogether.docs.util.DocumentLinkGenerator.DocUrl.CHALLENGE_GROUP_DURATION_OPTION; +import static site.dogether.docs.util.DocumentLinkGenerator.DocUrl.CHALLENGE_GROUP_START_AT_OPTION; +import static site.dogether.docs.util.DocumentLinkGenerator.generateLink; + +import java.util.List; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.http.MediaType; @@ -15,18 +30,6 @@ import site.dogether.dailytodo.domain.Rank; import site.dogether.docs.util.RestDocsSupport; -import java.util.List; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.mock; -import static org.springframework.restdocs.payload.PayloadDocumentation.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import static site.dogether.docs.util.DocumentLinkGenerator.DocUrl.CHALLENGE_GROUP_DURATION_OPTION; -import static site.dogether.docs.util.DocumentLinkGenerator.DocUrl.CHALLENGE_GROUP_START_AT_OPTION; -import static site.dogether.docs.util.DocumentLinkGenerator.generateLink; - @DisplayName("챌린지 그룹 API 문서화 테스트") public class ChallengeGroupControllerDocsTest extends RestDocsSupport { @@ -98,7 +101,7 @@ void joinChallengeGroup() throws Exception { final JoinChallengeGroupRequest request = new JoinChallengeGroupRequest("kelly-join-code"); given(challengeGroupService.joinChallengeGroup(any(), any())) - .willReturn(new JoinChallengeGroupDto("성욱이와 친구들", 7, "2025.02.25", 7)); + .willReturn(new JoinChallengeGroupDto("성욱이와 친구들", 7, "2025.02.17", "2025.02.23", 7)); mockMvc.perform( post("/api/groups/join") @@ -128,6 +131,9 @@ void joinChallengeGroup() throws Exception { fieldWithPath("data.startAt") .description("챌린지 시작일") .type(JsonFieldType.STRING), + fieldWithPath("data.endAt") + .description("챌린지 종료일") + .type(JsonFieldType.STRING), fieldWithPath("data.durationOption") .description("챌린지 기간") .type(JsonFieldType.NUMBER))));