package parkup.controllers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import parkup.entities.ParkingSession; import parkup.services.ParkingSessionService; import java.util.List; import java.util.Optional; @RestController public class ParkingSessionController { private final ParkingSessionService parkingSessionService; @Autowired public ParkingSessionController(ParkingSessionService parkingSessionService) { this.parkingSessionService = parkingSessionService; } @GetMapping({"/parkingSession/{parkingZoneId}"}) public List getAllParkingSessions(@PathVariable Integer parkingZoneId) { return parkingSessionService.getAllParkingSessionsFromZone(parkingZoneId); } // @GetMapping({"/parkingSession/{parkingSessionId}"}) // public ParkingSession getParkingSession(@PathVariable int parkingSessionId) { // ParkingSession parkingSession = parkingSessionService.findById(parkingSessionId); // if (parkingSession != null) { // return parkingSession; // } else { // throw new RuntimeException("ParkingSession not found"); // } // } @PostMapping({"/parkingSession/{parkingZoneId}"}) public Optional startParkingSession(@RequestParam String tablicka, @PathVariable String parkingZoneName) { return this.parkingSessionService.startParkingSession(tablicka,parkingZoneName); } // TODO: vidi kako kje funkcionira update na sesija i nejzino plakjanje so frontot // @PutMapping({"/parkingSession/{parkingSessionId}"}) // public void updateParkingSession(@PathVariable int parkingSessionId, @RequestBody ParkingSession parkingSession) { // parkingSessionService.updateParkingSession(parkingSessionId, // parkingSession.getTimeStart(), parkingSession.getTimeEnd(), parkingSession.getTablica()); // } // @PutMapping({"/parkingSession/pay/{parkingSessionId"}) // public void payParkingSession(@PathVariable int parkingSessionId){ // parkingSessionService.paySession // } @PutMapping("/parkingSession/end/{parkingSessionId}") public ParkingSession endParkingSession(@PathVariable int parkingSessionId){ return this.parkingSessionService.endParkingSession(parkingSessionId); } @PutMapping("/parkingSession/verify/{parkingSessionId}") public ParkingSession verifyParkingSession(@PathVariable int parkingSessionId,@RequestParam String parkingSpaceName){ return this.parkingSessionService.verifyParkingSession(parkingSessionId,parkingSpaceName); } @GetMapping("/parkingSession/calculate/{parkingSessionId}") public int calculateParkingSession(@PathVariable int parkingSessionId){ return this.parkingSessionService.calculatePayment(parkingSessionId); } @PutMapping("/parkingSession/pay/{parkingSessionId}") public boolean payParkingSession(@PathVariable int parkingSessionId,@RequestParam String expireDate){ return this.parkingSessionService.payParkingSession(parkingSessionId,expireDate); } @DeleteMapping({"/parkingSession/{parkingSessionId}"}) public Optional deleteParkingSession(@PathVariable int parkingSessionId) { return this.parkingSessionService.deleteParkingSession(parkingSessionId); } }