diff --git a/loan/src/main/java/com/example/loan/controller/ApplicationController.java b/loan/src/main/java/com/example/loan/controller/ApplicationController.java index 7301f074..bbe27fe5 100644 --- a/loan/src/main/java/com/example/loan/controller/ApplicationController.java +++ b/loan/src/main/java/com/example/loan/controller/ApplicationController.java @@ -4,10 +4,7 @@ import com.example.loan.dto.ApplicationDto; import com.example.loan.dto.ResponseDto; import com.example.loan.service.ApplicationService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor @@ -22,4 +19,11 @@ public class ApplicationController extends AbstractController { ) { return ok(applicationService.create(request)); } + + @GetMapping("/{applicationId}") + public ResponseDto get( + @PathVariable Long applicationId + ) { + return ok(applicationService.get(applicationId)); + } } diff --git a/loan/src/main/java/com/example/loan/service/ApplicationService.java b/loan/src/main/java/com/example/loan/service/ApplicationService.java index c6038a19..93b9f9ae 100644 --- a/loan/src/main/java/com/example/loan/service/ApplicationService.java +++ b/loan/src/main/java/com/example/loan/service/ApplicationService.java @@ -5,4 +5,6 @@ import com.example.loan.dto.ApplicationDto; public interface ApplicationService { ApplicationDto.Response create(ApplicationDto.Request request); + + ApplicationDto.Response get(Long applicationId); } diff --git a/loan/src/main/java/com/example/loan/service/ApplicationServiceImpl.java b/loan/src/main/java/com/example/loan/service/ApplicationServiceImpl.java index 4ca7f54f..ed4642d9 100644 --- a/loan/src/main/java/com/example/loan/service/ApplicationServiceImpl.java +++ b/loan/src/main/java/com/example/loan/service/ApplicationServiceImpl.java @@ -2,6 +2,8 @@ package com.example.loan.service; import com.example.loan.domain.Application; import com.example.loan.dto.ApplicationDto; +import com.example.loan.exception.BaseException; +import com.example.loan.exception.ResultType; import com.example.loan.repository.ApplicationRepository; import lombok.RequiredArgsConstructor; import org.modelmapper.ModelMapper; @@ -25,4 +27,12 @@ public class ApplicationServiceImpl implements ApplicationService { return modelMapper.map(applied, ApplicationDto.Response.class); } + + @Override + public ApplicationDto.Response get(Long applicationId) { + Application application = applicationRepository.findById(applicationId) + .orElseThrow(() -> new BaseException(ResultType.SYSTEM_ERROR)); + + return modelMapper.map(application, ApplicationDto.Response.class); + } } diff --git a/loan/src/test/java/com/example/loan/service/ApplicationServiceTest.java b/loan/src/test/java/com/example/loan/service/ApplicationServiceTest.java index 5b4dcb8a..6a93197d 100644 --- a/loan/src/test/java/com/example/loan/service/ApplicationServiceTest.java +++ b/loan/src/test/java/com/example/loan/service/ApplicationServiceTest.java @@ -13,6 +13,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.modelmapper.ModelMapper; import java.math.BigDecimal; +import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -55,4 +56,19 @@ class ApplicationServiceTest { assertThat(actual.getCellPhone()).isSameAs(entity.getCellPhone()); assertThat(actual.getEmail()).isSameAs(entity.getEmail()); } + + @Test + void Should_ReturnResponseOfExistApplicationEntity_When_RequestExistApplicationId() { + Long findId = 1L; + + Application entity = Application.builder() + .applicationId(1L) + .build(); + + when(applicationRepository.findById(findId)).thenReturn(Optional.ofNullable(entity)); + + ApplicationDto.Response actual = applicationService.get(findId); + + assertThat(actual.getApplicationId()).isSameAs(findId); + } } \ No newline at end of file