Package pl.put.poznan.buildingInfo.rest
Class BuildingController
- java.lang.Object
-
- pl.put.poznan.buildingInfo.rest.BuildingController
-
@RestController @RequestMapping("/buildings") public class BuildingController extends ObjectKontroler obslugujący operacje CRUD dla budynkow oraz dodatkowe obliczenia związane z ich wlaściwościami. Umozliwia zarządzanie budynkami, w tym dodawanie, aktualizowanie i usuwanie, a takze obliczanie sumarycznej powierzchni, kubatury, mocy oświetlenia i zuzycia energii.
-
-
Constructor Summary
Constructors Constructor Description BuildingController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BuildingaddBuilding(Building building)Dodaje nowy budynek do listy.voiddeleteBuilding(int buildingId)Usuwa budynek na podstawie jego identyfikatora.List<Building>getAllBuildings()Pobiera liste wszystkich budynkow.org.springframework.http.ResponseEntity<Map<String,Object>>getAreaOfBuilding(int buildingId)Oblicza lączną powierzchnie budynku i zwraca ją w formacie JSON.BuildinggetBuilding(int buildingId)Pobiera szczegoly konkretnego budynku na podstawie jego identyfikatora.org.springframework.http.ResponseEntity<Map<String,Object>>getCubeOfBuilding(int buildingId)Oblicza lączną kubature budynku i zwraca ją w formacie JSON.org.springframework.http.ResponseEntity<Map<String,Object>>getEnergyConsumption(int buildingId)Oblicza lączne zuzycie energii na ogrzewanie w budynku i zwraca je w formacie JSON.org.springframework.http.ResponseEntity<Map<String,Object>>getLightPowerOfBuilding(int buildingId)Oblicza lączną moc oświetlenia budynku i zwraca ją w formacie JSON.org.springframework.http.ResponseEntity<Map<String,Object>>getRoomsExceedingHeating(int buildingId, double energyLimit)Oblicza zuzycie energii cieplnej na m³ dla kazdego pomieszczenia w budynku i zwraca te, ktore przekraczają zadany limit.voidinit()Inicjalizuje przykladowe dane dotyczące budynkow po uruchomieniu aplikacji.BuildingupdateBuilding(int buildingId, Building updatedBuilding)Aktualizuje dane istniejącego budynku.
-
-
-
Method Detail
-
init
@PostConstruct public void init()
Inicjalizuje przykladowe dane dotyczące budynkow po uruchomieniu aplikacji.
-
getAllBuildings
@GetMapping("/all-buildings") public List<Building> getAllBuildings()Pobiera liste wszystkich budynkow.- Returns:
- lista wszystkich budynkow
-
getBuilding
@RequestMapping(value="/{buildingId}", method=GET, produces="application/json") public Building getBuilding(@PathVariable int buildingId)Pobiera szczegoly konkretnego budynku na podstawie jego identyfikatora.- Parameters:
buildingId- identyfikator budynku- Returns:
- szczegoly budynku
- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze nie istnieje
-
addBuilding
@RequestMapping(method=POST, consumes="application/json", produces="application/json") public Building addBuilding(@RequestBody Building building)Dodaje nowy budynek do listy.- Parameters:
building- obiekt budynku do dodania- Returns:
- dodany budynek
- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze juz istnieje
-
updateBuilding
@PutMapping("/{buildingId}") public Building updateBuilding(@PathVariable int buildingId, @RequestBody Building updatedBuilding)Aktualizuje dane istniejącego budynku.- Parameters:
buildingId- identyfikator budynku do aktualizacjiupdatedBuilding- zaktualizowane dane budynku- Returns:
- zaktualizowany budynek
-
deleteBuilding
@DeleteMapping("/{buildingId}") public void deleteBuilding(@PathVariable int buildingId)Usuwa budynek na podstawie jego identyfikatora.- Parameters:
buildingId- identyfikator budynku- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze nie istnieje
-
getAreaOfBuilding
@RequestMapping(value="/{buildingId}/area", method=GET, produces="application/json") public org.springframework.http.ResponseEntity<Map<String,Object>> getAreaOfBuilding(@PathVariable int buildingId)Oblicza lączną powierzchnie budynku i zwraca ją w formacie JSON.- Parameters:
buildingId- identyfikator budynku, dla ktorego ma zostac obliczona powierzchnia- Returns:
- ResponseEntity zawierający wartośc sumarycznej powierzchni budynku w formacie JSON
- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze nie istnieje
-
getCubeOfBuilding
@RequestMapping(value="/{buildingId}/cube", method=GET, produces="application/json") public org.springframework.http.ResponseEntity<Map<String,Object>> getCubeOfBuilding(@PathVariable int buildingId)Oblicza lączną kubature budynku i zwraca ją w formacie JSON.- Parameters:
buildingId- identyfikator budynku, dla ktorego ma zostac obliczona kubatura- Returns:
- ResponseEntity zawierający wartośc sumarycznej kubatury budynku w formacie JSON
- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze nie istnieje
-
getLightPowerOfBuilding
@RequestMapping(value="/{buildingId}/light-power", method=GET, produces="application/json") public org.springframework.http.ResponseEntity<Map<String,Object>> getLightPowerOfBuilding(@PathVariable int buildingId)Oblicza lączną moc oświetlenia budynku i zwraca ją w formacie JSON.- Parameters:
buildingId- identyfikator budynku, dla ktorego ma zostac obliczona moc oświetlenia.- Returns:
- ResponseEntity zawierający wartośc sumarycznej mocy oświetlenia budynku w formacie JSON
- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze nie istnieje
-
getEnergyConsumption
@RequestMapping(value="/{buildingId}/energy-consumption", method=GET, produces="application/json") public org.springframework.http.ResponseEntity<Map<String,Object>> getEnergyConsumption(@PathVariable int buildingId)Oblicza lączne zuzycie energii na ogrzewanie w budynku i zwraca je w formacie JSON.- Parameters:
buildingId- identyfikator budynku, dla ktorego ma zostac obliczone zuzycie energii na ogrzewanie.- Returns:
- ResponseEntity zawierający wartośc sumarycznego zuzycia energii na ogrzewanie w budynku w formacie JSON
- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze nie istnieje
-
getRoomsExceedingHeating
@RequestMapping(value="/{buildingId}/exceeding-heating", method=GET, produces="application/json") public org.springframework.http.ResponseEntity<Map<String,Object>> getRoomsExceedingHeating(@PathVariable int buildingId, @RequestParam double energyLimit)Oblicza zuzycie energii cieplnej na m³ dla kazdego pomieszczenia w budynku i zwraca te, ktore przekraczają zadany limit.- Parameters:
buildingId- ID budynku.energyLimit- Wartośc graniczna zuzycia energii cieplnej na m³.- Returns:
- Mapa z informacjami o pomieszczeniach przekraczających limit.
- Throws:
org.springframework.web.server.ResponseStatusException- jeśli budynek o podanym identyfikatorze nie istnieje
-
-