shutter and sprinkler: WIP

This commit is contained in:
NADAL Jean-Baptiste
2020-02-24 18:42:59 +01:00
parent 14e21088cd
commit 397320ffe9
3 changed files with 121 additions and 2 deletions

View File

@@ -38,6 +38,11 @@
// 204 Success. No content. // 204 Success. No content.
// 400 Bad request // 400 Bad request
/*--------------------------------------------------------------------------*/
int remove_device(restd_resp_t *response, devices_manager_t *dm, const char *capability);
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
int capabilities_handler(restd_resp_t *response, void *arg) int capabilities_handler(restd_resp_t *response, void *arg)
@@ -186,10 +191,100 @@ int outlet_update_handler(restd_resp_t *response, void *arg)
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
int outlet_remove_handler(restd_resp_t *response, void *arg) int outlet_remove_handler(restd_resp_t *response, void *arg)
{
devices_manager_t *dm = (devices_manager_t *)arg;
return remove_device(response, dm, kOutletEntry);
}
/*--------------------------------------------------------------------------*/
int sprinkler_create_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int sprinkler_list_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int sprinkler_get_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int sprinkler_update_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int sprinkler_remove_handler(restd_resp_t *response, void *arg)
{
devices_manager_t *dm = (devices_manager_t *)arg;
return remove_device(response, dm, kSprinklerEntry);
}
/*--------------------------------------------------------------------------*/
int shutter_create_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int shutter_list_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int shutter_get_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int shutter_update_handler(restd_resp_t *response, void *arg)
{
#warning TODO
return RESTD_OK;
}
/*--------------------------------------------------------------------------*/
int shutter_remove_handler(restd_resp_t *response, void *arg)
{
devices_manager_t *dm = (devices_manager_t *)arg;
return remove_device(response, dm, kShutterEntry);
}
/*--------------------------------------------------------------------------*/
int remove_device(restd_resp_t *response, devices_manager_t *dm, const char *capability)
{ {
struct json_object *root_node = NULL; struct json_object *root_node = NULL;
int ret; int ret;
devices_manager_t *dm = (devices_manager_t *)arg;
if (response->has_parameter == false) if (response->has_parameter == false)
{ {
@@ -197,7 +292,7 @@ int outlet_remove_handler(restd_resp_t *response, void *arg)
return RESTD_OK; return RESTD_OK;
} }
ret = devices_manager_delete(dm, kOutletEntry, response->parameter_value); ret = devices_manager_delete(dm, capability, response->parameter_value);
if (ret == 0) if (ret == 0)
restd_http_response(response, 204, "application/json", ""); restd_http_response(response, 204, "application/json", "");
else else

View File

@@ -44,4 +44,18 @@ extern int outlet_get_handler(restd_resp_t *response, void *arg);
extern int outlet_update_handler(restd_resp_t *response, void *arg); extern int outlet_update_handler(restd_resp_t *response, void *arg);
extern int outlet_remove_handler(restd_resp_t *response, void *arg); extern int outlet_remove_handler(restd_resp_t *response, void *arg);
// Sprinkler
extern int sprinkler_create_handler(restd_resp_t *response, void *arg);
extern int sprinkler_list_handler(restd_resp_t *response, void *arg);
extern int sprinkler_get_handler(restd_resp_t *response, void *arg);
extern int sprinkler_update_handler(restd_resp_t *response, void *arg);
extern int sprinkler_remove_handler(restd_resp_t *response, void *arg);
// Shutters
extern int shutter_create_handler(restd_resp_t *response, void *arg);
extern int shutter_list_handler(restd_resp_t *response, void *arg);
extern int shutter_get_handler(restd_resp_t *response, void *arg);
extern int shutter_update_handler(restd_resp_t *response, void *arg);
extern int shutter_remove_handler(restd_resp_t *response, void *arg);
#endif /*_REST_DEVICES_HANDLERS_H */ #endif /*_REST_DEVICES_HANDLERS_H */

View File

@@ -71,8 +71,18 @@ int setup_rest_server(restd_server_t *rest_server, const char *port, const char
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_DELETE, "/api/v1/outlets/:id", outlet_remove_handler, dm); restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_DELETE, "/api/v1/outlets/:id", outlet_remove_handler, dm);
// Sprinkler // Sprinkler
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_POST, "/api/v1/sprinklers", sprinkler_create_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_GET, "/api/v1/sprinklers", sprinkler_list_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_GET, "/api/v1/sprinklers/:id", sprinkler_get_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_PUT, "/api/v1/sprinklers/:id", sprinkler_update_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_DELETE, "/api/v1/sprinklers/:id", sprinkler_remove_handler, dm);
// Shutters // Shutters
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_POST, "/api/v1/shutters", shutter_create_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_GET, "/api/v1/shutters", shutter_list_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_GET, "/api/v1/shutters/:id", shutter_get_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_PUT, "/api/v1/shutters/:id", shutter_update_handler, dm);
restd_server_register_hook_on_path(rest_server, EVHTTP_REQ_DELETE, "/api/v1/shutters/:id", shutter_remove_handler, dm);
return 0; return 0;
} }