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 81e1eceb..7325c2a0 100644 --- a/loan/src/main/java/com/example/loan/controller/ApplicationController.java +++ b/loan/src/main/java/com/example/loan/controller/ApplicationController.java @@ -34,4 +34,12 @@ public class ApplicationController extends AbstractController { ) { return ok(applicationService.update(applicationId, request)); } + + @DeleteMapping("/{applicationId}") + public ResponseDto delete( + @PathVariable Long applicationId + ) { + applicationService.delete(applicationId); + return ok(); + } } 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 740be327..d13f9cca 100644 --- a/loan/src/main/java/com/example/loan/service/ApplicationService.java +++ b/loan/src/main/java/com/example/loan/service/ApplicationService.java @@ -9,4 +9,6 @@ public interface ApplicationService { ApplicationDto.Response get(Long applicationId); ApplicationDto.Response update(Long applicationId, ApplicationDto.Request request); + + void delete(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 9ba8bcdb..387426f7 100644 --- a/loan/src/main/java/com/example/loan/service/ApplicationServiceImpl.java +++ b/loan/src/main/java/com/example/loan/service/ApplicationServiceImpl.java @@ -50,4 +50,14 @@ public class ApplicationServiceImpl implements ApplicationService { return modelMapper.map(application, ApplicationDto.Response.class); } + + @Override + public void delete(Long applicationId) { + Application application = applicationRepository.findById(applicationId) + .orElseThrow(() -> new BaseException(ResultType.SYSTEM_ERROR)); + + application.setIsDeleted(true); + + applicationRepository.save(application); + } } 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 8cc2af11..f768b228 100644 --- a/loan/src/test/java/com/example/loan/service/ApplicationServiceTest.java +++ b/loan/src/test/java/com/example/loan/service/ApplicationServiceTest.java @@ -93,4 +93,20 @@ class ApplicationServiceTest { assertThat(actual.getApplicationId()).isSameAs(findId); assertThat(actual.getHopeAmount()).isSameAs(request.getHopeAmount()); } + + @Test + void Should_DeletedApplicationEntity_When_RequestDeleteExistApplicationInfo() { + Long targetId = 1L; + + Application entity = Application.builder() + .applicationId(1L) + .build(); + + when(applicationRepository.save(ArgumentMatchers.any(Application.class))).thenReturn(entity); + when(applicationRepository.findById(targetId)).thenReturn(Optional.ofNullable(entity)); + + applicationService.delete(targetId); + + assertThat(entity.getIsDeleted()).isTrue(); + } } \ No newline at end of file