package parkup.controllers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import parkup.entities.ParkingSpace; import parkup.services.ParkingSpaceService; import java.util.List; import java.util.Optional; @RestController public class ParkingSpaceController { private final ParkingSpaceService parkingSpaceService; @Autowired public ParkingSpaceController(ParkingSpaceService parkingSpaceService) { this.parkingSpaceService = parkingSpaceService; } @GetMapping({"/parkingSpace"}) public List getAllParkingSpaces() { return parkingSpaceService.getAllParkingSpaces(); } @GetMapping({"/parkingSpace/{parkingSpaceId}"}) public ParkingSpace getParkingSpace(@PathVariable int parkingSpaceId) { ParkingSpace parkingSpace = parkingSpaceService.findById(parkingSpaceId); if (parkingSpace != null) { return parkingSpace; } else { throw new RuntimeException("ParkingSpace not found"); } } @PostMapping({"/parkingSpace"}) public Optional addParkingSpace(@RequestBody ParkingSpace parkingSpace) { System.out.println("???????"); return this.parkingSpaceService.addParkingSpace(parkingSpace); } @PutMapping({"/parkingSpace/{parkingSpaceId}"}) public void updateParkingSpace(@PathVariable int parkingSpaceId, @RequestBody ParkingSpace parkingSpace) { parkingSpaceService.updateParkingSpace(parkingSpaceId, parkingSpace.getPsName(), parkingSpace.isTaken(), parkingSpace.isHandicaped(), parkingSpace.getLat(), parkingSpace.getLng()); } @DeleteMapping({"/parkingSpace/{parkingSpaceId}"}) public Optional deleteParkingSpace(@PathVariable int parkingSpaceId) { return this.parkingSpaceService.deleteParkingSpace(parkingSpaceId); } }