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 + } +}