diff --git a/src/main/java/de/ctdo/bunti/control/BuntiController.java b/src/main/java/de/ctdo/bunti/control/BuntiController.java index ae9f0f1..0374d7c 100644 --- a/src/main/java/de/ctdo/bunti/control/BuntiController.java +++ b/src/main/java/de/ctdo/bunti/control/BuntiController.java @@ -1,6 +1,7 @@ package de.ctdo.bunti.control; import de.ctdo.bunti.model.BuntiDevice; +import de.ctdo.bunti.model.Room; import java.util.Collection; import java.util.Map; @@ -12,4 +13,7 @@ public interface BuntiController { boolean updateDeviceData(int deviceId, Map options); + Collection getAllRooms(); + Room getRoomById(int roomId); + } diff --git a/src/main/java/de/ctdo/bunti/control/BuntiControllerImpl.java b/src/main/java/de/ctdo/bunti/control/BuntiControllerImpl.java index bca6fbb..9f99185 100644 --- a/src/main/java/de/ctdo/bunti/control/BuntiControllerImpl.java +++ b/src/main/java/de/ctdo/bunti/control/BuntiControllerImpl.java @@ -54,6 +54,16 @@ public class BuntiControllerImpl implements BuntiController, ApplicationEventPub return false; } + @Override + public Collection getAllRooms() { + return roomsDAO.getRooms(); + } + + @Override + public Room getRoomById(int roomId) { + return roomsDAO.getRoom(roomId); + } + @Override public Collection getAllDevices() { return devicesDAO.getAllDevices(); diff --git a/src/main/java/de/ctdo/bunti/web/RestController.java b/src/main/java/de/ctdo/bunti/web/RestController.java index a6ebce6..5e846a3 100644 --- a/src/main/java/de/ctdo/bunti/web/RestController.java +++ b/src/main/java/de/ctdo/bunti/web/RestController.java @@ -10,7 +10,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; -import javax.validation.Validator; import java.util.*; @Controller diff --git a/src/main/java/de/ctdo/bunti/web/RoomsController.java b/src/main/java/de/ctdo/bunti/web/RoomsController.java new file mode 100644 index 0000000..bddcb1b --- /dev/null +++ b/src/main/java/de/ctdo/bunti/web/RoomsController.java @@ -0,0 +1,38 @@ +package de.ctdo.bunti.web; + +import de.ctdo.bunti.control.BuntiController; +import de.ctdo.bunti.model.Room; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.Collection; + +@Controller +@RequestMapping(value = "/rooms") +public class RoomsController { + private static final Logger LOGGER = LoggerFactory.getLogger(RoomsController.class); + private BuntiController controller; + + + @Autowired + public final void setController(BuntiController controller) { + this.controller = controller; + } + + @RequestMapping(value = "", method = RequestMethod.GET) + public @ResponseBody Collection getAll() { + LOGGER.info("handle GET /rooms/" + " request"); + return controller.getAllRooms(); + } + + @RequestMapping(value = "/{id}", method = RequestMethod.GET) + public @ResponseBody + Room getDeviceById(@PathVariable("id") int id) { + LOGGER.info("handle GET /rooms/id" + id + " request"); + return controller.getRoomById(id); + } + +}