From 6182a7a77ed6e768898802fe51f084c0b34d05e3 Mon Sep 17 00:00:00 2001 From: Klaus Date: Wed, 8 Jan 2025 15:04:22 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EC=98=A4?= =?UTF-8?q?=EB=94=94=EC=85=98=20=EC=A7=80=EC=9B=90=20=EB=A6=AC=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20-=20=EC=82=AD=EC=A0=9C=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdminAuditionApplicantController.kt | 19 +++++++++++++++++++ .../AdminAuditionApplicantRepository.kt | 6 ++++++ .../AdminAuditionApplicantService.kt | 17 +++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantController.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantRepository.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantService.kt diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantController.kt new file mode 100644 index 0000000..8cad5ad --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantController.kt @@ -0,0 +1,19 @@ +package kr.co.vividnext.sodalive.admin.audition.applicant + +import kr.co.vividnext.sodalive.common.ApiResponse +import org.springframework.security.access.prepost.PreAuthorize +import org.springframework.web.bind.annotation.DeleteMapping +import org.springframework.web.bind.annotation.PathVariable +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RestController + +@RestController +@PreAuthorize("hasRole('ADMIN')") +@RequestMapping("/admin/audition/applicant") +class AdminAuditionApplicantController(private val service: AdminAuditionApplicantService) { + @DeleteMapping("/{id}") + fun deleteAuditionApplicant(@PathVariable id: Long) = ApiResponse.ok( + service.deleteAuditionApplicant(id), + "삭제되었습니다." + ) +} diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantRepository.kt new file mode 100644 index 0000000..d94c11b --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantRepository.kt @@ -0,0 +1,6 @@ +package kr.co.vividnext.sodalive.admin.audition.applicant + +import kr.co.vividnext.sodalive.audition.AuditionApplicant +import org.springframework.data.jpa.repository.JpaRepository + +interface AdminAuditionApplicantRepository : JpaRepository diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantService.kt new file mode 100644 index 0000000..899c286 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/audition/applicant/AdminAuditionApplicantService.kt @@ -0,0 +1,17 @@ +package kr.co.vividnext.sodalive.admin.audition.applicant + +import kr.co.vividnext.sodalive.common.SodaException +import org.springframework.data.repository.findByIdOrNull +import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional + +@Service +class AdminAuditionApplicantService(private val repository: AdminAuditionApplicantRepository) { + @Transactional + fun deleteAuditionApplicant(id: Long) { + val applicant = repository.findByIdOrNull(id) + ?: throw SodaException("잘못된 요청입니다.") + + applicant.isActive = false + } +}