Эх сурвалжийг харах

making rest api better again

Fabien CHERET 5 жил өмнө
parent
commit
50d8423d95

+ 7 - 6
src/main/java/eu/fibane/parkingtoll/service/ParkingLotService.java

@@ -66,17 +66,13 @@ public class ParkingLotService {
 
         //check if there is available slots
         Layout layout = getLayoutByNameOrThrow(carSlotItem.getType(), parkingLot);
-        if(layout.getAvailable().get() == 0){
-            throw new ParkingIsFullException("Parking lot is full for this type of car");
-        }
+        isAvailableOrThrow(layout);
         //found & available spot
         synchronized (this){
             //double check locking
             parkingLot = findParkingLotByIdOrThrow(parkingLotId);
             layout = getLayoutByNameOrThrow(carSlotItem.getType(), parkingLot);
-            if(layout.getAvailable().get() == 0){
-                throw new ParkingIsFullException("Parking lot is full for this type of car");
-            }
+            isAvailableOrThrow(layout);
             Long slotId = layout.decrementAndGetID();
             carSlotItem.setSlot(slotId);
             carSlotItem.setParkingLotId(parkingLotId);
@@ -87,6 +83,11 @@ public class ParkingLotService {
         return carSlotItem;
     }
 
+    private void isAvailableOrThrow(Layout layout){
+        if(layout.getAvailable().get() == 0){
+            throw new ParkingIsFullException("Parking lot is full for this type of car");
+        }
+    }
 
     public ParkingLot updateParkingLot(Long parkingLotId, ParkingLot parkingLotItem) {
         //parking lot exists ?