package parkup.controllers; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import parkup.configs.RegistrationRequest; import parkup.configs.RegistrationService; import parkup.entities.Administrator; import parkup.services.AdministratorService; @RestController public class AdministratorController { private final AdministratorService administratorService; private final RegistrationService registrationService; @Autowired public AdministratorController(AdministratorService administratorService, RegistrationService registrationService) { this.administratorService = administratorService; this.registrationService = registrationService; } @GetMapping({"/administrator"}) public List getAllAdministrator() { return this.administratorService.getAllAdministrators(); } @GetMapping({"/administrator/{administratorId}"}) public Administrator getAdministrator(@PathVariable int administratorId) { Administrator administrator = this.administratorService.findById(administratorId); if (administrator != null) { return administrator; } else { throw new RuntimeException("Administrator not found"); } } @PostMapping({"/administrator"}) public void addAdministrator(@RequestBody Administrator administrator) { this.administratorService.addAdministrator(administrator); } @PutMapping({"/administrator/{administratorId}"}) public void updateAdministrator(@PathVariable int administratorId, @RequestBody Administrator administrator) { this.administratorService.updateAdministrator(administratorId, administrator.getFirstName(), administrator.getLastName(), administrator.getMobile(), administrator.getEmail()); } @DeleteMapping({"/administrator/{administratorId}"}) public void deleteAdministrator(@PathVariable int administratorId) { this.administratorService.deleteAdministrator(administratorId); } @PostMapping({"/administrator/registration"}) public String register(@RequestBody RegistrationRequest request){ return registrationService.register(request); } @GetMapping(path = "/administrator/registration/confirm") public String confirm(@RequestParam("token") String token) { return registrationService.confirmToken(token); } }