From 9609e226eca2a5a0e5476ceb85b15e0a5affd047 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Sat, 29 Mar 2025 14:08:50 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20GPA=20=EB=8C=80=EC=8B=A0=20GpaR?= =?UTF-8?q?esponse=20DTO=EB=A1=9C=20=EC=9D=91=EB=8B=B5=20=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../score/controller/ScoreController.java | 6 +++--- .../score/dto/GpaResponse.java | 17 +++++++++++++++ .../score/dto/GpaScoreRequest.java | 1 + .../score/dto/GpaScoreStatus.java | 21 ------------------- .../score/dto/GpaScoreStatusResponse.java | 16 ++++++++++++-- .../score/dto/GpaScoreStatusesResponse.java | 11 ++++++++++ .../score/service/ScoreService.java | 10 ++++----- .../score/service/ScoreServiceTest.java | 14 ++++++------- 8 files changed, 58 insertions(+), 38 deletions(-) create mode 100644 src/main/java/com/example/solidconnection/score/dto/GpaResponse.java delete mode 100644 src/main/java/com/example/solidconnection/score/dto/GpaScoreStatus.java create mode 100644 src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusesResponse.java diff --git a/src/main/java/com/example/solidconnection/score/controller/ScoreController.java b/src/main/java/com/example/solidconnection/score/controller/ScoreController.java index 4ea560657..2383c40b6 100644 --- a/src/main/java/com/example/solidconnection/score/controller/ScoreController.java +++ b/src/main/java/com/example/solidconnection/score/controller/ScoreController.java @@ -2,7 +2,7 @@ import com.example.solidconnection.custom.resolver.AuthorizedUser; import com.example.solidconnection.score.dto.GpaScoreRequest; -import com.example.solidconnection.score.dto.GpaScoreStatusResponse; +import com.example.solidconnection.score.dto.GpaScoreStatusesResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; import com.example.solidconnection.score.dto.LanguageTestScoreStatusResponse; import com.example.solidconnection.score.service.ScoreService; @@ -49,10 +49,10 @@ public ResponseEntity submitLanguageTestScore( // 학점 상태를 확인하는 api @GetMapping("/gpas") - public ResponseEntity getGpaScoreStatus( + public ResponseEntity getGpaScoreStatus( @AuthorizedUser SiteUser siteUser ) { - GpaScoreStatusResponse gpaScoreStatus = scoreService.getGpaScoreStatus(siteUser); + GpaScoreStatusesResponse gpaScoreStatus = scoreService.getGpaScoreStatus(siteUser); return ResponseEntity.ok(gpaScoreStatus); } diff --git a/src/main/java/com/example/solidconnection/score/dto/GpaResponse.java b/src/main/java/com/example/solidconnection/score/dto/GpaResponse.java new file mode 100644 index 000000000..fc05667aa --- /dev/null +++ b/src/main/java/com/example/solidconnection/score/dto/GpaResponse.java @@ -0,0 +1,17 @@ +package com.example.solidconnection.score.dto; + +import com.example.solidconnection.application.domain.Gpa; + +public record GpaResponse( + double gpa, + double gpaCriteria, + String gpaReportUrl +) { + public static GpaResponse from(Gpa gpa) { + return new GpaResponse( + gpa.getGpa(), + gpa.getGpaCriteria(), + gpa.getGpaReportUrl() + ); + } +} diff --git a/src/main/java/com/example/solidconnection/score/dto/GpaScoreRequest.java b/src/main/java/com/example/solidconnection/score/dto/GpaScoreRequest.java index beafbf2e3..a95cced6c 100644 --- a/src/main/java/com/example/solidconnection/score/dto/GpaScoreRequest.java +++ b/src/main/java/com/example/solidconnection/score/dto/GpaScoreRequest.java @@ -3,6 +3,7 @@ import jakarta.validation.constraints.NotNull; public record GpaScoreRequest( + @NotNull(message = "학점을 입력해주세요.") Double gpa, diff --git a/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatus.java b/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatus.java deleted file mode 100644 index 5798e3cf0..000000000 --- a/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatus.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.example.solidconnection.score.dto; - -import com.example.solidconnection.application.domain.Gpa; -import com.example.solidconnection.score.domain.GpaScore; -import com.example.solidconnection.type.VerifyStatus; - -public record GpaScoreStatus( - Long id, - Gpa gpa, - VerifyStatus verifyStatus, - String rejectedReason -) { - public static GpaScoreStatus from(GpaScore gpaScore) { - return new GpaScoreStatus( - gpaScore.getId(), - gpaScore.getGpa(), - gpaScore.getVerifyStatus(), - gpaScore.getRejectedReason() - ); - } -} diff --git a/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusResponse.java b/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusResponse.java index 06fdba0d3..df161d358 100644 --- a/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusResponse.java +++ b/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusResponse.java @@ -1,8 +1,20 @@ package com.example.solidconnection.score.dto; -import java.util.List; +import com.example.solidconnection.score.domain.GpaScore; +import com.example.solidconnection.type.VerifyStatus; public record GpaScoreStatusResponse( - List gpaScoreStatusList + long id, + GpaResponse gpaResponse, + VerifyStatus verifyStatus, + String rejectedReason ) { + public static GpaScoreStatusResponse from(GpaScore gpaScore) { + return new GpaScoreStatusResponse( + gpaScore.getId(), + GpaResponse.from(gpaScore.getGpa()), + gpaScore.getVerifyStatus(), + gpaScore.getRejectedReason() + ); + } } diff --git a/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusesResponse.java b/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusesResponse.java new file mode 100644 index 000000000..24a12af18 --- /dev/null +++ b/src/main/java/com/example/solidconnection/score/dto/GpaScoreStatusesResponse.java @@ -0,0 +1,11 @@ +package com.example.solidconnection.score.dto; + +import java.util.List; + +public record GpaScoreStatusesResponse( + List gpaScoreStatusResponseList +) { + public static GpaScoreStatusesResponse from(List gpaScoreStatusResponseList) { + return new GpaScoreStatusesResponse(gpaScoreStatusResponseList); + } +} diff --git a/src/main/java/com/example/solidconnection/score/service/ScoreService.java b/src/main/java/com/example/solidconnection/score/service/ScoreService.java index 66592d339..7454c8492 100644 --- a/src/main/java/com/example/solidconnection/score/service/ScoreService.java +++ b/src/main/java/com/example/solidconnection/score/service/ScoreService.java @@ -8,8 +8,8 @@ import com.example.solidconnection.score.domain.GpaScore; import com.example.solidconnection.score.domain.LanguageTestScore; import com.example.solidconnection.score.dto.GpaScoreRequest; -import com.example.solidconnection.score.dto.GpaScoreStatus; import com.example.solidconnection.score.dto.GpaScoreStatusResponse; +import com.example.solidconnection.score.dto.GpaScoreStatusesResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; import com.example.solidconnection.score.dto.LanguageTestScoreStatus; import com.example.solidconnection.score.dto.LanguageTestScoreStatusResponse; @@ -75,16 +75,16 @@ public Long submitLanguageTestScore(SiteUser siteUser, LanguageTestScoreRequest } @Transactional(readOnly = true) - public GpaScoreStatusResponse getGpaScoreStatus(SiteUser siteUser) { + public GpaScoreStatusesResponse getGpaScoreStatus(SiteUser siteUser) { // todo: ditto SiteUser siteUser1 = siteUserRepository.findById(siteUser.getId()).orElseThrow(() -> new CustomException(USER_NOT_FOUND)); - List gpaScoreStatusList = + List gpaScoreStatusResponseList = Optional.ofNullable(siteUser1.getGpaScoreList()) .map(scores -> scores.stream() - .map(GpaScoreStatus::from) + .map(GpaScoreStatusResponse::from) .collect(Collectors.toList())) .orElse(Collections.emptyList()); - return new GpaScoreStatusResponse(gpaScoreStatusList); + return GpaScoreStatusesResponse.from(gpaScoreStatusResponseList); } @Transactional(readOnly = true) diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index 0617e1c25..f846f3802 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -7,8 +7,8 @@ import com.example.solidconnection.score.domain.GpaScore; import com.example.solidconnection.score.domain.LanguageTestScore; import com.example.solidconnection.score.dto.GpaScoreRequest; -import com.example.solidconnection.score.dto.GpaScoreStatus; import com.example.solidconnection.score.dto.GpaScoreStatusResponse; +import com.example.solidconnection.score.dto.GpaScoreStatusesResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; import com.example.solidconnection.score.dto.LanguageTestScoreStatus; import com.example.solidconnection.score.dto.LanguageTestScoreStatusResponse; @@ -63,15 +63,15 @@ class ScoreServiceTest extends BaseIntegrationTest { ); // when - GpaScoreStatusResponse response = scoreService.getGpaScoreStatus(testUser); + GpaScoreStatusesResponse response = scoreService.getGpaScoreStatus(testUser); // then - assertThat(response.gpaScoreStatusList()) + assertThat(response.gpaScoreStatusResponseList()) .hasSize(scores.size()) .containsExactlyInAnyOrder( scores.stream() - .map(GpaScoreStatus::from) - .toArray(GpaScoreStatus[]::new) + .map(GpaScoreStatusResponse::from) + .toArray(GpaScoreStatusResponse[]::new) ); } @@ -81,10 +81,10 @@ class ScoreServiceTest extends BaseIntegrationTest { SiteUser testUser = createSiteUser(); // when - GpaScoreStatusResponse response = scoreService.getGpaScoreStatus(testUser); + GpaScoreStatusesResponse response = scoreService.getGpaScoreStatus(testUser); // then - assertThat(response.gpaScoreStatusList()).isEmpty(); + assertThat(response.gpaScoreStatusResponseList()).isEmpty(); } @Test From c870c68f83df3628d96982b5be2816638bb07bc5 Mon Sep 17 00:00:00 2001 From: Gyuhyeok99 <126947828+Gyuhyeok99@users.noreply.github.com> Date: Sat, 29 Mar 2025 14:15:17 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20LanguageTest=20=EB=8C=80?= =?UTF-8?q?=EC=8B=A0=20LanguageTestResponse=20DTO=EB=A1=9C=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=EA=B5=AC=EC=A1=B0=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../score/controller/ScoreController.java | 6 +++--- .../score/dto/LanguageTestResponse.java | 18 ++++++++++++++++ .../score/dto/LanguageTestScoreRequest.java | 1 + .../score/dto/LanguageTestScoreStatus.java | 21 ------------------- .../dto/LanguageTestScoreStatusResponse.java | 16 ++++++++++++-- .../LanguageTestScoreStatusesResponse.java | 11 ++++++++++ .../score/service/ScoreService.java | 10 ++++----- .../score/service/ScoreServiceTest.java | 14 ++++++------- 8 files changed, 59 insertions(+), 38 deletions(-) create mode 100644 src/main/java/com/example/solidconnection/score/dto/LanguageTestResponse.java delete mode 100644 src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatus.java create mode 100644 src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusesResponse.java diff --git a/src/main/java/com/example/solidconnection/score/controller/ScoreController.java b/src/main/java/com/example/solidconnection/score/controller/ScoreController.java index 2383c40b6..e67639274 100644 --- a/src/main/java/com/example/solidconnection/score/controller/ScoreController.java +++ b/src/main/java/com/example/solidconnection/score/controller/ScoreController.java @@ -4,7 +4,7 @@ import com.example.solidconnection.score.dto.GpaScoreRequest; import com.example.solidconnection.score.dto.GpaScoreStatusesResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; -import com.example.solidconnection.score.dto.LanguageTestScoreStatusResponse; +import com.example.solidconnection.score.dto.LanguageTestScoreStatusesResponse; import com.example.solidconnection.score.service.ScoreService; import com.example.solidconnection.siteuser.domain.SiteUser; import jakarta.validation.Valid; @@ -58,10 +58,10 @@ public ResponseEntity getGpaScoreStatus( // 어학 성적 상태를 확인하는 api @GetMapping("/language-tests") - public ResponseEntity getLanguageTestScoreStatus( + public ResponseEntity getLanguageTestScoreStatus( @AuthorizedUser SiteUser siteUser ) { - LanguageTestScoreStatusResponse languageTestScoreStatus = scoreService.getLanguageTestScoreStatus(siteUser); + LanguageTestScoreStatusesResponse languageTestScoreStatus = scoreService.getLanguageTestScoreStatus(siteUser); return ResponseEntity.ok(languageTestScoreStatus); } } diff --git a/src/main/java/com/example/solidconnection/score/dto/LanguageTestResponse.java b/src/main/java/com/example/solidconnection/score/dto/LanguageTestResponse.java new file mode 100644 index 000000000..060574f46 --- /dev/null +++ b/src/main/java/com/example/solidconnection/score/dto/LanguageTestResponse.java @@ -0,0 +1,18 @@ +package com.example.solidconnection.score.dto; + +import com.example.solidconnection.application.domain.LanguageTest; +import com.example.solidconnection.type.LanguageTestType; + +public record LanguageTestResponse( + LanguageTestType languageTestType, + String languageTestScore, + String languageTestReportUrl +) { + public static LanguageTestResponse from(LanguageTest languageTest) { + return new LanguageTestResponse( + languageTest.getLanguageTestType(), + languageTest.getLanguageTestScore(), + languageTest.getLanguageTestReportUrl() + ); + } +} diff --git a/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreRequest.java b/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreRequest.java index de9329898..e49af4369 100644 --- a/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreRequest.java +++ b/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreRequest.java @@ -5,6 +5,7 @@ import jakarta.validation.constraints.NotNull; public record LanguageTestScoreRequest( + @NotNull(message = "어학 종류를 입력해주세요.") LanguageTestType languageTestType, diff --git a/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatus.java b/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatus.java deleted file mode 100644 index 9e5fcae4f..000000000 --- a/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatus.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.example.solidconnection.score.dto; - -import com.example.solidconnection.application.domain.LanguageTest; -import com.example.solidconnection.score.domain.LanguageTestScore; -import com.example.solidconnection.type.VerifyStatus; - -public record LanguageTestScoreStatus( - Long id, - LanguageTest languageTest, - VerifyStatus verifyStatus, - String rejectedReason -) { - public static LanguageTestScoreStatus from(LanguageTestScore languageTestScore) { - return new LanguageTestScoreStatus( - languageTestScore.getId(), - languageTestScore.getLanguageTest(), - languageTestScore.getVerifyStatus(), - languageTestScore.getRejectedReason() - ); - } -} diff --git a/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusResponse.java b/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusResponse.java index e19c0e855..3ee96906e 100644 --- a/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusResponse.java +++ b/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusResponse.java @@ -1,8 +1,20 @@ package com.example.solidconnection.score.dto; -import java.util.List; +import com.example.solidconnection.score.domain.LanguageTestScore; +import com.example.solidconnection.type.VerifyStatus; public record LanguageTestScoreStatusResponse( - List languageTestScoreStatusList + long id, + LanguageTestResponse languageTestResponse, + VerifyStatus verifyStatus, + String rejectedReason ) { + public static LanguageTestScoreStatusResponse from(LanguageTestScore languageTestScore) { + return new LanguageTestScoreStatusResponse( + languageTestScore.getId(), + LanguageTestResponse.from(languageTestScore.getLanguageTest()), + languageTestScore.getVerifyStatus(), + languageTestScore.getRejectedReason() + ); + } } diff --git a/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusesResponse.java b/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusesResponse.java new file mode 100644 index 000000000..027794853 --- /dev/null +++ b/src/main/java/com/example/solidconnection/score/dto/LanguageTestScoreStatusesResponse.java @@ -0,0 +1,11 @@ +package com.example.solidconnection.score.dto; + +import java.util.List; + +public record LanguageTestScoreStatusesResponse( + List languageTestScoreStatusResponseList +) { + public static LanguageTestScoreStatusesResponse from(List languageTestScoreStatusResponseList) { + return new LanguageTestScoreStatusesResponse(languageTestScoreStatusResponseList); + } +} diff --git a/src/main/java/com/example/solidconnection/score/service/ScoreService.java b/src/main/java/com/example/solidconnection/score/service/ScoreService.java index 7454c8492..eb00a14e9 100644 --- a/src/main/java/com/example/solidconnection/score/service/ScoreService.java +++ b/src/main/java/com/example/solidconnection/score/service/ScoreService.java @@ -11,8 +11,8 @@ import com.example.solidconnection.score.dto.GpaScoreStatusResponse; import com.example.solidconnection.score.dto.GpaScoreStatusesResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; -import com.example.solidconnection.score.dto.LanguageTestScoreStatus; import com.example.solidconnection.score.dto.LanguageTestScoreStatusResponse; +import com.example.solidconnection.score.dto.LanguageTestScoreStatusesResponse; import com.example.solidconnection.score.repository.GpaScoreRepository; import com.example.solidconnection.score.repository.LanguageTestScoreRepository; import com.example.solidconnection.siteuser.domain.SiteUser; @@ -88,15 +88,15 @@ public GpaScoreStatusesResponse getGpaScoreStatus(SiteUser siteUser) { } @Transactional(readOnly = true) - public LanguageTestScoreStatusResponse getLanguageTestScoreStatus(SiteUser siteUser) { + public LanguageTestScoreStatusesResponse getLanguageTestScoreStatus(SiteUser siteUser) { // todo: ditto SiteUser siteUser1 = siteUserRepository.findById(siteUser.getId()).orElseThrow(() -> new CustomException(USER_NOT_FOUND)); - List languageTestScoreStatusList = + List languageTestScoreStatusResponseList = Optional.ofNullable(siteUser1.getLanguageTestScoreList()) .map(scores -> scores.stream() - .map(LanguageTestScoreStatus::from) + .map(LanguageTestScoreStatusResponse::from) .collect(Collectors.toList())) .orElse(Collections.emptyList()); - return new LanguageTestScoreStatusResponse(languageTestScoreStatusList); + return LanguageTestScoreStatusesResponse.from(languageTestScoreStatusResponseList); } } diff --git a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java index f846f3802..8d2054579 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -10,8 +10,8 @@ import com.example.solidconnection.score.dto.GpaScoreStatusResponse; import com.example.solidconnection.score.dto.GpaScoreStatusesResponse; import com.example.solidconnection.score.dto.LanguageTestScoreRequest; -import com.example.solidconnection.score.dto.LanguageTestScoreStatus; import com.example.solidconnection.score.dto.LanguageTestScoreStatusResponse; +import com.example.solidconnection.score.dto.LanguageTestScoreStatusesResponse; import com.example.solidconnection.score.repository.GpaScoreRepository; import com.example.solidconnection.score.repository.LanguageTestScoreRepository; import com.example.solidconnection.siteuser.domain.SiteUser; @@ -98,15 +98,15 @@ class ScoreServiceTest extends BaseIntegrationTest { siteUserRepository.save(testUser); // when - LanguageTestScoreStatusResponse response = scoreService.getLanguageTestScoreStatus(testUser); + LanguageTestScoreStatusesResponse response = scoreService.getLanguageTestScoreStatus(testUser); // then - assertThat(response.languageTestScoreStatusList()) + assertThat(response.languageTestScoreStatusResponseList()) .hasSize(scores.size()) .containsExactlyInAnyOrder( scores.stream() - .map(LanguageTestScoreStatus::from) - .toArray(LanguageTestScoreStatus[]::new) + .map(LanguageTestScoreStatusResponse::from) + .toArray(LanguageTestScoreStatusResponse[]::new) ); } @@ -116,10 +116,10 @@ class ScoreServiceTest extends BaseIntegrationTest { SiteUser testUser = createSiteUser(); // when - LanguageTestScoreStatusResponse response = scoreService.getLanguageTestScoreStatus(testUser); + LanguageTestScoreStatusesResponse response = scoreService.getLanguageTestScoreStatus(testUser); // then - assertThat(response.languageTestScoreStatusList()).isEmpty(); + assertThat(response.languageTestScoreStatusResponseList()).isEmpty(); } @Test