Loading EtsiClientGen/patches/applyPatches.sh +5 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ patch -u ../model/encoding_information_structure.c -i fixCEncodingInformationStructure.patch patch -u ../model/error.c -i fixCError.patch patch -u ../model/trackable.c -i fixCTrackable.patch patch -u ../model/world_anchor.c -i fixCWorldAnchor.patch patch -u ../api/TrackablesAPI.c -i fixCTrackableAPI.patch patch -u ../model/trackable_type.c -i fixCTrackableType.patch patch -u ../api/WorldAnchorsAPI.c -i fixCWorldAnchorAPI.patch Loading @@ -12,6 +13,10 @@ patch -u ../model/trackable.h -i fixHeaderTrackable.patch patch -u ../model/trackable_type.h -i fixHeaderTrackableType.patch patch -u ../model/unit_system.h -i fixHeaderUnitSystem.patch patch -u ../model/world_link.h -i fixHeaderWorldLink.patch patch -u ../api/RelocalizationInformationAPI.c -i fixRelocalizationInformationAPI.patch patch -u ../model/unit_system.c -i fixCUnitSystem.patch patch -u ../model/type_world_storage.c -i fixCTypeWorldStorage.patch patch -u ../model/type_world_storage.h -i fixHeaderTypeWorldStorage.patch Loading EtsiClientGen/patches/fixCEncodingInformationStructure.patch +5 −3 Original line number Diff line number Diff line --- encoding_information_structure_origin.c 2024-05-28 14:41:34.817357145 +0200 +++ encoding_information_structure.c 2024-05-22 18:34:03.566752000 +0200 @@ -56,7 +56,7 @@ diff --git a/EtsiClientGen/model/encoding_information_structure.c b/../../world-storage-c-client/EtsiClientGen/model/encoding_information_structure.c index 1deb8f5..fb66a4f 100644 --- a/EtsiClientGen/model/encoding_information_structure.c +++ b/../../world-storage-c-client/EtsiClientGen/model/encoding_information_structure.c @@ -56,7 +56,7 @@ cJSON *encoding_information_structure_convertToJSON(encoding_information_structu if (world_storage_api_encoding_information_structure_DATAFORMAT_NULL == encoding_information_structure->data_format) { goto fail; } Loading EtsiClientGen/patches/fixCTrackable.patch +225 −7 Original line number Diff line number Diff line --- trackable_origin.c 2024-05-28 14:41:34.877357153 +0200 +++ trackable.c 2024-05-22 18:50:02.874278000 +0200 diff --git a/EtsiClientGen/model/trackable.c b/../../world-storage-c-client/EtsiClientGen/model/trackable.c index 1a27417..f26b4d7 100644 --- a/EtsiClientGen/model/trackable.c +++ b/../../world-storage-c-client/EtsiClientGen/model/trackable.c @@ -3,42 +3,6 @@ #include <stdio.h> #include "trackable.h" Loading Loading @@ -43,7 +45,15 @@ trackable_t *trackable_create( char *uuid, char *name, @@ -162,10 +126,10 @@ @@ -154,6 +118,7 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { // trackable->creator_uuid if (!trackable->creator_uuid) { + goto fail; } if(cJSON_AddStringToObject(item, "creatorUUID", trackable->creator_uuid) == NULL) { @@ -162,18 +127,25 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { // trackable->trackable_type Loading @@ -56,7 +66,41 @@ if(trackable_type_local_JSON == NULL) { goto fail; // custom } @@ -217,10 +181,10 @@ - cJSON_AddItemToObject(item, "trackableType", trackable_type_local_JSON); + + char *type_str = cJSON_GetStringValue(trackable_type_local_JSON); + if (type_str == NULL) { + goto fail; + } + if (cJSON_AddStringToObject(item, "trackableType", type_str) == NULL) { + goto fail; + } if(item->child == NULL) { goto fail; } - + // trackable->trackable_encoding_information if (!trackable->trackable_encoding_information) { @@ -188,14 +160,14 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { goto fail; } - +/* // trackable->trackable_payload if (!trackable->trackable_payload) { goto fail; } if(cJSON_AddStringToObject(item, "trackablePayload", trackable->trackable_payload) == NULL) { goto fail; //ByteArray - } + }*/ // trackable->local_crs @@ -217,14 +189,21 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { // trackable->unit Loading @@ -66,19 +110,136 @@ } - cJSON *unit_local_JSON = unit_system_convertToJSON(trackable->unit); + cJSON *unit_local_JSON = unit_system_unit_system_convertToJSON(*trackable->unit); + if(unit_local_JSON == NULL) { goto fail; // custom } @@ -342,7 +306,7 @@ - cJSON_AddItemToObject(item, "unit", unit_local_JSON); + char *unit_str = cJSON_GetStringValue(unit_local_JSON); + if (unit_str == NULL) { + goto fail; + } + if (cJSON_AddStringToObject(item, "unit", unit_str) == NULL) { + goto fail; + } if(item->child == NULL) { goto fail; } @@ -243,11 +222,12 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(trackable_sizeListEntry, trackable->trackable_size) { if(cJSON_AddNumberToObject(trackable_size, "", *(double *)trackable_sizeListEntry->data) == NULL) { + goto fail; } } - + /* // trackable->keyvalue_tags if (!trackable->keyvalue_tags) { goto fail; @@ -262,7 +242,7 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(keyvalue_tagsListEntry, trackable->keyvalue_tags) { keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; } - } + }*/ // trackable->confidence @@ -305,12 +285,16 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ // trackable->uuid cJSON *uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "UUID"); if (uuid) { + if(!cJSON_IsString(uuid) && !cJSON_IsNull(uuid)) + { + goto end; //String - } + } + } // trackable->name cJSON *name = cJSON_GetObjectItemCaseSensitive(trackableJSON, "name"); if (!name) { @@ -322,7 +306,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } - // trackable->creator_uuid cJSON *creator_uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "creatorUUID"); if (!creator_uuid) { @@ -334,7 +317,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } - + trackable_type_local_nonprim = (trackable_type_t *)malloc(sizeof(trackable_type_t)); // trackable->trackable_type cJSON *trackable_type = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableType"); if (!trackable_type) { @@ -342,35 +325,38 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } - trackable_type_local_nonprim = trackable_type_parseFromJSON(trackable_type); //custom - + *trackable_type_local_nonprim = trackable_type_trackable_type_parseFromJSON(trackable_type); //custom // trackable->trackable_encoding_information cJSON *trackable_encoding_information = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableEncodingInformation"); @@ -400,7 +364,7 @@ if (!trackable_encoding_information) { goto end; } - + trackable_encoding_information_local_nonprim = encoding_information_structure_parseFromJSON(trackable_encoding_information); //nonprimitive - // trackable->trackable_payload - cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); - if (!trackable_payload) { + /* cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); + + if (!trackable_payload) { goto end; } + + + if(!cJSON_IsString(trackable_payload)) { goto end; //ByteArray - } + } +*/ // trackable->local_crs cJSON *local_crs = cJSON_GetObjectItemCaseSensitive(trackableJSON, "localCRS"); if (!local_crs) { goto end; } - + cJSON *local_crs_local = NULL; if(!cJSON_IsArray(local_crs)) { @@ -392,15 +378,15 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *local_crs_local_value = local_crs_local->valuedouble; list_addElement(local_crsList , local_crs_local_value); } - // trackable->unit + unit_local_nonprim = (unit_system_t *)malloc(sizeof(unit_system_t)); cJSON *unit = cJSON_GetObjectItemCaseSensitive(trackableJSON, "unit"); if (!unit) { goto end; } Loading @@ -87,3 +248,60 @@ // trackable->trackable_size cJSON *trackable_size = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableSize"); @@ -429,7 +415,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *trackable_size_local_value = trackable_size_local->valuedouble; list_addElement(trackable_sizeList , trackable_size_local_value); } - + /* // trackable->keyvalue_tags cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); if (!keyvalue_tags) { @@ -452,7 +438,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ list_addElement(keyvalue_tagsList , localMapKeyPair); } } - + */ // trackable->confidence cJSON *confidence = cJSON_GetObjectItemCaseSensitive(trackableJSON, "confidence"); if (confidence) { @@ -462,25 +448,24 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } } - trackable_local_var = trackable_create ( uuid && !cJSON_IsNull(uuid) ? strdup(uuid->valuestring) : NULL, strdup(name->valuestring), strdup(creator_uuid->valuestring), trackable_type_local_nonprim, trackable_encoding_information_local_nonprim, - strdup(trackable_payload->valuestring), + NULL,//strdup(trackable_payload->valuestring), local_crsList, unit_local_nonprim, trackable_sizeList, - keyvalue_tagsList, - confidence ? confidence->valuedouble : 0 + NULL,//keyvalue_tagsList, + confidence ? confidence->valuedouble : 0.0 ); return trackable_local_var; end: if (trackable_type_local_nonprim) { - trackable_type_free(trackable_type_local_nonprim); + free(trackable_type_local_nonprim); trackable_type_local_nonprim = NULL; } if (trackable_encoding_information_local_nonprim) { @@ -497,7 +482,7 @@ end: local_crsList = NULL; } if (unit_local_nonprim) { - unit_system_free(unit_local_nonprim); + free(unit_local_nonprim); unit_local_nonprim = NULL; } if (trackable_sizeList) { EtsiClientGen/patches/fixCTrackableAPI.patch +106 −4 Original line number Diff line number Diff line --- TrackablesAPI_origin.c 2024-05-17 23:00:40.039961617 +0200 +++ TrackablesAPI.c 2024-05-17 23:18:05.808565009 +0200 @@ -151,16 +151,7 @@ diff --git a/EtsiClientGen/api/TrackablesAPI.c b/../../world-storage-c-client/EtsiClientGen/api/TrackablesAPI.c index f639313..e9b01f3 100644 --- a/EtsiClientGen/api/TrackablesAPI.c +++ b/../../world-storage-c-client/EtsiClientGen/api/TrackablesAPI.c @@ -57,6 +57,8 @@ TrackablesAPI_addTrackable(apiClient_t *apiClient, trackable_t *trackable, char list_addElement(localVarHeaderType,"text/plain"); //produces list_addElement(localVarHeaderType,"application/json"); //produces list_addElement(localVarContentType,"application/json"); //consumes + + apiClient_invoke(apiClient, localVarPath, localVarQueryParameters, @@ -68,25 +70,25 @@ TrackablesAPI_addTrackable(apiClient_t *apiClient, trackable_t *trackable, char "POST"); // uncomment below to debug the error response - //if (apiClient->response_code == 200) { + if (apiClient->response_code == 200) { // printf("%s\n","OK, return the UUID of the Trackable defined by the world storage."); - //} + } // uncomment below to debug the error response - //if (apiClient->response_code == 201) { - // printf("%s\n","Null response."); - //} + if (apiClient->response_code == 201) { + printf("%s\n","Null response."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 400) { - // printf("%s\n","Bad request."); - //} + if (apiClient->response_code == 400) { + printf("%s\n","Bad request."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 409) { - // printf("%s\n","Invalid UUID, id must be a Nil value."); - //} + if (apiClient->response_code == 409) { + printf("%s\n","Invalid UUID, id must be a Nil value."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 0) { - // printf("%s\n","Unexpected error."); - //} + if (apiClient->response_code == 0) { + printf("%s\n","Unexpected error."); + } //primitive return type simple char* elementToReturn = strdup((char*)apiClient->dataReceived); @@ -95,7 +97,6 @@ TrackablesAPI_addTrackable(apiClient_t *apiClient, trackable_t *trackable, char apiClient->dataReceived = NULL; apiClient->dataReceivedLen = 0; } - list_freeList(localVarHeaderParameters); list_freeList(localVarHeaderType); @@ -151,16 +152,7 @@ TrackablesAPI_deleteTrackable(apiClient_t *apiClient, char *trackableUUID, char sprintf(localVarToReplace_trackableUUID, "{%s}", "trackableUUID"); localVarPath = strReplace(localVarPath, localVarToReplace_trackableUUID, trackableUUID); Loading @@ -18,7 +77,7 @@ // header parameters char *keyHeader_token = NULL; char * valueHeader_token = 0; @@ -255,15 +246,6 @@ @@ -255,15 +247,6 @@ TrackablesAPI_getTrackableById(apiClient_t *apiClient, char *trackableUUID, char sprintf(localVarToReplace_trackableUUID, "{%s}", "trackableUUID"); localVarPath = strReplace(localVarPath, localVarToReplace_trackableUUID, trackableUUID); Loading @@ -34,3 +93,46 @@ // header parameters char *keyHeader_token = NULL; @@ -289,25 +272,25 @@ TrackablesAPI_getTrackableById(apiClient_t *apiClient, char *trackableUUID, char "GET"); // uncomment below to debug the error response - //if (apiClient->response_code == 200) { + if (apiClient->response_code == 200) { // printf("%s\n","Successful operation."); - //} + } // uncomment below to debug the error response - //if (apiClient->response_code == 400) { - // printf("%s\n","Invalid UUID supplied."); - //} + if (apiClient->response_code == 400) { + printf("%s\n","Invalid UUID supplied."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 404) { - // printf("%s\n","Not found, could not find UUID in database."); - //} + if (apiClient->response_code == 404) { + printf("%s\n","Not found, could not find UUID in database."); + } //nonprimitive not container cJSON *TrackablesAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + char *localVarJSONToChar = cJSON_Print(TrackablesAPIlocalVarJSON); trackable_t *elementToReturn = trackable_parseFromJSON(TrackablesAPIlocalVarJSON); cJSON_Delete(TrackablesAPIlocalVarJSON); if(elementToReturn == NULL) { // return 0; } - //return type if (apiClient->dataReceived) { free(apiClient->dataReceived); @@ -330,6 +313,7 @@ TrackablesAPI_getTrackableById(apiClient_t *apiClient, char *trackableUUID, char valueHeader_token = NULL; } free(keyPairHeader_token); + return elementToReturn; end: free(localVarPath); EtsiClientGen/patches/fixCTrackableType.patch +30 −0 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/trackable_type.c b/../../world-storage-c-client/EtsiClientGen/model/trackable_type.c index b8d748c..042a746 100644 --- a/EtsiClientGen/model/trackable_type.c +++ b/../../world-storage-c-client/EtsiClientGen/model/trackable_type.c @@ -23,8 +23,8 @@ world_storage_api_trackable_type__e trackable_type_trackable_type_FromString(cha } cJSON *trackable_type_trackable_type_convertToJSON(world_storage_api_trackable_type__e trackable_type) { - cJSON *item = cJSON_CreateObject(); - if(cJSON_AddStringToObject(item, "trackable_type", trackable_type_trackable_type_ToString(trackable_type)) == NULL) { + cJSON *item =cJSON_CreateString(trackable_type_trackable_type_ToString(trackable_type));; + if(item == NULL) { goto fail; } return item; @@ -36,11 +36,11 @@ fail: world_storage_api_trackable_type__e trackable_type_trackable_type_parseFromJSON(cJSON *trackable_typeJSON) { world_storage_api_trackable_type__e *trackable_type = NULL; world_storage_api_trackable_type__e trackable_typeVariable; - cJSON *trackable_typeVar = cJSON_GetObjectItemCaseSensitive(trackable_typeJSON, "trackable_type"); - if(!cJSON_IsString(trackable_typeVar) || (trackable_typeVar->valuestring == NULL)){ + cJSON *trackable_typeVar = cJSON_GetObjectItemCaseSensitive(trackable_typeJSON, "trackableType"); + if(!cJSON_IsString(trackable_typeJSON)){ goto end; } - trackable_typeVariable = trackable_type_trackable_type_FromString(trackable_typeVar->valuestring); + trackable_typeVariable = trackable_type_trackable_type_FromString(trackable_typeJSON->valuestring); return trackable_typeVariable; end: return 0; Loading
EtsiClientGen/patches/applyPatches.sh +5 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ patch -u ../model/encoding_information_structure.c -i fixCEncodingInformationStructure.patch patch -u ../model/error.c -i fixCError.patch patch -u ../model/trackable.c -i fixCTrackable.patch patch -u ../model/world_anchor.c -i fixCWorldAnchor.patch patch -u ../api/TrackablesAPI.c -i fixCTrackableAPI.patch patch -u ../model/trackable_type.c -i fixCTrackableType.patch patch -u ../api/WorldAnchorsAPI.c -i fixCWorldAnchorAPI.patch Loading @@ -12,6 +13,10 @@ patch -u ../model/trackable.h -i fixHeaderTrackable.patch patch -u ../model/trackable_type.h -i fixHeaderTrackableType.patch patch -u ../model/unit_system.h -i fixHeaderUnitSystem.patch patch -u ../model/world_link.h -i fixHeaderWorldLink.patch patch -u ../api/RelocalizationInformationAPI.c -i fixRelocalizationInformationAPI.patch patch -u ../model/unit_system.c -i fixCUnitSystem.patch patch -u ../model/type_world_storage.c -i fixCTypeWorldStorage.patch patch -u ../model/type_world_storage.h -i fixHeaderTypeWorldStorage.patch Loading
EtsiClientGen/patches/fixCEncodingInformationStructure.patch +5 −3 Original line number Diff line number Diff line --- encoding_information_structure_origin.c 2024-05-28 14:41:34.817357145 +0200 +++ encoding_information_structure.c 2024-05-22 18:34:03.566752000 +0200 @@ -56,7 +56,7 @@ diff --git a/EtsiClientGen/model/encoding_information_structure.c b/../../world-storage-c-client/EtsiClientGen/model/encoding_information_structure.c index 1deb8f5..fb66a4f 100644 --- a/EtsiClientGen/model/encoding_information_structure.c +++ b/../../world-storage-c-client/EtsiClientGen/model/encoding_information_structure.c @@ -56,7 +56,7 @@ cJSON *encoding_information_structure_convertToJSON(encoding_information_structu if (world_storage_api_encoding_information_structure_DATAFORMAT_NULL == encoding_information_structure->data_format) { goto fail; } Loading
EtsiClientGen/patches/fixCTrackable.patch +225 −7 Original line number Diff line number Diff line --- trackable_origin.c 2024-05-28 14:41:34.877357153 +0200 +++ trackable.c 2024-05-22 18:50:02.874278000 +0200 diff --git a/EtsiClientGen/model/trackable.c b/../../world-storage-c-client/EtsiClientGen/model/trackable.c index 1a27417..f26b4d7 100644 --- a/EtsiClientGen/model/trackable.c +++ b/../../world-storage-c-client/EtsiClientGen/model/trackable.c @@ -3,42 +3,6 @@ #include <stdio.h> #include "trackable.h" Loading Loading @@ -43,7 +45,15 @@ trackable_t *trackable_create( char *uuid, char *name, @@ -162,10 +126,10 @@ @@ -154,6 +118,7 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { // trackable->creator_uuid if (!trackable->creator_uuid) { + goto fail; } if(cJSON_AddStringToObject(item, "creatorUUID", trackable->creator_uuid) == NULL) { @@ -162,18 +127,25 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { // trackable->trackable_type Loading @@ -56,7 +66,41 @@ if(trackable_type_local_JSON == NULL) { goto fail; // custom } @@ -217,10 +181,10 @@ - cJSON_AddItemToObject(item, "trackableType", trackable_type_local_JSON); + + char *type_str = cJSON_GetStringValue(trackable_type_local_JSON); + if (type_str == NULL) { + goto fail; + } + if (cJSON_AddStringToObject(item, "trackableType", type_str) == NULL) { + goto fail; + } if(item->child == NULL) { goto fail; } - + // trackable->trackable_encoding_information if (!trackable->trackable_encoding_information) { @@ -188,14 +160,14 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { goto fail; } - +/* // trackable->trackable_payload if (!trackable->trackable_payload) { goto fail; } if(cJSON_AddStringToObject(item, "trackablePayload", trackable->trackable_payload) == NULL) { goto fail; //ByteArray - } + }*/ // trackable->local_crs @@ -217,14 +189,21 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { // trackable->unit Loading @@ -66,19 +110,136 @@ } - cJSON *unit_local_JSON = unit_system_convertToJSON(trackable->unit); + cJSON *unit_local_JSON = unit_system_unit_system_convertToJSON(*trackable->unit); + if(unit_local_JSON == NULL) { goto fail; // custom } @@ -342,7 +306,7 @@ - cJSON_AddItemToObject(item, "unit", unit_local_JSON); + char *unit_str = cJSON_GetStringValue(unit_local_JSON); + if (unit_str == NULL) { + goto fail; + } + if (cJSON_AddStringToObject(item, "unit", unit_str) == NULL) { + goto fail; + } if(item->child == NULL) { goto fail; } @@ -243,11 +222,12 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(trackable_sizeListEntry, trackable->trackable_size) { if(cJSON_AddNumberToObject(trackable_size, "", *(double *)trackable_sizeListEntry->data) == NULL) { + goto fail; } } - + /* // trackable->keyvalue_tags if (!trackable->keyvalue_tags) { goto fail; @@ -262,7 +242,7 @@ cJSON *trackable_convertToJSON(trackable_t *trackable) { list_ForEach(keyvalue_tagsListEntry, trackable->keyvalue_tags) { keyValuePair_t *localKeyValue = (keyValuePair_t*)keyvalue_tagsListEntry->data; } - } + }*/ // trackable->confidence @@ -305,12 +285,16 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ // trackable->uuid cJSON *uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "UUID"); if (uuid) { + if(!cJSON_IsString(uuid) && !cJSON_IsNull(uuid)) + { + goto end; //String - } + } + } // trackable->name cJSON *name = cJSON_GetObjectItemCaseSensitive(trackableJSON, "name"); if (!name) { @@ -322,7 +306,6 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } - // trackable->creator_uuid cJSON *creator_uuid = cJSON_GetObjectItemCaseSensitive(trackableJSON, "creatorUUID"); if (!creator_uuid) { @@ -334,7 +317,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ { goto end; //String } - + trackable_type_local_nonprim = (trackable_type_t *)malloc(sizeof(trackable_type_t)); // trackable->trackable_type cJSON *trackable_type = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableType"); if (!trackable_type) { @@ -342,35 +325,38 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } - trackable_type_local_nonprim = trackable_type_parseFromJSON(trackable_type); //custom - + *trackable_type_local_nonprim = trackable_type_trackable_type_parseFromJSON(trackable_type); //custom // trackable->trackable_encoding_information cJSON *trackable_encoding_information = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableEncodingInformation"); @@ -400,7 +364,7 @@ if (!trackable_encoding_information) { goto end; } - + trackable_encoding_information_local_nonprim = encoding_information_structure_parseFromJSON(trackable_encoding_information); //nonprimitive - // trackable->trackable_payload - cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); - if (!trackable_payload) { + /* cJSON *trackable_payload = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackablePayload"); + + if (!trackable_payload) { goto end; } + + + if(!cJSON_IsString(trackable_payload)) { goto end; //ByteArray - } + } +*/ // trackable->local_crs cJSON *local_crs = cJSON_GetObjectItemCaseSensitive(trackableJSON, "localCRS"); if (!local_crs) { goto end; } - + cJSON *local_crs_local = NULL; if(!cJSON_IsArray(local_crs)) { @@ -392,15 +378,15 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *local_crs_local_value = local_crs_local->valuedouble; list_addElement(local_crsList , local_crs_local_value); } - // trackable->unit + unit_local_nonprim = (unit_system_t *)malloc(sizeof(unit_system_t)); cJSON *unit = cJSON_GetObjectItemCaseSensitive(trackableJSON, "unit"); if (!unit) { goto end; } Loading @@ -87,3 +248,60 @@ // trackable->trackable_size cJSON *trackable_size = cJSON_GetObjectItemCaseSensitive(trackableJSON, "trackableSize"); @@ -429,7 +415,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ *trackable_size_local_value = trackable_size_local->valuedouble; list_addElement(trackable_sizeList , trackable_size_local_value); } - + /* // trackable->keyvalue_tags cJSON *keyvalue_tags = cJSON_GetObjectItemCaseSensitive(trackableJSON, "keyvalueTags"); if (!keyvalue_tags) { @@ -452,7 +438,7 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ list_addElement(keyvalue_tagsList , localMapKeyPair); } } - + */ // trackable->confidence cJSON *confidence = cJSON_GetObjectItemCaseSensitive(trackableJSON, "confidence"); if (confidence) { @@ -462,25 +448,24 @@ trackable_t *trackable_parseFromJSON(cJSON *trackableJSON){ } } - trackable_local_var = trackable_create ( uuid && !cJSON_IsNull(uuid) ? strdup(uuid->valuestring) : NULL, strdup(name->valuestring), strdup(creator_uuid->valuestring), trackable_type_local_nonprim, trackable_encoding_information_local_nonprim, - strdup(trackable_payload->valuestring), + NULL,//strdup(trackable_payload->valuestring), local_crsList, unit_local_nonprim, trackable_sizeList, - keyvalue_tagsList, - confidence ? confidence->valuedouble : 0 + NULL,//keyvalue_tagsList, + confidence ? confidence->valuedouble : 0.0 ); return trackable_local_var; end: if (trackable_type_local_nonprim) { - trackable_type_free(trackable_type_local_nonprim); + free(trackable_type_local_nonprim); trackable_type_local_nonprim = NULL; } if (trackable_encoding_information_local_nonprim) { @@ -497,7 +482,7 @@ end: local_crsList = NULL; } if (unit_local_nonprim) { - unit_system_free(unit_local_nonprim); + free(unit_local_nonprim); unit_local_nonprim = NULL; } if (trackable_sizeList) {
EtsiClientGen/patches/fixCTrackableAPI.patch +106 −4 Original line number Diff line number Diff line --- TrackablesAPI_origin.c 2024-05-17 23:00:40.039961617 +0200 +++ TrackablesAPI.c 2024-05-17 23:18:05.808565009 +0200 @@ -151,16 +151,7 @@ diff --git a/EtsiClientGen/api/TrackablesAPI.c b/../../world-storage-c-client/EtsiClientGen/api/TrackablesAPI.c index f639313..e9b01f3 100644 --- a/EtsiClientGen/api/TrackablesAPI.c +++ b/../../world-storage-c-client/EtsiClientGen/api/TrackablesAPI.c @@ -57,6 +57,8 @@ TrackablesAPI_addTrackable(apiClient_t *apiClient, trackable_t *trackable, char list_addElement(localVarHeaderType,"text/plain"); //produces list_addElement(localVarHeaderType,"application/json"); //produces list_addElement(localVarContentType,"application/json"); //consumes + + apiClient_invoke(apiClient, localVarPath, localVarQueryParameters, @@ -68,25 +70,25 @@ TrackablesAPI_addTrackable(apiClient_t *apiClient, trackable_t *trackable, char "POST"); // uncomment below to debug the error response - //if (apiClient->response_code == 200) { + if (apiClient->response_code == 200) { // printf("%s\n","OK, return the UUID of the Trackable defined by the world storage."); - //} + } // uncomment below to debug the error response - //if (apiClient->response_code == 201) { - // printf("%s\n","Null response."); - //} + if (apiClient->response_code == 201) { + printf("%s\n","Null response."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 400) { - // printf("%s\n","Bad request."); - //} + if (apiClient->response_code == 400) { + printf("%s\n","Bad request."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 409) { - // printf("%s\n","Invalid UUID, id must be a Nil value."); - //} + if (apiClient->response_code == 409) { + printf("%s\n","Invalid UUID, id must be a Nil value."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 0) { - // printf("%s\n","Unexpected error."); - //} + if (apiClient->response_code == 0) { + printf("%s\n","Unexpected error."); + } //primitive return type simple char* elementToReturn = strdup((char*)apiClient->dataReceived); @@ -95,7 +97,6 @@ TrackablesAPI_addTrackable(apiClient_t *apiClient, trackable_t *trackable, char apiClient->dataReceived = NULL; apiClient->dataReceivedLen = 0; } - list_freeList(localVarHeaderParameters); list_freeList(localVarHeaderType); @@ -151,16 +152,7 @@ TrackablesAPI_deleteTrackable(apiClient_t *apiClient, char *trackableUUID, char sprintf(localVarToReplace_trackableUUID, "{%s}", "trackableUUID"); localVarPath = strReplace(localVarPath, localVarToReplace_trackableUUID, trackableUUID); Loading @@ -18,7 +77,7 @@ // header parameters char *keyHeader_token = NULL; char * valueHeader_token = 0; @@ -255,15 +246,6 @@ @@ -255,15 +247,6 @@ TrackablesAPI_getTrackableById(apiClient_t *apiClient, char *trackableUUID, char sprintf(localVarToReplace_trackableUUID, "{%s}", "trackableUUID"); localVarPath = strReplace(localVarPath, localVarToReplace_trackableUUID, trackableUUID); Loading @@ -34,3 +93,46 @@ // header parameters char *keyHeader_token = NULL; @@ -289,25 +272,25 @@ TrackablesAPI_getTrackableById(apiClient_t *apiClient, char *trackableUUID, char "GET"); // uncomment below to debug the error response - //if (apiClient->response_code == 200) { + if (apiClient->response_code == 200) { // printf("%s\n","Successful operation."); - //} + } // uncomment below to debug the error response - //if (apiClient->response_code == 400) { - // printf("%s\n","Invalid UUID supplied."); - //} + if (apiClient->response_code == 400) { + printf("%s\n","Invalid UUID supplied."); + } // uncomment below to debug the error response - //if (apiClient->response_code == 404) { - // printf("%s\n","Not found, could not find UUID in database."); - //} + if (apiClient->response_code == 404) { + printf("%s\n","Not found, could not find UUID in database."); + } //nonprimitive not container cJSON *TrackablesAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + char *localVarJSONToChar = cJSON_Print(TrackablesAPIlocalVarJSON); trackable_t *elementToReturn = trackable_parseFromJSON(TrackablesAPIlocalVarJSON); cJSON_Delete(TrackablesAPIlocalVarJSON); if(elementToReturn == NULL) { // return 0; } - //return type if (apiClient->dataReceived) { free(apiClient->dataReceived); @@ -330,6 +313,7 @@ TrackablesAPI_getTrackableById(apiClient_t *apiClient, char *trackableUUID, char valueHeader_token = NULL; } free(keyPairHeader_token); + return elementToReturn; end: free(localVarPath);
EtsiClientGen/patches/fixCTrackableType.patch +30 −0 Original line number Diff line number Diff line diff --git a/EtsiClientGen/model/trackable_type.c b/../../world-storage-c-client/EtsiClientGen/model/trackable_type.c index b8d748c..042a746 100644 --- a/EtsiClientGen/model/trackable_type.c +++ b/../../world-storage-c-client/EtsiClientGen/model/trackable_type.c @@ -23,8 +23,8 @@ world_storage_api_trackable_type__e trackable_type_trackable_type_FromString(cha } cJSON *trackable_type_trackable_type_convertToJSON(world_storage_api_trackable_type__e trackable_type) { - cJSON *item = cJSON_CreateObject(); - if(cJSON_AddStringToObject(item, "trackable_type", trackable_type_trackable_type_ToString(trackable_type)) == NULL) { + cJSON *item =cJSON_CreateString(trackable_type_trackable_type_ToString(trackable_type));; + if(item == NULL) { goto fail; } return item; @@ -36,11 +36,11 @@ fail: world_storage_api_trackable_type__e trackable_type_trackable_type_parseFromJSON(cJSON *trackable_typeJSON) { world_storage_api_trackable_type__e *trackable_type = NULL; world_storage_api_trackable_type__e trackable_typeVariable; - cJSON *trackable_typeVar = cJSON_GetObjectItemCaseSensitive(trackable_typeJSON, "trackable_type"); - if(!cJSON_IsString(trackable_typeVar) || (trackable_typeVar->valuestring == NULL)){ + cJSON *trackable_typeVar = cJSON_GetObjectItemCaseSensitive(trackable_typeJSON, "trackableType"); + if(!cJSON_IsString(trackable_typeJSON)){ goto end; } - trackable_typeVariable = trackable_type_trackable_type_FromString(trackable_typeVar->valuestring); + trackable_typeVariable = trackable_type_trackable_type_FromString(trackable_typeJSON->valuestring); return trackable_typeVariable; end: return 0;