1515@ Service
1616public class ReservationService {
1717
18- private final Map <Long , Reservation > reservationMap ;
1918 private final AtomicLong idCounter ;
2019 private ReservationRepository repository ;
2120
2221 public ReservationService (ReservationRepository repository ) {
2322 this .repository = repository ;
24- this .reservationMap = new HashMap <>();
2523 idCounter = new AtomicLong ();
2624 }
2725
@@ -69,7 +67,6 @@ public Reservation editReservation(Long id, Reservation reservationToEdit) {
6967 "Not found reservation: " + id
7068 ));
7169
72- var reservation = reservationMap .get (id );
7370 if (reservationEntity .getStatus () != ReservationStatus .PENDING )
7471 throw new NoSuchElementException ("Can't modify reservation. Status=" + reservationEntity .getStatus ());
7572 var editedReservation = new ReservationEntity (
@@ -81,8 +78,8 @@ public Reservation editReservation(Long id, Reservation reservationToEdit) {
8178 ReservationStatus .PENDING
8279 );
8380 var savedEntity = repository .save (editedReservation );
84- return toDomainReservation (savedEntity );
8581
82+ return toDomainReservation (savedEntity );
8683 }
8784
8885 public void deleteReservation (Long id ) {
@@ -110,12 +107,13 @@ public Reservation approveReservation(Long id) {
110107 }
111108
112109 private boolean isReservationConflict (ReservationEntity reservation ){
113- for (Reservation existingReservation : reservationMap .values ()){
114- if (reservation .getId ().equals (existingReservation .id ())) continue ;
115- if (reservation .getRoomId ().equals (existingReservation .roomId ())) continue ;
116- if (existingReservation .status ().equals (ReservationStatus .CONFIRMED )) continue ;
117- if (reservation .getStartDate ().isBefore (existingReservation .endDate ())
118- && existingReservation .startDate ().isBefore (reservation .getEndDate ()))
110+ var allReservations = repository .findAll ();
111+ for (ReservationEntity existingReservation : allReservations ){
112+ if (reservation .getId ().equals (existingReservation .getId ())) continue ;
113+ if (reservation .getRoomId ().equals (existingReservation .getRoomId ())) continue ;
114+ if (existingReservation .getStatus ().equals (ReservationStatus .CONFIRMED )) continue ;
115+ if (reservation .getStartDate ().isBefore (existingReservation .getEndDate ())
116+ && existingReservation .getStartDate ().isBefore (reservation .getEndDate ()))
119117 return true ;
120118 }
121119
0 commit comments