Spring/[P] 눈치우기 봉사활동 매칭 플랫폼

게시글 삭제하기

alsruds 2024. 2. 19. 21:08

 

게시글 데이터를 데이터베이스에서 삭제

 

☃️ Controller

@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping("/volunteers")
public class VolunteerController {
    private final VolunteerService volunteerService;

    // 봉사활동 구인글 삭제
    @DeleteMapping("/delete/{volunteerId}")
    public ResponseEntity<Void> deleteVolunteer(@PathVariable("volunteerId") Long volunteerId) {
        volunteerService.deleteVolunteer(volunteerId);
        return new ResponseEntity<>(HttpStatus.OK);
    }
}

 

· 삭제할 게시글의 id (volunteerId) 를 PathVariable 로 받기

 

☃️ Service

@Service
@RequiredArgsConstructor
@Slf4j
@Transactional
public class VolunteerService {
    private final VolunteerRepository volunteerRepository;

    // 봉사활동 구인글 삭제
    public void deleteVolunteer(Long volunteerId) {
        getVolunteerOrThrow(volunteerId);
        volunteerRepository.deleteById(volunteerId);
    }

    // 예외 처리 - 존재하는 봉사활동 구인글인지
    private Volunteer getVolunteerOrThrow(Long volunteerId) {
        return volunteerRepository.findById(volunteerId)
                .orElseThrow(() -> new CustomException(ErrorCode.NOT_FOUND_VOLUNTEER));
    }
}

 

· jparepository 기능으로 데이터 삭제하기

 

☃️ Repository

public interface VolunteerRepository extends JpaRepository<Volunteer, Long> {}