sprinkler / shutter WIP
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int update_device(restd_resp_t *response, devices_manager_t *dm, const char *capability);
|
||||||
int remove_device(restd_resp_t *response, devices_manager_t *dm, const char *capability);
|
int remove_device(restd_resp_t *response, devices_manager_t *dm, const char *capability);
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
@@ -149,43 +150,9 @@ int outlet_get_handler(restd_resp_t *response, void *arg)
|
|||||||
|
|
||||||
int outlet_update_handler(restd_resp_t *response, void *arg)
|
int outlet_update_handler(restd_resp_t *response, void *arg)
|
||||||
{
|
{
|
||||||
struct json_object *root_node = NULL;
|
|
||||||
char *data;
|
|
||||||
devices_manager_t *dm = (devices_manager_t *)arg;
|
devices_manager_t *dm = (devices_manager_t *)arg;
|
||||||
|
|
||||||
data = restd_http_get_body(response);
|
return update_device(response, dm, kOutletEntry);
|
||||||
|
|
||||||
if (data == NULL)
|
|
||||||
{
|
|
||||||
restd_http_response(response, 400, "application/json", kerror_body);
|
|
||||||
return RESTD_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
root_node = json_tokener_parse(data);
|
|
||||||
free(data);
|
|
||||||
|
|
||||||
if (root_node != NULL)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
if (response->has_parameter == true)
|
|
||||||
{
|
|
||||||
if (response->parameter_name != NULL)
|
|
||||||
{
|
|
||||||
json_object_object_add(root_node, response->parameter_name, json_object_new_int(response->parameter_value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = devices_manager_update(dm, kOutletEntry, root_node);
|
|
||||||
json_object_put(root_node);
|
|
||||||
if (ret == 0)
|
|
||||||
{
|
|
||||||
restd_http_response(response, 204, "application/json", kempty_body);
|
|
||||||
return RESTD_OK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
restd_http_response(response, 500, "application/json", kerror_body);
|
|
||||||
return RESTD_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
@@ -225,8 +192,10 @@ int sprinkler_get_handler(restd_resp_t *response, void *arg)
|
|||||||
|
|
||||||
int sprinkler_update_handler(restd_resp_t *response, void *arg)
|
int sprinkler_update_handler(restd_resp_t *response, void *arg)
|
||||||
{
|
{
|
||||||
#warning TODO
|
devices_manager_t *dm = (devices_manager_t *)arg;
|
||||||
return RESTD_OK;
|
|
||||||
|
return update_device(response, dm, kSprinklerEntry);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
@@ -266,8 +235,10 @@ int shutter_get_handler(restd_resp_t *response, void *arg)
|
|||||||
|
|
||||||
int shutter_update_handler(restd_resp_t *response, void *arg)
|
int shutter_update_handler(restd_resp_t *response, void *arg)
|
||||||
{
|
{
|
||||||
#warning TODO
|
devices_manager_t *dm = (devices_manager_t *)arg;
|
||||||
return RESTD_OK;
|
|
||||||
|
return update_device(response, dm, kShutterEntry);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
@@ -279,6 +250,49 @@ int shutter_remove_handler(restd_resp_t *response, void *arg)
|
|||||||
return remove_device(response, dm, kShutterEntry);
|
return remove_device(response, dm, kShutterEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
int update_device(restd_resp_t *response, devices_manager_t *dm, const char *capability)
|
||||||
|
{
|
||||||
|
struct json_object *root_node = NULL;
|
||||||
|
char *data;
|
||||||
|
|
||||||
|
data = restd_http_get_body(response);
|
||||||
|
|
||||||
|
if (data == NULL)
|
||||||
|
{
|
||||||
|
restd_http_response(response, 400, "application/json", kerror_body);
|
||||||
|
return RESTD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
root_node = json_tokener_parse(data);
|
||||||
|
free(data);
|
||||||
|
|
||||||
|
if (root_node != NULL)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
if (response->has_parameter == true)
|
||||||
|
{
|
||||||
|
if (response->parameter_name != NULL)
|
||||||
|
{
|
||||||
|
json_object_object_add(root_node, response->parameter_name, json_object_new_int(response->parameter_value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = devices_manager_update(dm, capability, root_node);
|
||||||
|
json_object_put(root_node);
|
||||||
|
if (ret == 0)
|
||||||
|
{
|
||||||
|
restd_http_response(response, 204, "application/json", kempty_body);
|
||||||
|
return RESTD_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
restd_http_response(response, 500, "application/json", kerror_body);
|
||||||
|
return RESTD_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
int remove_device(restd_resp_t *response, devices_manager_t *dm, const char *capability)
|
int remove_device(restd_resp_t *response, devices_manager_t *dm, const char *capability)
|
||||||
|
|||||||
Reference in New Issue
Block a user