@Context UriInfo localUriInfo;
@POST @Path("/{itemname: [a-zA-Z_0-9]*}")
@Consumes(MediaType.TEXT_PLAIN)
public Response postItemCommand(@PathParam("itemname") String itemname, String value) {
Item item = getItem(itemname);
Command command = null;
if(item!=null) {
// support for TOGGLE, see https://code.google.com/p/openhab/issues/detail?id=336
if("toggle".equalsIgnoreCase(value) &&
(item instanceof SwitchItem ||
item instanceof RollershutterItem)) {
if(OnOffType.ON.equals(item.getStateAs(OnOffType.class))) command = OnOffType.OFF;
if(OnOffType.OFF.equals(item.getStateAs(OnOffType.class))) command = OnOffType.ON;
if(UpDownType.UP.equals(item.getStateAs(UpDownType.class))) command = UpDownType.DOWN;
if(UpDownType.DOWN.equals(item.getStateAs(UpDownType.class))) command = UpDownType.UP;
} else {
command = TypeParser.parseCommand(item.getAcceptedCommandTypes(), value);
}
if(command!=null) {
logger.debug("Received HTTP POST request at '{}' with value '{}'.", uriInfo.getPath(), value);
RESTApplication.getEventPublisher().postCommand(itemname, command);
return Response.created(localUriInfo.getAbsolutePathBuilder().path("state").build()).build();