diff --git a/loan/src/main/java/com/example/loan/controller/JudgementController.java b/loan/src/main/java/com/example/loan/controller/JudgementController.java index e87a89b2..a81cfda3 100644 --- a/loan/src/main/java/com/example/loan/controller/JudgementController.java +++ b/loan/src/main/java/com/example/loan/controller/JudgementController.java @@ -31,4 +31,12 @@ public class JudgementController extends AbstractController { ) { return ok(judgementService.getJudgementOfApplication(applicationId)); } + + @PutMapping("/{judgementId}") + public ResponseDto update( + @PathVariable Long judgementId, + @RequestBody JudgementDto.Request request + ) { + return ok(judgementService.update(judgementId, request)); + } } diff --git a/loan/src/main/java/com/example/loan/service/JudgementService.java b/loan/src/main/java/com/example/loan/service/JudgementService.java index 03785e04..168c378f 100644 --- a/loan/src/main/java/com/example/loan/service/JudgementService.java +++ b/loan/src/main/java/com/example/loan/service/JudgementService.java @@ -9,4 +9,6 @@ public interface JudgementService { JudgementDto.Response get(Long judgementId); JudgementDto.Response getJudgementOfApplication(Long applicationId); + + JudgementDto.Response update(Long judgementId, JudgementDto.Request request); } diff --git a/loan/src/main/java/com/example/loan/service/JudgementServiceImpl.java b/loan/src/main/java/com/example/loan/service/JudgementServiceImpl.java index d835a0ff..40f56244 100644 --- a/loan/src/main/java/com/example/loan/service/JudgementServiceImpl.java +++ b/loan/src/main/java/com/example/loan/service/JudgementServiceImpl.java @@ -55,6 +55,19 @@ public class JudgementServiceImpl implements JudgementService { return modelMapper.map(judgement, JudgementDto.Response.class); } + @Override + public JudgementDto.Response update(Long judgementId, JudgementDto.Request request) { + Judgement judgement = judgementRepository.findById(judgementId) + .orElseThrow(() -> new BaseException(ResultType.SYSTEM_ERROR)); + + judgement.setName(request.getName()); + judgement.setApprovalAmount(request.getApprovalAmount()); + + judgementRepository.save(judgement); + + return modelMapper.map(judgement, JudgementDto.Response.class); + } + private boolean isPresentApplication(Long applicationId) { return applicationRepository.findById(applicationId).isPresent(); } diff --git a/loan/src/test/java/com/example/loan/service/JudgementServiceImplTest.java b/loan/src/test/java/com/example/loan/service/JudgementServiceImplTest.java index bea9bc5e..79f0606a 100644 --- a/loan/src/test/java/com/example/loan/service/JudgementServiceImplTest.java +++ b/loan/src/test/java/com/example/loan/service/JudgementServiceImplTest.java @@ -91,4 +91,28 @@ class JudgementServiceImplTest { assertThat(actual.getJudgementId()).isSameAs(1L); } + + @Test + void Should_ReturnUpdatedResponseOfExistJudgementEntity_When_RequestUpdateExistJudgementInfo() { + + Judgement entity = Judgement.builder() + .judgementId(1L) + .name("kim") + .approvalAmount(BigDecimal.valueOf(5000000)) + .build(); + + JudgementDto.Request request = JudgementDto.Request.builder() + .name("lee") + .approvalAmount(BigDecimal.valueOf(10000000)) + .build(); + + when(judgementRepository.findById(1L)).thenReturn(Optional.ofNullable(entity)); + when(judgementRepository.save(ArgumentMatchers.any(Judgement.class))).thenReturn(entity); + + JudgementDto.Response actual = judgementService.update(1L, request); + + assertThat(actual.getJudgementId()).isSameAs(1L); + assertThat(actual.getName()).isSameAs(request.getName()); + assertThat(actual.getApprovalAmount()).isSameAs(request.getApprovalAmount()); + } } \ No newline at end of file