@RequiredArgsConstructor
@Transactional(readOnly = true)
@Service
public class AccountService {
.
.
.
@Transactional
public void 계좌삭제(Long number, Long userId) {
// 1. 계좌 DB 검증
Account accountPS = accountRepository.findByNumber(number).orElseThrow(
() -> new CustomApiException("계좌를 찾을 수 없습니다. "));
// 2. 계좌 소유자 DB 검증
accountPS.checkOwner(userId);
// 3. 계좌 삭제
accountRepository.deleteById(accountPS.getId());
}
@RequiredArgsConstructor
@RequestMapping("/api")
@RestController
public class AccountController {
.
.
.
@DeleteMapping("/s/account/{number}")
public ResponseEntity<?> deleteAcoount(@PathVariable Long number, @AuthenticationPrincipal LoginUser loginUser) {
accountService.계좌삭제(number, loginUser.getUser().getId());
return new ResponseEntity<>(new ResponseDto<>(1, "계좌삭제 성공", null), HttpStatus.OK);
}
여기서 주목할 점은 accountPS.checkOwner(userId); 이렇게 작성한 것