package parkup.controllers; import java.util.List; import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import parkup.configs.RegistrationRequest; import parkup.configs.RegistrationServiceRP; import parkup.entities.RegisteredUser; import parkup.services.RegisteredUserService; @RestController public class RegistriranParkiracController { private final RegisteredUserService registeredUserService; private final RegistrationServiceRP registrationServiceRP; @Autowired public RegistriranParkiracController(RegisteredUserService registeredUserService, RegistrationServiceRP registrationServiceRP) { this.registeredUserService = registeredUserService; this.registrationServiceRP = registrationServiceRP; } @GetMapping({"/registriranParkirac"}) public List getAllRegistriraniParkiraci() { return this.registeredUserService.getRegPark(); } @GetMapping({"/registriranParkirac/{regParkId}"}) public RegisteredUser getRegistriranParkirac(@PathVariable int regParkId) { RegisteredUser regPark = this.registeredUserService.findById(regParkId); if (regPark != null) { return regPark; } else { throw new RuntimeException("User not found"); } } @PostMapping({"/registriranParkirac"}) public Optional addRegistriranParkirac(@RequestBody RegisteredUser regPark) { return this.registeredUserService.addRegPark(regPark); } @PutMapping({"/registriranParkirac/{regParkId}"}) public RegisteredUser updateRegistriranParkirac(@PathVariable int regParkId, @RequestBody RegisteredUser regPark) { return this.registeredUserService.updateRegPark(regParkId, regPark.getName(), regPark.getSurname(), regPark.getMobile(), regPark.getEmail(),regPark.getPlates()); } @DeleteMapping({"/registriranParkirac/{regParkId}"}) public Optional deleteRegistriranParkirac(@PathVariable int regParkId) { return this.registeredUserService.deleteRegPark(regParkId); } @PostMapping({"/registriranParkirac/registration"}) public String register(@RequestBody RegistrationRequest request){ return registrationServiceRP.register(request); } @GetMapping(path = "/registriranParkirac/registration/confirm") public String confirm(@RequestParam("token") String token) { return registrationServiceRP.confirmToken(token); } }