diff options
author | Manuel Bachmann <manuel.bachmann@iot.bzh> | 2016-01-26 15:32:37 +0100 |
---|---|---|
committer | Manuel Bachmann <manuel.bachmann@iot.bzh> | 2016-01-26 15:32:37 +0100 |
commit | ae8e72788e8f2db33efea6045e5ee835266b10eb (patch) | |
tree | 7f2010696a61bed78c74b292996c1ec95b3ff249 /plugins | |
parent | f1a75365067fb89dd293aa2c8e003c3b041a3c9a (diff) |
Fix getPostFile() upload function, return bare JSON in list
getPostFile() does not fail anymore when creating a new
folder (return value was incorrect).
Media Plugin list API now directly returns JSON, with track
list array indexed as "list".
Signed-off-by: Manuel Bachmann <manuel.bachmann@iot.bzh>
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/media/media-api.c | 22 | ||||
-rw-r--r-- | plugins/media/media-api.h | 2 | ||||
-rw-r--r-- | plugins/media/media-rygel.c | 4 |
3 files changed, 19 insertions, 9 deletions
diff --git a/plugins/media/media-api.c b/plugins/media/media-api.c index 257b1cf1..e91eb39c 100644 --- a/plugins/media/media-api.c +++ b/plugins/media/media-api.c @@ -64,15 +64,12 @@ STATIC json_object* list (AFB_request *request) { /* AFB_SESSION_CHECK */ mediaCtxHandleT *ctx = (mediaCtxHandleT*)request->context; json_object *jresp; - char *result; - result = _rygel_list (ctx); + jresp = _rygel_list (ctx); - if (!result) + if (!jresp) return jsonNewMessage(AFB_FAIL, "No content found in media server"); - jresp = json_object_new_object(); - json_object_object_add(jresp, "list", json_object_new_string (result)); return jresp; } @@ -155,9 +152,11 @@ STATIC json_object* seek (AFB_request *request) { /* AFB_SESSION_CHECK */ return jsonNewMessage(AFB_SUCCESS, "Seeked media"); } -STATIC json_object* upload (AFB_request *request) { /* AFB_SESSION_CHECK */ +STATIC json_object* upload (AFB_request *request, AFB_PostItem *item) { /* AFB_SESSION_CHECK */ mediaCtxHandleT *ctx = (mediaCtxHandleT*)request->context; + AFB_PostCtx *postFileCtx; +#if 0 const char *value = getQueryValue (request, "value"); json_object *jresp; char path[256]; @@ -165,7 +164,17 @@ STATIC json_object* upload (AFB_request *request) { /* AFB_SESSION_CHECK */ /* no "?value=" parameter : return error */ if (!value) return jsonNewMessage(AFB_FAIL, "You must provide a file name"); +#endif + if (item == NULL) { + postFileCtx = getPostContext (request); + if (postFileCtx) { + postFileCtx->errcode = MHD_HTTP_OK; + postFileCtx->jresp = jsonNewMessage (AFB_SUCCESS, "upload=%s done", getPostPath (request)); + } + } + return getPostFile (request, item, "media"); +#if 0 snprintf (path, sizeof(path), "/tmp/%s", value); if (access (path, R_OK) == -1) return jsonNewMessage(AFB_FAIL, "File not found"); @@ -174,6 +183,7 @@ STATIC json_object* upload (AFB_request *request) { /* AFB_SESSION_CHECK */ return jsonNewMessage(AFB_FAIL, "Error when uploading file... could not complete"); return jsonNewMessage(AFB_SUCCESS, "File successfully uploaded"); +#endif } STATIC json_object* ping (AFB_request *request) { /* AFB_SESSION_NONE */ diff --git a/plugins/media/media-api.h b/plugins/media/media-api.h index 70dcc1e6..5a3cf9f0 100644 --- a/plugins/media/media-api.h +++ b/plugins/media/media-api.h @@ -29,6 +29,6 @@ typedef struct { unsigned int index; /* currently selected media file */ } mediaCtxHandleT; -PUBLIC char* _rygel_list (mediaCtxHandleT *); +PUBLIC json_object* _rygel_list (mediaCtxHandleT *); #endif /* MEDIA_API_H */ diff --git a/plugins/media/media-rygel.c b/plugins/media/media-rygel.c index be8cb96d..32969b2d 100644 --- a/plugins/media/media-rygel.c +++ b/plugins/media/media-rygel.c @@ -88,7 +88,7 @@ PUBLIC void _rygel_free (mediaCtxHandleT *ctx) { dev_ctx_c->content_res = NULL; } -PUBLIC char* _rygel_list (mediaCtxHandleT *ctx) { +PUBLIC json_object* _rygel_list (mediaCtxHandleT *ctx) { dev_ctx_T *dev_ctx_c = (dev_ctx_T*)ctx->media_server; json_object *json_o, *json_a; @@ -136,7 +136,7 @@ PUBLIC char* _rygel_list (mediaCtxHandleT *ctx) { json_object_object_add (json_o, "list", json_a); - return (char*) json_object_to_json_string (json_o); + return json_o; } PUBLIC unsigned char _rygel_select (mediaCtxHandleT *ctx, unsigned int index) { |