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..e67639274 100644 --- a/src/main/java/com/example/solidconnection/score/controller/ScoreController.java +++ b/src/main/java/com/example/solidconnection/score/controller/ScoreController.java @@ -2,9 +2,9 @@ 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.dto.LanguageTestScoreStatusesResponse; import com.example.solidconnection.score.service.ScoreService; import com.example.solidconnection.siteuser.domain.SiteUser; import jakarta.validation.Valid; @@ -49,19 +49,19 @@ 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); } // 어학 성적 상태를 확인하는 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/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/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 66592d339..eb00a14e9 100644 --- a/src/main/java/com/example/solidconnection/score/service/ScoreService.java +++ b/src/main/java/com/example/solidconnection/score/service/ScoreService.java @@ -8,11 +8,11 @@ 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; +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; @@ -75,28 +75,28 @@ 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) - 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 0617e1c25..8d2054579 100644 --- a/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java +++ b/src/test/java/com/example/solidconnection/score/service/ScoreServiceTest.java @@ -7,11 +7,11 @@ 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; +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; @@ -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 @@ -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