- return;
- }
- break;
- case OC_FORMAT_JSON:
- OIC_LOG(DEBUG, TAG, "Payload format is JSON");
- cJSON *payloadJson = cJSON_Parse((char *)httpResponse->payload);
- OCRepPayload* payloadCbor = OCRepPayloadCreate();
- if(!payloadCbor)
- {
+ break;
+ case OC_FORMAT_JSON:
+ OIC_LOG(DEBUG, TAG, "Payload format is JSON");
+ cJSON *payloadJson = cJSON_Parse((char *)httpResponse->payload);
+ if (!payloadJson)
+ {
+ OIC_LOG(ERROR, TAG, "Unable to parse json response");
+ response.ehResult = OC_EH_INTERNAL_SERVER_ERROR;
+ if (OCDoResponse(&response) != OC_STACK_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Error sending response");
+ }
+ return;
+ }
+ OCRepPayload* payloadCbor = OCRepPayloadCreate();
+ if (!payloadCbor)
+ {
+ response.ehResult = OC_EH_INTERNAL_SERVER_ERROR;
+ if (OCDoResponse(&response) != OC_STACK_OK)
+ {
+ OIC_LOG(ERROR, TAG, "Error sending response");
+ }
+ cJSON_Delete(payloadJson);
+ return;
+ }
+
+ CHPJsonToRepPayload(payloadJson, payloadCbor);
+ response.payload = (OCPayload *)payloadCbor;
+ cJSON_Delete(payloadJson);
+ break;
+ default:
+ OIC_LOG(ERROR, TAG, "Payload format is not supported");