package parkup.controllers; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import parkup.data.Tablicka; 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"}) public List getAllParkingSessions() { return parkingSessionService.getAllParkingSessions(); } @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 int parkingZoneId) { return this.parkingSessionService.startParkingSession(tablicka,parkingZoneId); } // 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,@RequestParam int parkingZoneId){ return this.parkingSessionService.verifyParkingSession(parkingSessionId,parkingSpaceName,parkingZoneId); } @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); } }