package de.ctdo.bunti.web; import de.ctdo.bunti.control.BuntiController; import de.ctdo.bunti.model.BuntiDevice; import de.ctdo.bunti.webmodel.DeviceUpdate; import de.ctdo.bunti.webmodel.DeviceUpdates; 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 javax.validation.Validator; import java.util.*; @Controller @RequestMapping(value = "/control") public class RestController { private static final Logger LOGGER = LoggerFactory.getLogger(RestController.class); private BuntiController controller; @Autowired public final void setController(BuntiController controller) { this.controller = controller; } @RequestMapping(value = "/devices", method = RequestMethod.GET) public @ResponseBody Collection getAll() { LOGGER.info("handle GET /devices request"); return controller.getAllDevices(); } @RequestMapping(value = "/devices/{id}", method = RequestMethod.GET) public @ResponseBody BuntiDevice getDeviceById(@PathVariable("id") int id) { LOGGER.info("handle GET /devices/" + id + " request"); return controller.getDeviceById(id); } @RequestMapping(value = "/devices/{id}", method = RequestMethod.POST) public @ResponseBody BuntiDevice setDeviceById(@PathVariable("id") int id, @RequestBody DeviceUpdate update) { LOGGER.info("handle PUT /devices/" + id + " request update=" + update.toString() ); controller.updateDeviceData(id, update.getOptions()); return controller.getDeviceById(id); } @RequestMapping(value = "/devices", method = RequestMethod.POST) public String setDevices(@RequestBody DeviceUpdates updates) { LOGGER.info("handle PUT /devices" + " request update=" + updates.toString() ); for (DeviceUpdate update: updates.getUpdates()) { LOGGER.info("Update deviceId=" + update.getDeviceId()); controller.updateDeviceData(update.getDeviceId(), update.getOptions()); } return "bla"; } }