From 8206687629041309bcf70909e8328c18af6433df Mon Sep 17 00:00:00 2001 From: Patrick Boyd Date: Thu, 27 Sep 2018 13:46:11 -0500 Subject: [PATCH 1/2] Add getPayloadUri() --- include/redfishPayload.h | 10 +++++++++ src/payload.c | 47 +++++++++++++++++++++++++--------------- 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/include/redfishPayload.h b/include/redfishPayload.h index 46fc8fc..287a852 100644 --- a/include/redfishPayload.h +++ b/include/redfishPayload.h @@ -104,6 +104,16 @@ REDFISH_EXPORT char* getPayloadBody(redfishPayload* payload); */ REDFISH_EXPORT char* getPayloadContentType(redfishPayload* payload); +/** + * @brief Get the payload uri + * + * Get the payload uri (the @odata.id) + * + * @param payload The payload to return the URI of + * @return The uri + */ +REDFISH_EXPORT char* getPayloadUri(redfishPayload* payload); + /** * @brief Get the string value for the payload * diff --git a/src/payload.c b/src/payload.c index faa8ba7..2c06019 100644 --- a/src/payload.c +++ b/src/payload.c @@ -132,6 +132,27 @@ char* getPayloadContentType(redfishPayload* payload) return "application/json"; } +char* getPayloadUri(redfishPayload* payload) +{ + json_t* json; + + if(!payload) + { + return NULL; + } + + json = json_object_get(payload->json, "@odata.id"); + if(json == NULL) + { + json = json_object_get(target->json, "target"); + if(json == NULL) + { + return NULL; + } + } + return strdup(json_string_value(json)); +} + char* getPayloadStringValue(redfishPayload* payload) { json_t* tmp; @@ -388,13 +409,11 @@ redfishPayload* patchPayloadStringProperty(redfishPayload* payload, const char* { return NULL; } - - json = json_object_get(payload->json, "@odata.id"); - if(json == NULL) + uri = getPayloadUri(payload); + if(uri == NULL) { return NULL; } - uri = strdup(json_string_value(json)); json = json_object(); json2 = json_string(value); @@ -422,16 +441,11 @@ redfishPayload* postContentToPayload(redfishPayload* target, const char* data, s { return NULL; } - json = json_object_get(target->json, "@odata.id"); - if(json == NULL) + uri = getPayloadUri(target); + if(uri == NULL) { - json = json_object_get(target->json, "target"); - if(json == NULL) - { - return NULL; - } + return NULL; } - uri = strdup(json_string_value(json)); json = postUriFromService(target->service, uri, data, dataSize, contentType); free(uri); if(json == NULL) @@ -471,14 +485,11 @@ bool deletePayload(redfishPayload* payload) { return false; } - - json = json_object_get(payload->json, "@odata.id"); - if(json == NULL) + uri = getPayloadUri(payload); + if(uri == NULL) { - return false; + return NULL; } - uri = strdup(json_string_value(json)); - ret = deleteUriFromService(payload->service, uri); free(uri); return ret; From 72cbc4f451177b3ee2d3917c43ebe8f8370ae977 Mon Sep 17 00:00:00 2001 From: Patrick Boyd Date: Thu, 27 Sep 2018 13:48:37 -0500 Subject: [PATCH 2/2] Fix issues --- src/payload.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/payload.c b/src/payload.c index 2c06019..523a5d9 100644 --- a/src/payload.c +++ b/src/payload.c @@ -144,7 +144,7 @@ char* getPayloadUri(redfishPayload* payload) json = json_object_get(payload->json, "@odata.id"); if(json == NULL) { - json = json_object_get(target->json, "target"); + json = json_object_get(payload->json, "target"); if(json == NULL) { return NULL; @@ -477,7 +477,6 @@ redfishPayload* postPayload(redfishPayload* target, redfishPayload* payload) bool deletePayload(redfishPayload* payload) { - json_t* json; char* uri; bool ret; @@ -488,7 +487,7 @@ bool deletePayload(redfishPayload* payload) uri = getPayloadUri(payload); if(uri == NULL) { - return NULL; + return false; } ret = deleteUriFromService(payload->service, uri); free(uri);