Skip to content

Commit 08fa6f4

Browse files
committed
<FIX> 예외처리 위치 변경에 따른 수정
1 parent 795a778 commit 08fa6f4

File tree

5 files changed

+22
-30
lines changed

5 files changed

+22
-30
lines changed

src/main/java/roomescape/reservation/business/ReservationService.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import roomescape.reservation.persistence.ReservationRepository;
88

99
import java.util.List;
10-
import java.util.Optional;
1110

1211
@Service
1312
@RequiredArgsConstructor
@@ -24,8 +23,8 @@ public List<Reservation> checkReservations() {
2423
return repository.findAll();
2524
}
2625

27-
public Optional<Reservation> deleteReservation(Long reservationId) {
28-
return repository.delete(reservationId);
26+
public void deleteReservation(Long reservationId) {
27+
repository.delete(reservationId);
2928
}
3029

3130
private Reservation convertToEntity(ReservationDto reservationDto) {

src/main/java/roomescape/reservation/persistence/JdbcReservationRepository.java

+7-12
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import org.springframework.jdbc.support.KeyHolder;
99
import org.springframework.stereotype.Repository;
1010
import roomescape.reservation.domain.Reservation;
11+
import roomescape.reservation.presentation.exception.NotFoundReservationException;
1112

1213
import java.sql.PreparedStatement;
1314
import java.util.List;
14-
import java.util.Optional;
1515

1616
@Repository
1717
@RequiredArgsConstructor
@@ -38,14 +38,13 @@ public Reservation save(Reservation reservation) {
3838
}
3939

4040
@Override
41-
public Optional<Reservation> findById(Long reservationId) {
41+
public Reservation findById(Long reservationId) {
4242
String sql = "select id, name, date, time from reservation where id = ?";
4343

4444
try {
45-
Reservation reservation = jdbcTemplate.queryForObject(sql, reservationMapper(), reservationId);
46-
return Optional.of(reservation);
45+
return jdbcTemplate.queryForObject(sql, reservationMapper(), reservationId);
4746
} catch (EmptyResultDataAccessException e) {
48-
return Optional.empty();
47+
throw new NotFoundReservationException();
4948
}
5049
}
5150

@@ -57,16 +56,12 @@ public List<Reservation> findAll() {
5756
}
5857

5958
@Override
60-
public Optional<Reservation> delete(Long reservationId) {
61-
Optional<Reservation> reservation = this.findById(reservationId);
62-
if (reservation.isEmpty()) {
63-
return Optional.empty();
64-
}
59+
public void delete(Long reservationId) {
60+
Reservation deletedReservation = this.findById(reservationId);
6561

6662
String sql = "delete from reservation where id = ?";
67-
jdbcTemplate.update(sql, reservationId);
63+
jdbcTemplate.update(sql, deletedReservation.getId());
6864

69-
return reservation;
7065
}
7166

7267
private RowMapper<Reservation> reservationMapper() {

src/main/java/roomescape/reservation/persistence/MemoryReservationRepository.java

+10-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package roomescape.reservation.persistence;
22

33
import roomescape.reservation.domain.Reservation;
4+
import roomescape.reservation.presentation.exception.NotFoundReservationException;
45

56
import java.util.ArrayList;
67
import java.util.List;
78
import java.util.Map;
8-
import java.util.Optional;
99
import java.util.concurrent.ConcurrentHashMap;
1010
import java.util.concurrent.atomic.AtomicLong;
1111

@@ -25,8 +25,12 @@ public Reservation save(Reservation reservation) {
2525
}
2626

2727
@Override
28-
public Optional<Reservation> findById(Long reservationId) {
29-
return Optional.ofNullable(reservationStore.get(reservationId));
28+
public Reservation findById(Long reservationId) {
29+
Reservation reservation = reservationStore.get(reservationId);
30+
if (reservation == null) {
31+
throw new NotFoundReservationException();
32+
}
33+
return reservation;
3034
}
3135

3236
@Override
@@ -35,9 +39,8 @@ public List<Reservation> findAll() {
3539
}
3640

3741
@Override
38-
public Optional<Reservation> delete(Long reservationId) {
39-
Optional<Reservation> reservation = findById(reservationId);
40-
41-
return Optional.ofNullable(reservationStore.remove(reservationId));
42+
public void delete(Long reservationId) {
43+
Reservation deletedReservation = this.findById(reservationId);
44+
reservationStore.remove(deletedReservation.getId());
4245
}
4346
}

src/main/java/roomescape/reservation/persistence/ReservationRepository.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
33
import roomescape.reservation.domain.Reservation;
44

55
import java.util.List;
6-
import java.util.Optional;
76

87
public interface ReservationRepository {
98

109
Reservation save(Reservation reservation);
1110

12-
Optional<Reservation> findById(Long reservationId);
11+
Reservation findById(Long reservationId);
1312

1413
List<Reservation> findAll();
1514

16-
public Optional<Reservation> delete(Long reservationId);
15+
void delete(Long reservationId);
1716

1817
}

src/main/java/roomescape/reservation/presentation/ReservationController.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66
import org.springframework.web.bind.annotation.*;
77
import roomescape.reservation.domain.Reservation;
88
import roomescape.reservation.presentation.dto.ReservationDto;
9-
import roomescape.reservation.presentation.exception.NotFoundReservationException;
109
import roomescape.reservation.business.ReservationService;
1110

1211
import java.net.URI;
1312
import java.util.List;
14-
import java.util.Optional;
1513

1614
@RestController
1715
@RequiredArgsConstructor
@@ -32,9 +30,7 @@ public ResponseEntity<Reservation> createReservation(@Valid @RequestBody Reserva
3230

3331
@DeleteMapping("/reservations/{reservationId}")
3432
public ResponseEntity<Void> deleteReservation(@PathVariable Long reservationId) {
35-
Reservation deletedReservation = reservationService.deleteReservation(reservationId)
36-
.orElseThrow(NotFoundReservationException::new);
37-
33+
reservationService.deleteReservation(reservationId);
3834
return ResponseEntity.noContent().build();
3935
}
4036
}

0 commit comments

Comments
 (0)