Skip to content

Commit 9276b85

Browse files
committed
feat: rewrite isReservationConflict method in ReservationService.java using PostgreSql
1 parent faa9ee4 commit 9276b85

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

src/main/java/com/example/SorokinSpringBoot/ReservationService.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,11 @@
1515
@Service
1616
public 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

Comments
 (0)