def post(self, request): """Setup an event forwarder.""" try: data = yield from request.json() except ValueError: return self.json_message("No data received.", HTTP_BAD_REQUEST) try: host = data['host'] api_password = data['api_password'] except KeyError: return self.json_message("No host or api_password received.", HTTP_BAD_REQUEST) try: port = int(data['port']) if 'port' in data else None except ValueError: return self.json_message("Invalid value received for port.", HTTP_UNPROCESSABLE_ENTITY) api = rem.API(host, api_password, port) valid = yield from self.hass.loop.run_in_executor( None, api.validate_api) if not valid: return self.json_message("Unable to validate API.", HTTP_UNPROCESSABLE_ENTITY) if self.event_forwarder is None: self.event_forwarder = rem.EventForwarder(self.hass) self.event_forwarder.async_connect(api) return self.json_message("Event forwarding setup.")
def _handle_post_api_event_forward(handler, path_match, data): """Handle adding an event forwarding target.""" try: host = data['host'] api_password = data['api_password'] except KeyError: handler.write_json_message( "No host or api_password received.", HTTP_BAD_REQUEST) return try: port = int(data['port']) if 'port' in data else None except ValueError: handler.write_json_message( "Invalid value received for port", HTTP_UNPROCESSABLE_ENTITY) return api = rem.API(host, api_password, port) if not api.validate_api(): handler.write_json_message( "Unable to validate API", HTTP_UNPROCESSABLE_ENTITY) return if handler.server.event_forwarder is None: handler.server.event_forwarder = \ rem.EventForwarder(handler.server.hass) handler.server.event_forwarder.connect(api) handler.write_json_message("Event forwarding setup.")
def _handle_post_api_event_forward(self, path_match, data): """ Handles adding an event forwarding target. """ try: host = data['host'] api_password = data['api_password'] except KeyError: self._message("No host or api_password received.", HTTP_BAD_REQUEST) return try: port = int(data['port']) if 'port' in data else None except ValueError: self._message( "Invalid value received for port", HTTP_UNPROCESSABLE_ENTITY) return if self.server.event_forwarder is None: self.server.event_forwarder = \ rem.EventForwarder(self.server.hass) api = rem.API(host, api_password, port) self.server.event_forwarder.connect(api) self._message("Event forwarding setup.")