This commit is contained in:
@@ -27,53 +27,56 @@
|
||||
|
||||
#include <event2/buffer.h>
|
||||
|
||||
#include "devices/devices_manager.h"
|
||||
#include <json.h>
|
||||
|
||||
#include "devices/devices_manager.h"
|
||||
#include "domo.h"
|
||||
#include "rest_devices_handlers.h"
|
||||
|
||||
// Code Description
|
||||
// 204 Success. No content.
|
||||
// 400 Bad request
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int outlet_create_handler(short event, restd_conn_t *conn, void *userdata)
|
||||
{
|
||||
if (event & RESTD_EVENT_INIT)
|
||||
printf("outlet_create_handler\n\n");
|
||||
if (event & RESTD_EVENT_CLOSE)
|
||||
{
|
||||
printf("==> RESTD_EVENT_INIT");
|
||||
off_t data_size;
|
||||
|
||||
// Attach to this connection.
|
||||
//ad_conn_set_userdata(conn, cdata, my_userdata_free_cb);
|
||||
data_size = restd_http_get_content_length(conn);
|
||||
printf("1/data size: %ld\n", data_size);
|
||||
if (data_size > 0)
|
||||
{
|
||||
char *data;
|
||||
struct json_object *root_node = NULL;
|
||||
|
||||
data = restd_http_get_content(conn, 0, &data_size);
|
||||
printf("2/data size: %ld\n", data_size);
|
||||
root_node = json_tokener_parse(data);
|
||||
free(data);
|
||||
|
||||
if (root_node != NULL)
|
||||
{
|
||||
int ret;
|
||||
devices_manager_t *dm;
|
||||
|
||||
ret = devices_manager_create(dm, kOutletEntry, root_node);
|
||||
json_object_put(root_node);
|
||||
if (ret == 0)
|
||||
{
|
||||
restd_http_response(conn, 204, "application/json", "{}", 2);
|
||||
return RESTD_CLOSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
restd_http_response(conn, 400, "application/json", "{\"status\":\"error\"}", 18);
|
||||
return RESTD_OK;
|
||||
}
|
||||
|
||||
else if (event & RESTD_EVENT_READ)
|
||||
{
|
||||
printf("==> RESTD_EVENT_READ");
|
||||
}
|
||||
|
||||
else if (event & RESTD_EVENT_CLOSE)
|
||||
{
|
||||
long int taille;
|
||||
char *data;
|
||||
data = restd_http_get_content(conn, 0, &taille);
|
||||
printf("******* : <%s>\n", data);
|
||||
free(data);
|
||||
}
|
||||
|
||||
#if 0
|
||||
devices_manager_t *dm = (devices_manager_t *)userdata;
|
||||
struct evbuffer *buffer;
|
||||
|
||||
size_t size = 0;
|
||||
void *data = restd_http_get_content(conn, 0, &size);
|
||||
|
||||
printf(">>>>>>>>>>>>>>>>>>>> %ld\n", size);
|
||||
|
||||
restd_http_response(conn, 200, "application/json", data, size);
|
||||
|
||||
//restd_http_response(conn, 200, "application/json", "{\"status\":\"error\"}", 18);
|
||||
|
||||
return RESTD_CLOSE; // Close connection.
|
||||
|
||||
#endif
|
||||
// Return AD_OK will let the hook loop to continue.
|
||||
return RESTD_OK;
|
||||
}
|
||||
|
||||
@@ -81,7 +84,9 @@ int outlet_create_handler(short event, restd_conn_t *conn, void *userdata)
|
||||
|
||||
int outlet_list_handler(short event, restd_conn_t *conn, void *userdata)
|
||||
{
|
||||
return 0;
|
||||
printf("outlet_list_handler\n\n");
|
||||
restd_http_response(conn, 200, "application/json", "{}", 2);
|
||||
return RESTD_CLOSE;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
@@ -59,10 +59,10 @@ int setup_rest_server(restd_server_t *rest_server, const char *port, const char
|
||||
|
||||
printf (">>>>>>>>>>\n");
|
||||
|
||||
restd_server_register_request_handler(rest_server, restd_rest_handler);
|
||||
//restd_server_register_request_handler(rest_server, restd_rest_handler);
|
||||
restd_server_register_error_handler(rest_server, my_error_handler);
|
||||
|
||||
restd_server_register_hook(rest_server, restd_http_handler, NULL);
|
||||
restd_server_register_hook(rest_server, restd_rest_handler, NULL);
|
||||
|
||||
// Capabilities.
|
||||
restd_server_register_hook_on_path(rest_server, "GET", "/api/v1/capabilities", NULL, dm);
|
||||
|
||||
Reference in New Issue
Block a user