Skip to content

Commit 5ba321f

Browse files
authored
refactor: Request와 Response에서의 GraduationDate 필드를 LocalDate에서 YearMonth 타입으로 변경 (#296)
1 parent 123e8b0 commit 5ba321f

File tree

9 files changed

+29
-27
lines changed

9 files changed

+29
-27
lines changed

aics-admin/src/main/java/kgu/developers/admin/graduationUser/presentation/request/GraduationUserBatchCreateRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public record GraduationUserBatchCreateRequest(
1717
+ "\"advisorProfessor\": \"김교수\", "
1818
+ "\"capstoneCompletion\": \"true\", "
1919
+ "\"department\": \"컴퓨터공학전공\", "
20-
+ "\"graduationDate\": \"2028-02-01\"}]",
20+
+ "\"graduationDate\": \"2028-02\"}]",
2121
requiredMode = REQUIRED)
2222
@NotEmpty
2323
List<GraduationUserCreateRequest> graduationUsers

aics-admin/src/main/java/kgu/developers/admin/graduationUser/presentation/request/GraduationUserCreateRequest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import jakarta.validation.constraints.Size;
77
import lombok.Builder;
88

9-
import java.time.LocalDate;
9+
import java.time.YearMonth;
1010

1111
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;
1212

@@ -35,8 +35,8 @@ public record GraduationUserCreateRequest(
3535
@Size(max = 10)
3636
String department,
3737

38-
@Schema(description = "졸업일", example = "2028-02-01", requiredMode = Schema.RequiredMode.REQUIRED)
38+
@Schema(description = "졸업일", example = "2028-02", requiredMode = Schema.RequiredMode.REQUIRED)
3939
@NotNull
40-
LocalDate graduationDate
40+
YearMonth graduationDate
4141
) {
4242
}

aics-admin/src/main/java/kgu/developers/admin/graduationUser/presentation/response/GraduationUserDetailResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ public record GraduationUserDetailResponse(
2020
@Schema(description = "학번(교번)", example = "202412345", requiredMode = REQUIRED)
2121
String studentId,
2222

23-
@Schema(description = "졸업 날짜", example = "2028-08-01", requiredMode = REQUIRED)
24-
@DateTimeFormat(pattern = "yyyy-MM-dd")
23+
@Schema(description = "졸업 날짜", example = "2028-08", requiredMode = REQUIRED)
24+
@DateTimeFormat(pattern = "yyyy-MM")
2525
String graduationDate,
2626

2727
@Schema(description = "지도교수", example = "김교수", requiredMode = REQUIRED)
@@ -36,7 +36,7 @@ public record GraduationUserDetailResponse(
3636
public static GraduationUserDetailResponse from(
3737
GraduationUser graduationUser
3838
) {
39-
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
39+
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
4040
return GraduationUserDetailResponse.builder()
4141
.graduationUserId(graduationUser.getId())
4242
.name(graduationUser.getName())

aics-admin/src/main/java/kgu/developers/admin/graduationUser/presentation/response/GraduationUserSummaryPageResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public record GraduationUserSummaryPageResponse<T>(
1515
+ "\"id\": 3, "
1616
+ "\"studentId\": \"202211456\", "
1717
+ "\"name\": \"홍길동\", "
18-
+ "\"graduationDate\": \"2028-08-01\", "
18+
+ "\"graduationDate\": \"2028-08\", "
1919
+ "\"graduationType\": \"자격증\", "
2020
+ "\"status\": {"
2121
+ "\"type\": \"CERTIFICATE\", "
@@ -25,7 +25,7 @@ public record GraduationUserSummaryPageResponse<T>(
2525
+ "\"id\": 4, "
2626
+ "\"studentId\": \"202211457\", "
2727
+ "\"name\": \"김철수\", "
28-
+ "\"graduationDate\": \"2028-08-01\", "
28+
+ "\"graduationDate\": \"2028-08\", "
2929
+ "\"graduationType\": \"논문\", "
3030
+ "\"status\": {"
3131
+ "\"type\": \"THESIS\", "

aics-admin/src/main/java/kgu/developers/admin/graduationUser/presentation/response/GraduationUserSummaryResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ public record GraduationUserSummaryResponse(
2020
@Schema(description = "졸업 대상자 이름", example = "홍길동", requiredMode = REQUIRED)
2121
String name,
2222

23-
@Schema(description = "졸업 날짜", example = "2028-08-01", requiredMode = REQUIRED)
24-
@DateTimeFormat(pattern = "yyyy-MM-dd")
23+
@Schema(description = "졸업 날짜", example = "2028-08", requiredMode = REQUIRED)
24+
@DateTimeFormat(pattern = "yyyy-MM")
2525
String graduationDate,
2626

2727
@Schema(description = "졸업 유형", example = "자격증", requiredMode = REQUIRED)
@@ -45,7 +45,7 @@ public record GraduationUserSummaryResponse(
4545
GraduationUserStatusResponse status
4646
) {
4747
public static GraduationUserSummaryResponse of(GraduationUser graduationUser, GraduationUserStatusResponse status) {
48-
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
48+
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
4949

5050
return GraduationUserSummaryResponse.builder()
5151
.id(graduationUser.getId())

aics-admin/src/testFixtures/java/graduationUser/application/GraduationUserAdminFacadeTest.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.springframework.data.domain.Pageable;
4343

4444
import java.time.LocalDate;
45+
import java.time.YearMonth;
4546
import java.util.ArrayList;
4647
import java.util.Arrays;
4748
import java.util.HashSet;
@@ -140,7 +141,7 @@ public void init() {
140141
.email("hong1@kyonggi.ac.kr")
141142
.graduationType(GraduationType.CERTIFICATE)
142143
.certificateId(1L)
143-
.graduationDate(LocalDate.of(2021, 12, 31))
144+
.graduationDate(LocalDate.of(2021, 12, 1))
144145
.build());
145146

146147
graduationUser2 = fakeGraduationUserRepository.save(GraduationUser.builder()
@@ -151,15 +152,15 @@ public void init() {
151152
.graduationType(GraduationType.THESIS)
152153
.midThesisId(1L)
153154
.finalThesisId(2L)
154-
.graduationDate(LocalDate.of(2021, 12, 31))
155+
.graduationDate(LocalDate.of(2021, 12, 1))
155156
.build());
156157

157158
fakeGraduationUserRepository.save(GraduationUser.builder()
158159
.id(3L)
159160
.name("이지민")
160161
.userId("202411003")
161162
.email("jiim1@kyonggi.ac.kr")
162-
.graduationDate(LocalDate.of(2021, 12, 31))
163+
.graduationDate(LocalDate.of(2021, 12, 1))
163164
.build());
164165
}
165166

@@ -174,7 +175,7 @@ public void createGraduationUser_Success() {
174175
.name("홍길순")
175176
.advisorProfessor("김교수")
176177
.capstoneCompletion(false)
177-
.graduationDate(LocalDate.of(2021, 12, 31))
178+
.graduationDate(YearMonth.of(2021, 12))
178179
.build();
179180

180181
//when
@@ -195,15 +196,15 @@ public void createGraduationUsers_Success() {
195196
.studentId("202411346")
196197
.name("홍길순")
197198
.capstoneCompletion(false)
198-
.graduationDate(LocalDate.of(2021, 12, 31))
199+
.graduationDate(YearMonth.of(2021, 12))
199200
.build();
200201
requestList.add(requestUser1);
201202

202203
GraduationUserCreateRequest requestUser2 = GraduationUserCreateRequest.builder()
203204
.studentId("202411347")
204205
.name("홍길동")
205206
.capstoneCompletion(true)
206-
.graduationDate(LocalDate.of(2028, 12, 31))
207+
.graduationDate(YearMonth.of(2028, 12))
207208
.build();
208209
requestList.add(requestUser2);
209210

aics-domain/src/main/java/kgu/developers/domain/graduationUser/application/command/GraduationUserCommandService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.springframework.stereotype.Service;
1212
import org.springframework.transaction.annotation.Transactional;
1313

14-
import java.time.LocalDate;
14+
import java.time.YearMonth;
1515

1616
@Service
1717
@Transactional
@@ -20,9 +20,9 @@ public class GraduationUserCommandService {
2020
private final GraduationUserRepository graduationUserRepository;
2121
private final UserRepository userRepository;
2222

23-
public Long createGraduationUser(String studentId, String name, String advisor, Boolean capstoneCompletion, String department, LocalDate graduationDate) {
23+
public Long createGraduationUser(String studentId, String name, String advisor, Boolean capstoneCompletion, String department, YearMonth graduationDate) {
2424
validateId(studentId);
25-
GraduationUser graduationUser = GraduationUser.create(studentId,name,advisor,capstoneCompletion,department,graduationDate);
25+
GraduationUser graduationUser = GraduationUser.create(studentId,name,advisor,capstoneCompletion,department,graduationDate.atDay(1));
2626
return graduationUserRepository.save(graduationUser).getId();
2727
}
2828

aics-domain/src/main/java/kgu/developers/domain/graduationUser/infrastructure/excel/GraduationUserExcelRow.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
import kgu.developers.domain.graduationUser.domain.GraduationUser;
44
import lombok.Builder;
55

6-
import java.time.LocalDate;
6+
import java.time.YearMonth;
77

88
@Builder
99
public record GraduationUserExcelRow(
1010
String userId,
1111
String name,
1212
String department,
13-
LocalDate graduationDate,
13+
YearMonth graduationDate,
1414
String graduationType,
1515
String advisorProfessor,
1616
String currentStage,
@@ -21,8 +21,8 @@ public static GraduationUserExcelRow from(GraduationUser graduationUser, String
2121
.userId(graduationUser.getUserId())
2222
.name(graduationUser.getName())
2323
.department(graduationUser.getDepartment())
24-
.graduationDate(graduationUser.getGraduationDate())
25-
.graduationType(graduationUser.getGraduationType().getDescription())
24+
.graduationDate(YearMonth.from(graduationUser.getGraduationDate()))
25+
.graduationType(graduationUser.getGraduationType()!=null ? graduationUser.getGraduationType().getDescription(): null)
2626
.advisorProfessor(graduationUser.getAdvisorProfessor())
2727
.currentStage(stage)
2828
.approvalStatus(status)

aics-domain/src/testFixtures/java/graduationUser/application/GraduationUserCommandServiceTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.junit.jupiter.api.Test;
1515

1616
import java.time.LocalDate;
17+
import java.time.YearMonth;
1718

1819
import static org.assertj.core.api.Assertions.assertThatThrownBy;
1920
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -59,7 +60,7 @@ public void createGraduationUser_Success() {
5960
String advisor = "김교수";
6061
Boolean capstoneCompletion = true;
6162
String department = "컴퓨터공학과";
62-
LocalDate graduationDate = LocalDate.of(2024, 2, 20);
63+
YearMonth graduationDate = YearMonth.of(2024, 2);
6364
//when
6465
Long createdGraduatoinUserId = graduationUserCommandService.createGraduationUser(TARGET_STUDENT_ID, name, advisor, capstoneCompletion, department, graduationDate);
6566

@@ -76,7 +77,7 @@ public void createGraduationUser_DuplicateId_ThrowsException() {
7677
String advisor = "김교수";
7778
Boolean capstoneCompletion = true;
7879
String department = "컴퓨터공학과";
79-
LocalDate graduationDate = LocalDate.of(2024, 2, 20);
80+
YearMonth graduationDate = YearMonth.of(2024, 2);
8081
//when
8182
//then
8283
assertThatThrownBy(() -> graduationUserCommandService.createGraduationUser(studentId, name, advisor, capstoneCompletion, department, graduationDate))

0 commit comments

Comments
 (0)