#include "wsfs/provider/request.h" #include #include "wsfs/provider/operation/error.h" struct wsfsp_request * wsfsp_request_create( struct wsfsp_request * prototype, int id) { struct wsfsp_request * request = malloc(sizeof(struct wsfsp_request)); if (NULL != request) { request->respond = prototype->respond; request->user_data = prototype->user_data; request->id = id; } return request; } void wsfsp_request_dispose( struct wsfsp_request * request) { free(request); } extern void wsfsp_respond( struct wsfsp_request * request, json_t * result) { json_t * response = json_object(); json_object_set_new(response, "result", result); json_object_set_new(response, "id", json_integer(request->id)); request->respond(response, request->user_data); json_decref(response); wsfsp_request_dispose(request); } void wsfsp_respond_error( struct wsfsp_request * request, wsfs_status status) { json_t * response = json_object(); json_t * error = json_object(); json_object_set_new(error, "code", json_integer(status)); json_object_set_new(response, "error", error); json_object_set_new(response, "id", json_integer(request->id)); request->respond(response, request->user_data); json_decref(response); wsfsp_request_dispose(request); }