Skip to content

Commit

Permalink
Issue jmprathab#257 fix 500 error with adding 'AmenityBookingService'
Browse files Browse the repository at this point in the history
  • Loading branch information
DDmit04 committed Mar 10, 2021
1 parent bbaf696 commit 2b39fd7
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
public interface AmenityRepository extends JpaRepository<Amenity, Long> {

@Query("from Amenity amenity where amenity.amenityId = :amenityId")
@EntityGraph(value = "Amenity.community")
Optional<Amenity> findByAmenityIdWithCommunity(@Param("amenityId") String amenityId);
@EntityGraph(value = "Amenity.community_house")
Optional<Amenity> findByAmenityIdWithCommunityAndHouse(@Param("amenityId") String amenityId);

Optional<Amenity> findByAmenityId(String amenityId);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.myhome.services;

import com.myhome.domain.Amenity;
import com.myhome.domain.AmenityBookingItem;

import java.time.LocalDateTime;

public interface AmenityBookingService {
AmenityBookingItem bookAmenity(Amenity amenity, LocalDateTime bookingStartDate, LocalDateTime bookingEndDate);

boolean deleteBooking(String bookingId);

boolean removeAllAmenityBookings(String amenityID);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.myhome.services.springdatajpa;

import com.myhome.domain.Amenity;
import com.myhome.domain.AmenityBookingItem;
import com.myhome.repositories.AmenityBookingItemRepository;
import com.myhome.services.AmenityBookingService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.HashSet;

@Service
@RequiredArgsConstructor
public class AmenityBookingSDJpaService implements AmenityBookingService {

private final AmenityBookingItemRepository bookingItemRepository;

@Override
public AmenityBookingItem bookAmenity(Amenity amenity, LocalDateTime bookingStartDate, LocalDateTime bookingEndDate) {
AmenityBookingItem newBooking = new AmenityBookingItem(null, amenity,
bookingStartDate, bookingEndDate, null);
return bookingItemRepository.save(newBooking);
}

@Override
public boolean deleteBooking(String bookingId) {
return bookingItemRepository.findByAmenityBookingItemId(bookingId)
.map(bookingItem -> {
bookingItemRepository.delete(bookingItem);
return true;
})
.orElse(false);
}

@Override
public boolean removeAllAmenityBookings(String amenityId) {
HashSet<AmenityBookingItem> bookings = bookingItemRepository.findAllByAmenity_AmenityId(amenityId);
bookingItemRepository.deleteAll(bookings);
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,10 +70,13 @@ public Optional<Amenity> getAmenityDetails(String amenityId) {

@Override
public boolean deleteAmenity(String amenityId) {
return amenityRepository.findByAmenityIdWithCommunity(amenityId)
return amenityRepository.findByAmenityIdWithCommunityAndHouse(amenityId)
.map(amenity -> {
Community community = amenity.getCommunity();
community.getAmenities().remove(amenity);
amenityBookingService.removeAllAmenityBookings(amenity.getAmenityId());
if(amenity.getCommunityHouse() != null) {
houseService.removeAmenityFromHouse(amenity.getCommunityHouse(),
amenity.getAmenityId());
}
amenityRepository.delete(amenity);
return true;
})
Expand Down

0 comments on commit 2b39fd7

Please sign in to comment.