C additional properties fix #4289 (#4349)

* Correction to C support for additional_properties

* TAB to SPACE in one file
This commit is contained in:
Michele Albano 2019-11-27 10:15:47 +01:00 committed by William Cheng
parent e09417d25c
commit 96c1bda608
31 changed files with 4959 additions and 4833 deletions

View File

@ -255,7 +255,7 @@ void {{classname}}_free({{classname}}_t *{{classname}}) {
{{/isListContainer}}
{{#isMapContainer}}
list_ForEach(listEntry, {{classname}}->{{baseName}}) {
keyValuePair_t *localMapKeyPair = (keyValuePair_t*) listEntry->data;
keyValuePair_t *localKeyValue = (keyValuePair_t*) listEntry->data;
free (localKeyValue->key);
free (localKeyValue->value);
}

View File

@ -1 +1 @@
4.2.1-SNAPSHOT
4.2.2-SNAPSHOT

View File

@ -63,27 +63,28 @@ install(TARGETS ${pkgName} DESTINATION ${CMAKE_INSTALL_PREFIX})
set(SRCS "")
set(HDRS "")
# This section shows how to use the above compiled libary to compile the source files
# set source files
set(SRCS
unit-tests/manual-PetAPI.c
unit-tests/manual-StoreAPI.c
unit-tests/manual-UserAPI.c
unit-tests/manual-order.c
unit-tests/manual-user.c)
#set header files
set(HDRS
)
## This section shows how to use the above compiled libary to compile the source files
## set source files
#set(SRCS
# unit-tests/manual-PetAPI.c
# unit-tests/manual-StoreAPI.c
# unit-tests/manual-UserAPI.c
# unit-tests/manual-order.c
# unit-tests/manual-user.c)
# loop over all files in SRCS variable
foreach(SOURCE_FILE ${SRCS})
# Get only the file name from the file as add_executable doesnot support executable with slash("/")
get_filename_component(FILE_NAME_ONLY ${SOURCE_FILE} NAME_WE)
# Remove .c from the file name and set it as executable name
string( REPLACE ".c" "" EXECUTABLE_FILE ${FILE_NAME_ONLY})
# Add executable for every source file in SRCS
add_executable(unit-${EXECUTABLE_FILE} ${SOURCE_FILE})
# Link above created libary to executable and dependent libary curl
target_link_libraries(unit-${EXECUTABLE_FILE} ${CURL_LIBRARIES} ${pkgName} )
endforeach(SOURCE_FILE ${SRCS})
##set header files
#set(HDRS
#)
## loop over all files in SRCS variable
#foreach(SOURCE_FILE ${SRCS})
# # Get only the file name from the file as add_executable doesnot support executable with slash("/")
# get_filename_component(FILE_NAME_ONLY ${SOURCE_FILE} NAME_WE)
# # Remove .c from the file name and set it as executable name
# string( REPLACE ".c" "" EXECUTABLE_FILE ${FILE_NAME_ONLY})
# # Add executable for every source file in SRCS
# add_executable(unit-${EXECUTABLE_FILE} ${SOURCE_FILE})
# # Link above created libary to executable and dependent libary curl
# target_link_libraries(unit-${EXECUTABLE_FILE} ${CURL_LIBRARIES} ${pkgName} )
#endforeach(SOURCE_FILE ${SRCS})

View File

@ -6,14 +6,16 @@
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do { \
char dst[256]; \
snprintf(dst, 256, "%ld", (long int) (src)); \
} while(0)
do {\
char dst[256];\
snprintf(dst, 256, "%ld", (long int)(src));\
}while(0)
// Add a new pet to the store
//
void PetAPI_addPet(apiClient_t *apiClient, pet_t *body) {
void
PetAPI_addPet(apiClient_t *apiClient ,pet_t * body)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -22,7 +24,7 @@ void PetAPI_addPet(apiClient_t *apiClient, pet_t *body) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet") + 1;
long sizeOfPath = strlen("/pet")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet");
@ -31,14 +33,14 @@ void PetAPI_addPet(apiClient_t *apiClient, pet_t *body) {
// Body Param
cJSON *localVarSingleItemJSON_body;
if(body != NULL) {
// string
if (body != NULL)
{
//string
localVarSingleItemJSON_body = pet_convertToJSON(body);
localVarBodyParameters =
cJSON_Print(localVarSingleItemJSON_body);
localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body);
}
list_addElement(localVarContentType, "application/json"); // consumes
list_addElement(localVarContentType, "application/xml"); // consumes
list_addElement(localVarContentType,"application/json"); //consumes
list_addElement(localVarContentType,"application/xml"); //consumes
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -49,12 +51,12 @@ void PetAPI_addPet(apiClient_t *apiClient, pet_t *body) {
localVarBodyParameters,
"POST");
if(apiClient->response_code == 405) {
printf("%s\n", "Invalid input");
if (apiClient->response_code == 405) {
printf("%s\n","Invalid input");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -65,11 +67,14 @@ end:
free(localVarPath);
cJSON_Delete(localVarSingleItemJSON_body);
free(localVarBodyParameters);
}
// Deletes a pet
//
void PetAPI_deletePet(apiClient_t *apiClient, long petId, char *api_key) {
void
PetAPI_deletePet(apiClient_t *apiClient ,long petId ,char * api_key)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = list_create();
list_t *localVarFormParameters = NULL;
@ -78,40 +83,36 @@ void PetAPI_deletePet(apiClient_t *apiClient, long petId, char *api_key) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet/{petId}") + 1;
long sizeOfPath = strlen("/pet/{petId}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet/{petId}");
// Path Params
long sizeOfPathParams_petId = sizeof(petId) + 3 + strlen("{ petId }");
if(petId == 0) {
long sizeOfPathParams_petId = sizeof(petId)+3 + strlen("{ petId }");
if(petId == 0){
goto end;
}
char *localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}",
"petId");
char* localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}", "petId");
char localVarBuff_petId[256];
intToStr(localVarBuff_petId, petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId,
localVarBuff_petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId, localVarBuff_petId);
// header parameters
char *keyHeader_api_key;
char *valueHeader_api_key;
char * valueHeader_api_key;
keyValuePair_t *keyPairHeader_api_key = 0;
if(api_key) {
if (api_key) {
keyHeader_api_key = strdup("api_key");
valueHeader_api_key = strdup((api_key));
keyPairHeader_api_key = keyValuePair_create(keyHeader_api_key,
valueHeader_api_key);
list_addElement(localVarHeaderParameters,
keyPairHeader_api_key);
keyPairHeader_api_key = keyValuePair_create(keyHeader_api_key, valueHeader_api_key);
list_addElement(localVarHeaderParameters,keyPairHeader_api_key);
}
apiClient_invoke(apiClient,
@ -124,12 +125,12 @@ void PetAPI_deletePet(apiClient_t *apiClient, long petId, char *api_key) {
localVarBodyParameters,
"DELETE");
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid pet value");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid pet value");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -142,13 +143,16 @@ end:
free(keyHeader_api_key);
free(valueHeader_api_key);
free(keyPairHeader_api_key);
}
// Finds Pets by status
//
// Multiple status values can be provided with comma separated strings
//
list_t *PetAPI_findPetsByStatus(apiClient_t *apiClient, list_t *status) {
list_t*
PetAPI_findPetsByStatus(apiClient_t *apiClient ,list_t * status)
{
list_t *localVarQueryParameters = list_create();
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -157,7 +161,7 @@ list_t *PetAPI_findPetsByStatus(apiClient_t *apiClient, list_t *status) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet/findByStatus") + 1;
long sizeOfPath = strlen("/pet/findByStatus")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet/findByStatus");
@ -165,11 +169,12 @@ list_t *PetAPI_findPetsByStatus(apiClient_t *apiClient, list_t *status) {
// query parameters
if(status) {
list_addElement(localVarQueryParameters, status);
if (status)
{
list_addElement(localVarQueryParameters,status);
}
list_addElement(localVarHeaderType, "application/xml"); // produces
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/xml"); //produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -180,31 +185,32 @@ list_t *PetAPI_findPetsByStatus(apiClient_t *apiClient, list_t *status) {
localVarBodyParameters,
"GET");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid status value");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid status value");
}
cJSON *PetAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived);
if(!cJSON_IsArray(PetAPIlocalVarJSON)) {
return 0; // nonprimitive container
return 0;//nonprimitive container
}
list_t *elementToReturn = list_create();
cJSON *VarJSON;
cJSON_ArrayForEach(VarJSON, PetAPIlocalVarJSON)
{
if(!cJSON_IsObject(VarJSON)) {
if(!cJSON_IsObject(VarJSON))
{
// return 0;
}
char *localVarJSONToChar = cJSON_Print(VarJSON);
list_addElement(elementToReturn, localVarJSONToChar);
list_addElement(elementToReturn , localVarJSONToChar);
}
cJSON_Delete(PetAPIlocalVarJSON);
cJSON_Delete(VarJSON);
// return type
if(apiClient->dataReceived) {
cJSON_Delete( PetAPIlocalVarJSON);
cJSON_Delete( VarJSON);
//return type
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
list_free(localVarQueryParameters);
@ -216,13 +222,16 @@ list_t *PetAPI_findPetsByStatus(apiClient_t *apiClient, list_t *status) {
return elementToReturn;
end:
return NULL;
}
// Finds Pets by tags
//
// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
//
list_t *PetAPI_findPetsByTags(apiClient_t *apiClient, list_t *tags) {
list_t*
PetAPI_findPetsByTags(apiClient_t *apiClient ,list_t * tags)
{
list_t *localVarQueryParameters = list_create();
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -231,7 +240,7 @@ list_t *PetAPI_findPetsByTags(apiClient_t *apiClient, list_t *tags) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet/findByTags") + 1;
long sizeOfPath = strlen("/pet/findByTags")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet/findByTags");
@ -239,11 +248,12 @@ list_t *PetAPI_findPetsByTags(apiClient_t *apiClient, list_t *tags) {
// query parameters
if(tags) {
list_addElement(localVarQueryParameters, tags);
if (tags)
{
list_addElement(localVarQueryParameters,tags);
}
list_addElement(localVarHeaderType, "application/xml"); // produces
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/xml"); //produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -254,31 +264,32 @@ list_t *PetAPI_findPetsByTags(apiClient_t *apiClient, list_t *tags) {
localVarBodyParameters,
"GET");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid tag value");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid tag value");
}
cJSON *PetAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived);
if(!cJSON_IsArray(PetAPIlocalVarJSON)) {
return 0; // nonprimitive container
return 0;//nonprimitive container
}
list_t *elementToReturn = list_create();
cJSON *VarJSON;
cJSON_ArrayForEach(VarJSON, PetAPIlocalVarJSON)
{
if(!cJSON_IsObject(VarJSON)) {
if(!cJSON_IsObject(VarJSON))
{
// return 0;
}
char *localVarJSONToChar = cJSON_Print(VarJSON);
list_addElement(elementToReturn, localVarJSONToChar);
list_addElement(elementToReturn , localVarJSONToChar);
}
cJSON_Delete(PetAPIlocalVarJSON);
cJSON_Delete(VarJSON);
// return type
if(apiClient->dataReceived) {
cJSON_Delete( PetAPIlocalVarJSON);
cJSON_Delete( VarJSON);
//return type
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
list_free(localVarQueryParameters);
@ -290,13 +301,16 @@ list_t *PetAPI_findPetsByTags(apiClient_t *apiClient, list_t *tags) {
return elementToReturn;
end:
return NULL;
}
// Find pet by ID
//
// Returns a single pet
//
pet_t *PetAPI_getPetById(apiClient_t *apiClient, long petId) {
pet_t*
PetAPI_getPetById(apiClient_t *apiClient ,long petId)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -305,30 +319,28 @@ pet_t *PetAPI_getPetById(apiClient_t *apiClient, long petId) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet/{petId}") + 1;
long sizeOfPath = strlen("/pet/{petId}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet/{petId}");
// Path Params
long sizeOfPathParams_petId = sizeof(petId) + 3 + strlen("{ petId }");
if(petId == 0) {
long sizeOfPathParams_petId = sizeof(petId)+3 + strlen("{ petId }");
if(petId == 0){
goto end;
}
char *localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}",
"petId");
char* localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}", "petId");
char localVarBuff_petId[256];
intToStr(localVarBuff_petId, petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId,
localVarBuff_petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId, localVarBuff_petId);
list_addElement(localVarHeaderType, "application/xml"); // produces
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/xml"); //produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -339,16 +351,16 @@ pet_t *PetAPI_getPetById(apiClient_t *apiClient, long petId) {
localVarBodyParameters,
"GET");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid ID supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid ID supplied");
}
if(apiClient->response_code == 404) {
printf("%s\n", "Pet not found");
if (apiClient->response_code == 404) {
printf("%s\n","Pet not found");
}
// nonprimitive not container
//nonprimitive not container
cJSON *PetAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived);
pet_t *elementToReturn = pet_parseFromJSON(PetAPIlocalVarJSON);
cJSON_Delete(PetAPIlocalVarJSON);
@ -356,8 +368,8 @@ pet_t *PetAPI_getPetById(apiClient_t *apiClient, long petId) {
// return 0;
}
// return type
if(apiClient->dataReceived) {
//return type
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -370,11 +382,14 @@ pet_t *PetAPI_getPetById(apiClient_t *apiClient, long petId) {
return elementToReturn;
end:
return NULL;
}
// Update an existing pet
//
void PetAPI_updatePet(apiClient_t *apiClient, pet_t *body) {
void
PetAPI_updatePet(apiClient_t *apiClient ,pet_t * body)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -383,7 +398,7 @@ void PetAPI_updatePet(apiClient_t *apiClient, pet_t *body) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet") + 1;
long sizeOfPath = strlen("/pet")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet");
@ -392,14 +407,14 @@ void PetAPI_updatePet(apiClient_t *apiClient, pet_t *body) {
// Body Param
cJSON *localVarSingleItemJSON_body;
if(body != NULL) {
// string
if (body != NULL)
{
//string
localVarSingleItemJSON_body = pet_convertToJSON(body);
localVarBodyParameters =
cJSON_Print(localVarSingleItemJSON_body);
localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body);
}
list_addElement(localVarContentType, "application/json"); // consumes
list_addElement(localVarContentType, "application/xml"); // consumes
list_addElement(localVarContentType,"application/json"); //consumes
list_addElement(localVarContentType,"application/xml"); //consumes
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -410,18 +425,18 @@ void PetAPI_updatePet(apiClient_t *apiClient, pet_t *body) {
localVarBodyParameters,
"PUT");
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid ID supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid ID supplied");
}
if(apiClient->response_code == 404) {
printf("%s\n", "Pet not found");
if (apiClient->response_code == 404) {
printf("%s\n","Pet not found");
}
if(apiClient->response_code == 405) {
printf("%s\n", "Validation exception");
if (apiClient->response_code == 405) {
printf("%s\n","Validation exception");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -432,12 +447,14 @@ end:
free(localVarPath);
cJSON_Delete(localVarSingleItemJSON_body);
free(localVarBodyParameters);
}
// Updates a pet in the store with form data
//
void PetAPI_updatePetWithForm(apiClient_t *apiClient, long petId, char *name,
char *status) {
void
PetAPI_updatePetWithForm(apiClient_t *apiClient ,long petId ,char * name ,char * status)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = list_create();
@ -446,54 +463,51 @@ void PetAPI_updatePetWithForm(apiClient_t *apiClient, long petId, char *name,
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet/{petId}") + 1;
long sizeOfPath = strlen("/pet/{petId}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet/{petId}");
// Path Params
long sizeOfPathParams_petId = sizeof(petId) + 3 + strlen("{ petId }");
if(petId == 0) {
long sizeOfPathParams_petId = sizeof(petId)+3 + strlen("{ petId }");
if(petId == 0){
goto end;
}
char *localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}",
"petId");
char* localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}", "petId");
char localVarBuff_petId[256];
intToStr(localVarBuff_petId, petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId,
localVarBuff_petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId, localVarBuff_petId);
// form parameters
char *keyForm_name;
char *valueForm_name;
char * valueForm_name;
keyValuePair_t *keyPairForm_name = 0;
if(name != NULL) {
if (name != NULL)
{
keyForm_name = strdup("name");
valueForm_name = strdup((name));
keyPairForm_name = keyValuePair_create(keyForm_name,
valueForm_name);
list_addElement(localVarFormParameters, keyPairForm_name);
keyPairForm_name = keyValuePair_create(keyForm_name,valueForm_name);
list_addElement(localVarFormParameters,keyPairForm_name);
}
// form parameters
char *keyForm_status;
char *valueForm_status;
char * valueForm_status;
keyValuePair_t *keyPairForm_status = 0;
if(status != NULL) {
if (status != NULL)
{
keyForm_status = strdup("status");
valueForm_status = strdup((status));
keyPairForm_status = keyValuePair_create(keyForm_status,
valueForm_status);
list_addElement(localVarFormParameters, keyPairForm_status);
keyPairForm_status = keyValuePair_create(keyForm_status,valueForm_status);
list_addElement(localVarFormParameters,keyPairForm_status);
}
list_addElement(localVarContentType,
"application/x-www-form-urlencoded"); // consumes
list_addElement(localVarContentType,"application/x-www-form-urlencoded"); //consumes
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -504,12 +518,12 @@ void PetAPI_updatePetWithForm(apiClient_t *apiClient, long petId, char *name,
localVarBodyParameters,
"POST");
if(apiClient->response_code == 405) {
printf("%s\n", "Invalid input");
if (apiClient->response_code == 405) {
printf("%s\n","Invalid input");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -525,12 +539,14 @@ end:
free(keyForm_status);
free(valueForm_status);
keyValuePair_free(keyPairForm_status);
}
// uploads an image
//
api_response_t *PetAPI_uploadFile(apiClient_t *apiClient, long petId,
char *additionalMetadata, binary_t *file) {
api_response_t*
PetAPI_uploadFile(apiClient_t *apiClient ,long petId ,char * additionalMetadata ,binary_t* file)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = list_create();
@ -539,56 +555,52 @@ api_response_t *PetAPI_uploadFile(apiClient_t *apiClient, long petId,
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/pet/{petId}/uploadImage") + 1;
long sizeOfPath = strlen("/pet/{petId}/uploadImage")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/pet/{petId}/uploadImage");
// Path Params
long sizeOfPathParams_petId = sizeof(petId) + 3 + strlen("{ petId }");
if(petId == 0) {
long sizeOfPathParams_petId = sizeof(petId)+3 + strlen("{ petId }");
if(petId == 0){
goto end;
}
char *localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}",
"petId");
char* localVarToReplace_petId = malloc(sizeOfPathParams_petId);
snprintf(localVarToReplace_petId, sizeOfPathParams_petId, "{%s}", "petId");
char localVarBuff_petId[256];
intToStr(localVarBuff_petId, petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId,
localVarBuff_petId);
localVarPath = strReplace(localVarPath, localVarToReplace_petId, localVarBuff_petId);
// form parameters
char *keyForm_additionalMetadata;
char *valueForm_additionalMetadata;
char * valueForm_additionalMetadata;
keyValuePair_t *keyPairForm_additionalMetadata = 0;
if(additionalMetadata != NULL) {
if (additionalMetadata != NULL)
{
keyForm_additionalMetadata = strdup("additionalMetadata");
valueForm_additionalMetadata = strdup((additionalMetadata));
keyPairForm_additionalMetadata = keyValuePair_create(
keyForm_additionalMetadata,
valueForm_additionalMetadata);
list_addElement(localVarFormParameters,
keyPairForm_additionalMetadata);
keyPairForm_additionalMetadata = keyValuePair_create(keyForm_additionalMetadata,valueForm_additionalMetadata);
list_addElement(localVarFormParameters,keyPairForm_additionalMetadata);
}
// form parameters
char *keyForm_file;
binary_t *valueForm_file;
binary_t* valueForm_file;
keyValuePair_t *keyPairForm_file = 0;
if(file != NULL) {
if (file != NULL)
{
keyForm_file = strdup("file");
valueForm_file = file;
keyPairForm_file = keyValuePair_create(keyForm_file,
&valueForm_file);
list_addElement(localVarFormParameters, keyPairForm_file); // file adding
keyPairForm_file = keyValuePair_create(keyForm_file, &valueForm_file);
list_addElement(localVarFormParameters,keyPairForm_file); //file adding
}
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarContentType, "multipart/form-data"); // consumes
list_addElement(localVarHeaderType,"application/json"); //produces
list_addElement(localVarContentType,"multipart/form-data"); //consumes
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -599,20 +611,19 @@ api_response_t *PetAPI_uploadFile(apiClient_t *apiClient, long petId,
localVarBodyParameters,
"POST");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
// nonprimitive not container
//nonprimitive not container
cJSON *PetAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived);
api_response_t *elementToReturn = api_response_parseFromJSON(
PetAPIlocalVarJSON);
api_response_t *elementToReturn = api_response_parseFromJSON(PetAPIlocalVarJSON);
cJSON_Delete(PetAPIlocalVarJSON);
if(elementToReturn == NULL) {
// return 0;
}
// return type
if(apiClient->dataReceived) {
//return type
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -632,4 +643,6 @@ api_response_t *PetAPI_uploadFile(apiClient_t *apiClient, long petId,
return elementToReturn;
end:
return NULL;
}

View File

@ -10,47 +10,55 @@
// Add a new pet to the store
//
void PetAPI_addPet(apiClient_t *apiClient, pet_t *body);
void
PetAPI_addPet(apiClient_t *apiClient ,pet_t * body);
// Deletes a pet
//
void PetAPI_deletePet(apiClient_t *apiClient, long petId, char *api_key);
void
PetAPI_deletePet(apiClient_t *apiClient ,long petId ,char * api_key);
// Finds Pets by status
//
// Multiple status values can be provided with comma separated strings
//
list_t *PetAPI_findPetsByStatus(apiClient_t *apiClient, list_t *status);
list_t*
PetAPI_findPetsByStatus(apiClient_t *apiClient ,list_t * status);
// Finds Pets by tags
//
// Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
//
list_t *PetAPI_findPetsByTags(apiClient_t *apiClient, list_t *tags);
list_t*
PetAPI_findPetsByTags(apiClient_t *apiClient ,list_t * tags);
// Find pet by ID
//
// Returns a single pet
//
pet_t *PetAPI_getPetById(apiClient_t *apiClient, long petId);
pet_t*
PetAPI_getPetById(apiClient_t *apiClient ,long petId);
// Update an existing pet
//
void PetAPI_updatePet(apiClient_t *apiClient, pet_t *body);
void
PetAPI_updatePet(apiClient_t *apiClient ,pet_t * body);
// Updates a pet in the store with form data
//
void PetAPI_updatePetWithForm(apiClient_t *apiClient, long petId, char *name,
char *status);
void
PetAPI_updatePetWithForm(apiClient_t *apiClient ,long petId ,char * name ,char * status);
// uploads an image
//
api_response_t *PetAPI_uploadFile(apiClient_t *apiClient, long petId,
char *additionalMetadata, binary_t *file);
api_response_t*
PetAPI_uploadFile(apiClient_t *apiClient ,long petId ,char * additionalMetadata ,binary_t* file);

View File

@ -6,16 +6,18 @@
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do { \
char dst[256]; \
snprintf(dst, 256, "%ld", (long int) (src)); \
} while(0)
do {\
char dst[256];\
snprintf(dst, 256, "%ld", (long int)(src));\
}while(0)
// Delete purchase order by ID
//
// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
//
void StoreAPI_deleteOrder(apiClient_t *apiClient, char *orderId) {
void
StoreAPI_deleteOrder(apiClient_t *apiClient ,char * orderId)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -24,22 +26,20 @@ void StoreAPI_deleteOrder(apiClient_t *apiClient, char *orderId) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/store/order/{orderId}") + 1;
long sizeOfPath = strlen("/store/order/{orderId}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/store/order/{orderId}");
// Path Params
long sizeOfPathParams_orderId = strlen(orderId) + 3 + strlen(
"{ orderId }");
long sizeOfPathParams_orderId = strlen(orderId)+3 + strlen("{ orderId }");
if(orderId == NULL) {
goto end;
}
char *localVarToReplace_orderId = malloc(sizeOfPathParams_orderId);
char* localVarToReplace_orderId = malloc(sizeOfPathParams_orderId);
sprintf(localVarToReplace_orderId, "{%s}", "orderId");
localVarPath = strReplace(localVarPath, localVarToReplace_orderId,
orderId);
localVarPath = strReplace(localVarPath, localVarToReplace_orderId, orderId);
apiClient_invoke(apiClient,
@ -52,15 +52,15 @@ void StoreAPI_deleteOrder(apiClient_t *apiClient, char *orderId) {
localVarBodyParameters,
"DELETE");
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid ID supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid ID supplied");
}
if(apiClient->response_code == 404) {
printf("%s\n", "Order not found");
if (apiClient->response_code == 404) {
printf("%s\n","Order not found");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -70,13 +70,16 @@ end:
free(localVarPath);
free(localVarToReplace_orderId);
}
// Returns pet inventories by status
//
// Returns a map of status codes to quantities
//
list_t *StoreAPI_getInventory(apiClient_t *apiClient) {
list_t*
StoreAPI_getInventory(apiClient_t *apiClient)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -85,13 +88,13 @@ list_t *StoreAPI_getInventory(apiClient_t *apiClient) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/store/inventory") + 1;
long sizeOfPath = strlen("/store/inventory")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/store/inventory");
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -102,23 +105,20 @@ list_t *StoreAPI_getInventory(apiClient_t *apiClient) {
localVarBodyParameters,
"GET");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
// primitive reutrn type not simple
//primitive reutrn type not simple
cJSON *localVarJSON = cJSON_Parse(apiClient->dataReceived);
cJSON *VarJSON;
list_t *elementToReturn = list_create();
cJSON_ArrayForEach(VarJSON, localVarJSON) {
keyValuePair_t *keyPair =
keyValuePair_create(strdup(
VarJSON->string), cJSON_Print(
VarJSON));
cJSON_ArrayForEach(VarJSON, localVarJSON){
keyValuePair_t *keyPair = keyValuePair_create(strdup(VarJSON->string), cJSON_Print(VarJSON));
list_addElement(elementToReturn, keyPair);
}
cJSON_Delete(localVarJSON);
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -130,13 +130,16 @@ list_t *StoreAPI_getInventory(apiClient_t *apiClient) {
return elementToReturn;
end:
return NULL;
}
// Find purchase order by ID
//
// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
//
order_t *StoreAPI_getOrderById(apiClient_t *apiClient, long orderId) {
order_t*
StoreAPI_getOrderById(apiClient_t *apiClient ,long orderId)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -145,31 +148,28 @@ order_t *StoreAPI_getOrderById(apiClient_t *apiClient, long orderId) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/store/order/{orderId}") + 1;
long sizeOfPath = strlen("/store/order/{orderId}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/store/order/{orderId}");
// Path Params
long sizeOfPathParams_orderId = sizeof(orderId) + 3 + strlen(
"{ orderId }");
if(orderId == 0) {
long sizeOfPathParams_orderId = sizeof(orderId)+3 + strlen("{ orderId }");
if(orderId == 0){
goto end;
}
char *localVarToReplace_orderId = malloc(sizeOfPathParams_orderId);
snprintf(localVarToReplace_orderId, sizeOfPathParams_orderId, "{%s}",
"orderId");
char* localVarToReplace_orderId = malloc(sizeOfPathParams_orderId);
snprintf(localVarToReplace_orderId, sizeOfPathParams_orderId, "{%s}", "orderId");
char localVarBuff_orderId[256];
intToStr(localVarBuff_orderId, orderId);
localVarPath = strReplace(localVarPath, localVarToReplace_orderId,
localVarBuff_orderId);
localVarPath = strReplace(localVarPath, localVarToReplace_orderId, localVarBuff_orderId);
list_addElement(localVarHeaderType, "application/xml"); // produces
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/xml"); //produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -180,16 +180,16 @@ order_t *StoreAPI_getOrderById(apiClient_t *apiClient, long orderId) {
localVarBodyParameters,
"GET");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid ID supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid ID supplied");
}
if(apiClient->response_code == 404) {
printf("%s\n", "Order not found");
if (apiClient->response_code == 404) {
printf("%s\n","Order not found");
}
// nonprimitive not container
//nonprimitive not container
cJSON *StoreAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived);
order_t *elementToReturn = order_parseFromJSON(StoreAPIlocalVarJSON);
cJSON_Delete(StoreAPIlocalVarJSON);
@ -197,8 +197,8 @@ order_t *StoreAPI_getOrderById(apiClient_t *apiClient, long orderId) {
// return 0;
}
// return type
if(apiClient->dataReceived) {
//return type
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -211,11 +211,14 @@ order_t *StoreAPI_getOrderById(apiClient_t *apiClient, long orderId) {
return elementToReturn;
end:
return NULL;
}
// Place an order for a pet
//
order_t *StoreAPI_placeOrder(apiClient_t *apiClient, order_t *body) {
order_t*
StoreAPI_placeOrder(apiClient_t *apiClient ,order_t * body)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -224,7 +227,7 @@ order_t *StoreAPI_placeOrder(apiClient_t *apiClient, order_t *body) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/store/order") + 1;
long sizeOfPath = strlen("/store/order")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/store/order");
@ -233,14 +236,14 @@ order_t *StoreAPI_placeOrder(apiClient_t *apiClient, order_t *body) {
// Body Param
cJSON *localVarSingleItemJSON_body;
if(body != NULL) {
// string
if (body != NULL)
{
//string
localVarSingleItemJSON_body = order_convertToJSON(body);
localVarBodyParameters =
cJSON_Print(localVarSingleItemJSON_body);
localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body);
}
list_addElement(localVarHeaderType, "application/xml"); // produces
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/xml"); //produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -251,13 +254,13 @@ order_t *StoreAPI_placeOrder(apiClient_t *apiClient, order_t *body) {
localVarBodyParameters,
"POST");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid Order");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid Order");
}
// nonprimitive not container
//nonprimitive not container
cJSON *StoreAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived);
order_t *elementToReturn = order_parseFromJSON(StoreAPIlocalVarJSON);
cJSON_Delete(StoreAPIlocalVarJSON);
@ -265,8 +268,8 @@ order_t *StoreAPI_placeOrder(apiClient_t *apiClient, order_t *body) {
// return 0;
}
// return type
if(apiClient->dataReceived) {
//return type
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -280,4 +283,6 @@ order_t *StoreAPI_placeOrder(apiClient_t *apiClient, order_t *body) {
return elementToReturn;
end:
return NULL;
}

View File

@ -11,23 +11,29 @@
//
// For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
//
void StoreAPI_deleteOrder(apiClient_t *apiClient, char *orderId);
void
StoreAPI_deleteOrder(apiClient_t *apiClient ,char * orderId);
// Returns pet inventories by status
//
// Returns a map of status codes to quantities
//
list_t *StoreAPI_getInventory(apiClient_t *apiClient);
list_t*
StoreAPI_getInventory(apiClient_t *apiClient);
// Find purchase order by ID
//
// For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions
//
order_t *StoreAPI_getOrderById(apiClient_t *apiClient, long orderId);
order_t*
StoreAPI_getOrderById(apiClient_t *apiClient ,long orderId);
// Place an order for a pet
//
order_t *StoreAPI_placeOrder(apiClient_t *apiClient, order_t *body);
order_t*
StoreAPI_placeOrder(apiClient_t *apiClient ,order_t * body);

View File

@ -6,16 +6,18 @@
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do { \
char dst[256]; \
snprintf(dst, 256, "%ld", (long int) (src)); \
} while(0)
do {\
char dst[256];\
snprintf(dst, 256, "%ld", (long int)(src));\
}while(0)
// Create user
//
// This can only be done by the logged in user.
//
void UserAPI_createUser(apiClient_t *apiClient, user_t *body) {
void
UserAPI_createUser(apiClient_t *apiClient ,user_t * body)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -24,7 +26,7 @@ void UserAPI_createUser(apiClient_t *apiClient, user_t *body) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user") + 1;
long sizeOfPath = strlen("/user")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user");
@ -33,11 +35,11 @@ void UserAPI_createUser(apiClient_t *apiClient, user_t *body) {
// Body Param
cJSON *localVarSingleItemJSON_body;
if(body != NULL) {
// string
if (body != NULL)
{
//string
localVarSingleItemJSON_body = user_convertToJSON(body);
localVarBodyParameters =
cJSON_Print(localVarSingleItemJSON_body);
localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body);
}
apiClient_invoke(apiClient,
localVarPath,
@ -49,12 +51,12 @@ void UserAPI_createUser(apiClient_t *apiClient, user_t *body) {
localVarBodyParameters,
"POST");
if(apiClient->response_code == 0) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 0) {
printf("%s\n","successful operation");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -65,11 +67,14 @@ end:
free(localVarPath);
cJSON_Delete(localVarSingleItemJSON_body);
free(localVarBodyParameters);
}
// Creates list of users with given input array
//
void UserAPI_createUsersWithArrayInput(apiClient_t *apiClient, list_t *body) {
void
UserAPI_createUsersWithArrayInput(apiClient_t *apiClient ,list_t * body)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -78,7 +83,7 @@ void UserAPI_createUsersWithArrayInput(apiClient_t *apiClient, list_t *body) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user/createWithArray") + 1;
long sizeOfPath = strlen("/user/createWithArray")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user/createWithArray");
@ -86,15 +91,16 @@ void UserAPI_createUsersWithArrayInput(apiClient_t *apiClient, list_t *body) {
// Body Param
// notstring
//notstring
cJSON *localVar_body;
cJSON *localVarItemJSON_body;
cJSON *localVarSingleItemJSON_body;
if(body != NULL) {
if (body != NULL)
{
localVarItemJSON_body = cJSON_CreateObject();
localVarSingleItemJSON_body = cJSON_AddArrayToObject(
localVarItemJSON_body, "body");
if(localVarSingleItemJSON_body == NULL) {
localVarSingleItemJSON_body = cJSON_AddArrayToObject(localVarItemJSON_body, "body");
if (localVarSingleItemJSON_body == NULL)
{
// nonprimitive container
goto end;
@ -105,11 +111,11 @@ void UserAPI_createUsersWithArrayInput(apiClient_t *apiClient, list_t *body) {
list_ForEach(bodyBodyListEntry, body)
{
localVar_body = user_convertToJSON(bodyBodyListEntry->data);
if(localVar_body == NULL) {
if(localVar_body == NULL)
{
goto end;
}
cJSON_AddItemToArray(localVarSingleItemJSON_body,
localVar_body);
cJSON_AddItemToArray(localVarSingleItemJSON_body, localVar_body);
localVarBodyParameters = cJSON_Print(localVarItemJSON_body);
}
apiClient_invoke(apiClient,
@ -122,12 +128,12 @@ void UserAPI_createUsersWithArrayInput(apiClient_t *apiClient, list_t *body) {
localVarBodyParameters,
"POST");
if(apiClient->response_code == 0) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 0) {
printf("%s\n","successful operation");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -140,11 +146,14 @@ end:
cJSON_Delete(localVarSingleItemJSON_body);
cJSON_Delete(localVar_body);
free(localVarBodyParameters);
}
// Creates list of users with given input array
//
void UserAPI_createUsersWithListInput(apiClient_t *apiClient, list_t *body) {
void
UserAPI_createUsersWithListInput(apiClient_t *apiClient ,list_t * body)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -153,7 +162,7 @@ void UserAPI_createUsersWithListInput(apiClient_t *apiClient, list_t *body) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user/createWithList") + 1;
long sizeOfPath = strlen("/user/createWithList")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user/createWithList");
@ -161,15 +170,16 @@ void UserAPI_createUsersWithListInput(apiClient_t *apiClient, list_t *body) {
// Body Param
// notstring
//notstring
cJSON *localVar_body;
cJSON *localVarItemJSON_body;
cJSON *localVarSingleItemJSON_body;
if(body != NULL) {
if (body != NULL)
{
localVarItemJSON_body = cJSON_CreateObject();
localVarSingleItemJSON_body = cJSON_AddArrayToObject(
localVarItemJSON_body, "body");
if(localVarSingleItemJSON_body == NULL) {
localVarSingleItemJSON_body = cJSON_AddArrayToObject(localVarItemJSON_body, "body");
if (localVarSingleItemJSON_body == NULL)
{
// nonprimitive container
goto end;
@ -180,11 +190,11 @@ void UserAPI_createUsersWithListInput(apiClient_t *apiClient, list_t *body) {
list_ForEach(bodyBodyListEntry, body)
{
localVar_body = user_convertToJSON(bodyBodyListEntry->data);
if(localVar_body == NULL) {
if(localVar_body == NULL)
{
goto end;
}
cJSON_AddItemToArray(localVarSingleItemJSON_body,
localVar_body);
cJSON_AddItemToArray(localVarSingleItemJSON_body, localVar_body);
localVarBodyParameters = cJSON_Print(localVarItemJSON_body);
}
apiClient_invoke(apiClient,
@ -197,12 +207,12 @@ void UserAPI_createUsersWithListInput(apiClient_t *apiClient, list_t *body) {
localVarBodyParameters,
"POST");
if(apiClient->response_code == 0) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 0) {
printf("%s\n","successful operation");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -215,13 +225,16 @@ end:
cJSON_Delete(localVarSingleItemJSON_body);
cJSON_Delete(localVar_body);
free(localVarBodyParameters);
}
// Delete user
//
// This can only be done by the logged in user.
//
void UserAPI_deleteUser(apiClient_t *apiClient, char *username) {
void
UserAPI_deleteUser(apiClient_t *apiClient ,char * username)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -230,22 +243,20 @@ void UserAPI_deleteUser(apiClient_t *apiClient, char *username) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user/{username}") + 1;
long sizeOfPath = strlen("/user/{username}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user/{username}");
// Path Params
long sizeOfPathParams_username = strlen(username) + 3 + strlen(
"{ username }");
long sizeOfPathParams_username = strlen(username)+3 + strlen("{ username }");
if(username == NULL) {
goto end;
}
char *localVarToReplace_username = malloc(sizeOfPathParams_username);
char* localVarToReplace_username = malloc(sizeOfPathParams_username);
sprintf(localVarToReplace_username, "{%s}", "username");
localVarPath = strReplace(localVarPath, localVarToReplace_username,
username);
localVarPath = strReplace(localVarPath, localVarToReplace_username, username);
apiClient_invoke(apiClient,
@ -258,15 +269,15 @@ void UserAPI_deleteUser(apiClient_t *apiClient, char *username) {
localVarBodyParameters,
"DELETE");
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid username supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid username supplied");
}
if(apiClient->response_code == 404) {
printf("%s\n", "User not found");
if (apiClient->response_code == 404) {
printf("%s\n","User not found");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -276,11 +287,14 @@ end:
free(localVarPath);
free(localVarToReplace_username);
}
// Get user by user name
//
user_t *UserAPI_getUserByName(apiClient_t *apiClient, char *username) {
user_t*
UserAPI_getUserByName(apiClient_t *apiClient ,char * username)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -289,26 +303,24 @@ user_t *UserAPI_getUserByName(apiClient_t *apiClient, char *username) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user/{username}") + 1;
long sizeOfPath = strlen("/user/{username}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user/{username}");
// Path Params
long sizeOfPathParams_username = strlen(username) + 3 + strlen(
"{ username }");
long sizeOfPathParams_username = strlen(username)+3 + strlen("{ username }");
if(username == NULL) {
goto end;
}
char *localVarToReplace_username = malloc(sizeOfPathParams_username);
char* localVarToReplace_username = malloc(sizeOfPathParams_username);
sprintf(localVarToReplace_username, "{%s}", "username");
localVarPath = strReplace(localVarPath, localVarToReplace_username,
username);
localVarPath = strReplace(localVarPath, localVarToReplace_username, username);
list_addElement(localVarHeaderType, "application/xml"); // produces
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/xml"); //produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -319,16 +331,16 @@ user_t *UserAPI_getUserByName(apiClient_t *apiClient, char *username) {
localVarBodyParameters,
"GET");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid username supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid username supplied");
}
if(apiClient->response_code == 404) {
printf("%s\n", "User not found");
if (apiClient->response_code == 404) {
printf("%s\n","User not found");
}
// nonprimitive not container
//nonprimitive not container
cJSON *UserAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived);
user_t *elementToReturn = user_parseFromJSON(UserAPIlocalVarJSON);
cJSON_Delete(UserAPIlocalVarJSON);
@ -336,8 +348,8 @@ user_t *UserAPI_getUserByName(apiClient_t *apiClient, char *username) {
// return 0;
}
// return type
if(apiClient->dataReceived) {
//return type
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -350,12 +362,14 @@ user_t *UserAPI_getUserByName(apiClient_t *apiClient, char *username) {
return elementToReturn;
end:
return NULL;
}
// Logs user into the system
//
char *UserAPI_loginUser(apiClient_t *apiClient, char *username,
char *password) {
char*
UserAPI_loginUser(apiClient_t *apiClient ,char * username ,char * password)
{
list_t *localVarQueryParameters = list_create();
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -364,7 +378,7 @@ char *UserAPI_loginUser(apiClient_t *apiClient, char *username,
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user/login") + 1;
long sizeOfPath = strlen("/user/login")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user/login");
@ -373,29 +387,29 @@ char *UserAPI_loginUser(apiClient_t *apiClient, char *username,
// query parameters
char *keyQuery_username;
char *valueQuery_username;
char * valueQuery_username;
keyValuePair_t *keyPairQuery_username = 0;
if(username) {
if (username)
{
keyQuery_username = strdup("username");
valueQuery_username = strdup((username));
keyPairQuery_username = keyValuePair_create(keyQuery_username,
valueQuery_username);
list_addElement(localVarQueryParameters, keyPairQuery_username);
keyPairQuery_username = keyValuePair_create(keyQuery_username, valueQuery_username);
list_addElement(localVarQueryParameters,keyPairQuery_username);
}
// query parameters
char *keyQuery_password;
char *valueQuery_password;
char * valueQuery_password;
keyValuePair_t *keyPairQuery_password = 0;
if(password) {
if (password)
{
keyQuery_password = strdup("password");
valueQuery_password = strdup((password));
keyPairQuery_password = keyValuePair_create(keyQuery_password,
valueQuery_password);
list_addElement(localVarQueryParameters, keyPairQuery_password);
keyPairQuery_password = keyValuePair_create(keyQuery_password, valueQuery_password);
list_addElement(localVarQueryParameters,keyPairQuery_password);
}
list_addElement(localVarHeaderType, "application/xml"); // produces
list_addElement(localVarHeaderType, "application/json"); // produces
list_addElement(localVarHeaderType,"application/xml"); //produces
list_addElement(localVarHeaderType,"application/json"); //produces
apiClient_invoke(apiClient,
localVarPath,
localVarQueryParameters,
@ -406,16 +420,16 @@ char *UserAPI_loginUser(apiClient_t *apiClient, char *username,
localVarBodyParameters,
"GET");
if(apiClient->response_code == 200) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 200) {
printf("%s\n","successful operation");
}
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid username/password supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid username/password supplied");
}
// primitive reutrn type simple
char *elementToReturn = strdup((char *) apiClient->dataReceived);
//primitive reutrn type simple
char* elementToReturn = strdup((char*)apiClient->dataReceived);
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
list_free(localVarQueryParameters);
@ -433,11 +447,14 @@ char *UserAPI_loginUser(apiClient_t *apiClient, char *username,
return elementToReturn;
end:
return NULL;
}
// Logs out current logged in user session
//
void UserAPI_logoutUser(apiClient_t *apiClient) {
void
UserAPI_logoutUser(apiClient_t *apiClient)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -446,7 +463,7 @@ void UserAPI_logoutUser(apiClient_t *apiClient) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user/logout") + 1;
long sizeOfPath = strlen("/user/logout")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user/logout");
@ -462,12 +479,12 @@ void UserAPI_logoutUser(apiClient_t *apiClient) {
localVarBodyParameters,
"GET");
if(apiClient->response_code == 0) {
printf("%s\n", "successful operation");
if (apiClient->response_code == 0) {
printf("%s\n","successful operation");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -476,13 +493,16 @@ end:
free(localVarPath);
}
// Updated user
//
// This can only be done by the logged in user.
//
void UserAPI_updateUser(apiClient_t *apiClient, char *username, user_t *body) {
void
UserAPI_updateUser(apiClient_t *apiClient ,char * username ,user_t * body)
{
list_t *localVarQueryParameters = NULL;
list_t *localVarHeaderParameters = NULL;
list_t *localVarFormParameters = NULL;
@ -491,32 +511,30 @@ void UserAPI_updateUser(apiClient_t *apiClient, char *username, user_t *body) {
char *localVarBodyParameters = NULL;
// create the path
long sizeOfPath = strlen("/user/{username}") + 1;
long sizeOfPath = strlen("/user/{username}")+1;
char *localVarPath = malloc(sizeOfPath);
snprintf(localVarPath, sizeOfPath, "/user/{username}");
// Path Params
long sizeOfPathParams_username = strlen(username) + 3 + strlen(
"{ username }");
long sizeOfPathParams_username = strlen(username)+3 + strlen("{ username }");
if(username == NULL) {
goto end;
}
char *localVarToReplace_username = malloc(sizeOfPathParams_username);
char* localVarToReplace_username = malloc(sizeOfPathParams_username);
sprintf(localVarToReplace_username, "{%s}", "username");
localVarPath = strReplace(localVarPath, localVarToReplace_username,
username);
localVarPath = strReplace(localVarPath, localVarToReplace_username, username);
// Body Param
cJSON *localVarSingleItemJSON_body;
if(body != NULL) {
// string
if (body != NULL)
{
//string
localVarSingleItemJSON_body = user_convertToJSON(body);
localVarBodyParameters =
cJSON_Print(localVarSingleItemJSON_body);
localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body);
}
apiClient_invoke(apiClient,
localVarPath,
@ -528,15 +546,15 @@ void UserAPI_updateUser(apiClient_t *apiClient, char *username, user_t *body) {
localVarBodyParameters,
"PUT");
if(apiClient->response_code == 400) {
printf("%s\n", "Invalid user supplied");
if (apiClient->response_code == 400) {
printf("%s\n","Invalid user supplied");
}
if(apiClient->response_code == 404) {
printf("%s\n", "User not found");
if (apiClient->response_code == 404) {
printf("%s\n","User not found");
}
// No return type
//No return type
end:
if(apiClient->dataReceived) {
if (apiClient->dataReceived) {
free(apiClient->dataReceived);
}
@ -548,4 +566,6 @@ end:
free(localVarToReplace_username);
cJSON_Delete(localVarSingleItemJSON_body);
free(localVarBodyParameters);
}

View File

@ -11,43 +11,53 @@
//
// This can only be done by the logged in user.
//
void UserAPI_createUser(apiClient_t *apiClient, user_t *body);
void
UserAPI_createUser(apiClient_t *apiClient ,user_t * body);
// Creates list of users with given input array
//
void UserAPI_createUsersWithArrayInput(apiClient_t *apiClient, list_t *body);
void
UserAPI_createUsersWithArrayInput(apiClient_t *apiClient ,list_t * body);
// Creates list of users with given input array
//
void UserAPI_createUsersWithListInput(apiClient_t *apiClient, list_t *body);
void
UserAPI_createUsersWithListInput(apiClient_t *apiClient ,list_t * body);
// Delete user
//
// This can only be done by the logged in user.
//
void UserAPI_deleteUser(apiClient_t *apiClient, char *username);
void
UserAPI_deleteUser(apiClient_t *apiClient ,char * username);
// Get user by user name
//
user_t *UserAPI_getUserByName(apiClient_t *apiClient, char *username);
user_t*
UserAPI_getUserByName(apiClient_t *apiClient ,char * username);
// Logs user into the system
//
char *UserAPI_loginUser(apiClient_t *apiClient, char *username, char *password);
char*
UserAPI_loginUser(apiClient_t *apiClient ,char * username ,char * password);
// Logs out current logged in user session
//
void UserAPI_logoutUser(apiClient_t *apiClient);
void
UserAPI_logoutUser(apiClient_t *apiClient);
// Updated user
//
// This can only be done by the logged in user.
//
void UserAPI_updateUser(apiClient_t *apiClient, char *username, user_t *body);
void
UserAPI_updateUser(apiClient_t *apiClient ,char * username ,user_t * body);

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,7 @@
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
*/
#ifndef cJSON__h
#define cJSON__h
@ -50,7 +50,8 @@ extern "C"
#define cJSON_StringIsConst 512
/* The cJSON structure: */
typedef struct cJSON {
typedef struct cJSON
{
/* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */
struct cJSON *next;
struct cJSON *prev;
@ -71,44 +72,39 @@ typedef struct cJSON {
char *string;
} cJSON;
typedef struct cJSON_Hooks {
typedef struct cJSON_Hooks
{
void *(*malloc_fn)(size_t sz);
void (*free_fn)(void *ptr);
} cJSON_Hooks;
typedef int cJSON_bool;
#if !defined(__WINDOWS__) && \
(defined(WIN32) || \
defined(WIN64) || \
defined(_MSC_VER) || \
defined(_WIN32))
#if !defined(__WINDOWS__) && (defined(WIN32) || defined(WIN64) || defined(_MSC_VER) || defined(_WIN32))
#define __WINDOWS__
#endif
#ifdef __WINDOWS__
/* When compiling for windows, we specify a specific calling convention to avoid issues where we are being called from a project with a different default calling convention. For windows you have 2 define options:
CJSON_HIDE_SYMBOLS - Define this in the case where you don't want to ever dllexport symbols
CJSON_EXPORT_SYMBOLS - Define this on library build when you want to dllexport symbols (default)
CJSON_IMPORT_SYMBOLS - Define this if you want to dllimport symbol
CJSON_HIDE_SYMBOLS - Define this in the case where you don't want to ever dllexport symbols
CJSON_EXPORT_SYMBOLS - Define this on library build when you want to dllexport symbols (default)
CJSON_IMPORT_SYMBOLS - Define this if you want to dllimport symbol
For *nix builds that support visibility attribute, you can define similar behavior by
For *nix builds that support visibility attribute, you can define similar behavior by
setting default visibility to hidden by adding
-fvisibility=hidden (for gcc)
or
-xldscope=hidden (for sun cc)
to CFLAGS
setting default visibility to hidden by adding
-fvisibility=hidden (for gcc)
or
-xldscope=hidden (for sun cc)
to CFLAGS
then using the CJSON_API_VISIBILITY flag to "export" the same symbols the way CJSON_EXPORT_SYMBOLS does
then using the CJSON_API_VISIBILITY flag to "export" the same symbols the way CJSON_EXPORT_SYMBOLS does
*/
*/
/* export symbols by default, this is necessary for copy pasting the C and header file */
#if !defined(CJSON_HIDE_SYMBOLS) && \
!defined(CJSON_IMPORT_SYMBOLS) && \
!defined(CJSON_EXPORT_SYMBOLS)
#if !defined(CJSON_HIDE_SYMBOLS) && !defined(CJSON_IMPORT_SYMBOLS) && !defined(CJSON_EXPORT_SYMBOLS)
#define CJSON_EXPORT_SYMBOLS
#endif
@ -120,10 +116,7 @@ typedef int cJSON_bool;
#define CJSON_PUBLIC(type) __declspec(dllimport) type __stdcall
#endif
#else /* !WIN32 */
#if (defined(__GNUC__) || \
defined(__SUNPRO_CC) || \
defined(__SUNPRO_C)) && \
defined(CJSON_API_VISIBILITY)
#if (defined(__GNUC__) || defined(__SUNPRO_CC) || defined (__SUNPRO_C)) && defined(CJSON_API_VISIBILITY)
#define CJSON_PUBLIC(type) __attribute__((visibility("default"))) type
#else
#define CJSON_PUBLIC(type) type
@ -137,51 +130,43 @@ typedef int cJSON_bool;
#endif
/* returns the version of cJSON as a string */
CJSON_PUBLIC(const char *) cJSON_Version(void);
CJSON_PUBLIC(const char*) cJSON_Version(void);
/* Supply malloc, realloc and free functions to cJSON */
CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks * hooks);
CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks);
/* Memory Management: the caller is always responsible to free the results from all variants of cJSON_Parse (with cJSON_Delete) and cJSON_Print (with stdlib free, cJSON_Hooks.free_fn, or cJSON_free as appropriate). The exception is cJSON_PrintPreallocated, where the caller has full responsibility of the buffer. */
/* Supply a block of JSON, and this returns a cJSON object you can interrogate. */
CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value);
/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */
/* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error so will match cJSON_GetErrorPtr(). */
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value,
const char **return_parse_end,
cJSON_bool require_null_terminated);
CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated);
/* Render a cJSON entity to text for transfer/storage. */
CJSON_PUBLIC(char *) cJSON_Print(const cJSON * item);
CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item);
/* Render a cJSON entity to text for transfer/storage without any formatting. */
CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON * item);
CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item);
/* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */
CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON * item, int prebuffer,
cJSON_bool fmt);
CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt);
/* Render a cJSON entity to text using a buffer already allocated in memory with given length. Returns 1 on success and 0 on failure. */
/* NOTE: cJSON is not always 100% accurate in estimating how much memory it will use, so to be safe allocate 5 bytes more than you actually need */
CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON * item, char *buffer,
const int length,
const cJSON_bool format);
CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format);
/* Delete a cJSON entity and all subentities. */
CJSON_PUBLIC(void) cJSON_Delete(cJSON * c);
CJSON_PUBLIC(void) cJSON_Delete(cJSON *c);
/* Returns the number of items in an array (or object). */
CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON * array);
CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array);
/* Retrieve item number "index" from array "array". Returns NULL if unsuccessful. */
CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON * array, int index);
CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index);
/* Get item "string" from object. Case insensitive. */
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object,
const char *const string);
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(
const cJSON * const object, const char *const string);
CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON * object,
const char *string);
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string);
CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * const object, const char * const string);
CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const char *string);
/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */
CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void);
/* Check if the item is a string and return its valuestring */
CJSON_PUBLIC(char *) cJSON_GetStringValue(cJSON * item);
CJSON_PUBLIC(char *) cJSON_GetStringValue(cJSON *item);
/* These functions check the type of an item */
CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item);
@ -212,8 +197,8 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void);
CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string);
/* Create an object/arrray that only references it's elements so
* they will not be freed by cJSON_Delete */
CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON * child);
CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON * child);
CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child);
CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child);
/* These utilities create an Array of count items. */
CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count);
@ -222,109 +207,64 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int count);
CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char **strings, int count);
/* Append item to the specified array/object. */
CJSON_PUBLIC(void) cJSON_AddItemToArray(cJSON * array, cJSON * item);
CJSON_PUBLIC(void) cJSON_AddItemToObject(cJSON * object, const char *string,
cJSON * item);
CJSON_PUBLIC(void) cJSON_AddItemToArray(cJSON *array, cJSON *item);
CJSON_PUBLIC(void) cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item);
/* Use this when string is definitely const (i.e. a literal, or as good as), and will definitely survive the cJSON object.
* WARNING: When this function was used, make sure to always check that (item->type & cJSON_StringIsConst) is zero before
* writing to `item->string` */
CJSON_PUBLIC(void) cJSON_AddItemToObjectCS(cJSON * object, const char *string,
cJSON * item);
CJSON_PUBLIC(void) cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item);
/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */
CJSON_PUBLIC(void) cJSON_AddItemReferenceToArray(cJSON * array, cJSON * item);
CJSON_PUBLIC(void) cJSON_AddItemReferenceToObject(cJSON * object,
const char *string,
cJSON * item);
CJSON_PUBLIC(void) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item);
CJSON_PUBLIC(void) cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item);
/* Remove/Detatch items from Arrays/Objects. */
CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON * parent,
cJSON * const item);
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON * array, int which);
CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON * array, int which);
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON * object,
const char *string);
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON * object,
const char *string);
CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON * object,
const char *string);
CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON * object,
const char *string);
CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * const item);
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which);
CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which);
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const char *string);
CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *object, const char *string);
CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char *string);
CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object, const char *string);
/* Update array items. */
CJSON_PUBLIC(void) cJSON_InsertItemInArray(cJSON * array, int which,
cJSON * newitem); /* Shifts pre-existing items to the right. */
CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent,
cJSON * const item,
cJSON * replacement);
CJSON_PUBLIC(void) cJSON_ReplaceItemInArray(cJSON * array, int which,
cJSON * newitem);
CJSON_PUBLIC(void) cJSON_ReplaceItemInObject(cJSON * object, const char *string,
cJSON * newitem);
CJSON_PUBLIC(void) cJSON_ReplaceItemInObjectCaseSensitive(cJSON * object,
const char *string,
cJSON * newitem);
CJSON_PUBLIC(void) cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */
CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const parent, cJSON * const item, cJSON * replacement);
CJSON_PUBLIC(void) cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem);
CJSON_PUBLIC(void) cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem);
CJSON_PUBLIC(void) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object,const char *string,cJSON *newitem);
/* Duplicate a cJSON item */
CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON * item, cJSON_bool recurse);
CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recurse);
/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will
need to be released. With recurse!=0, it will duplicate any children connected to the item.
The item->next and ->prev pointers are always zero on return from Duplicate. */
need to be released. With recurse!=0, it will duplicate any children connected to the item.
The item->next and ->prev pointers are always zero on return from Duplicate. */
/* Recursively compare two cJSON items for equality. If either a or b is NULL or invalid, they will be considered unequal.
* case_sensitive determines if object keys are treated case sensitive (1) or case insensitive (0) */
CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a,
const cJSON * const b,
const cJSON_bool case_sensitive);
CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSON * const b, const cJSON_bool case_sensitive);
CJSON_PUBLIC(void) cJSON_Minify(char *json);
/* Helper functions for creating and adding items to an object at the same time.
* They return the added item or NULL on failure. */
CJSON_PUBLIC(cJSON *) cJSON_AddNullToObject(cJSON * const object,
const char *const name);
CJSON_PUBLIC(cJSON *) cJSON_AddTrueToObject(cJSON * const object,
const char *const name);
CJSON_PUBLIC(cJSON *) cJSON_AddFalseToObject(cJSON * const object,
const char *const name);
CJSON_PUBLIC(cJSON *) cJSON_AddBoolToObject(cJSON * const object,
const char *const name,
const cJSON_bool boolean);
CJSON_PUBLIC(cJSON *) cJSON_AddNumberToObject(cJSON * const object,
const char *const name,
const double number);
CJSON_PUBLIC(cJSON *) cJSON_AddStringToObject(cJSON * const object,
const char *const name,
const char *const string);
CJSON_PUBLIC(cJSON *) cJSON_AddRawToObject(cJSON * const object,
const char *const name,
const char *const raw);
CJSON_PUBLIC(cJSON *) cJSON_AddObjectToObject(cJSON * const object,
const char *const name);
CJSON_PUBLIC(cJSON *) cJSON_AddArrayToObject(cJSON * const object,
const char *const name);
CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const char * const name);
CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const char * const name);
CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const char * const name);
CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const char * const name, const cJSON_bool boolean);
CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number);
CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const char * const name, const char * const string);
CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const char * const name, const char * const raw);
CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const char * const name);
CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const char * const name);
/* When assigning an integer value, it needs to be propagated to valuedouble too. */
#define cJSON_SetIntValue(object, \
number) ((object) ? (object)->valueint = \
(object)->valuedouble = \
(number) : (number))
#define cJSON_SetIntValue(object, number) ((object) ? (object)->valueint = (object)->valuedouble = (number) : (number))
/* helper for the cJSON_SetNumberValue macro */
CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON * object, double number);
#define cJSON_SetNumberValue(object, \
number) ((object != \
NULL) ? cJSON_SetNumberHelper(object, \
( \
double) \
number) : ( \
number))
CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number);
#define cJSON_SetNumberValue(object, number) ((object != NULL) ? cJSON_SetNumberHelper(object, (double)number) : (number))
/* Macro for iterating over an array or object */
#define cJSON_ArrayForEach(element, array) for(element = \
(array != \
NULL) ? (array)->child : \
NULL; \
element != NULL; \
element = element->next)
#define cJSON_ArrayForEach(element, array) for(element = (array != NULL) ? (array)->child : NULL; element != NULL; element = element->next)
/* malloc/free objects using the malloc/free functions that have been set with cJSON_InitHooks */
CJSON_PUBLIC(void *) cJSON_malloc(size_t size);

View File

@ -17,20 +17,17 @@ typedef struct apiClient_t {
char *accessToken;
} apiClient_t;
typedef struct binary_t {
uint8_t *data;
typedef struct binary_t
{
uint8_t* data;
unsigned int len;
} binary_t;
apiClient_t *apiClient_create();
apiClient_t* apiClient_create();
void apiClient_free(apiClient_t *apiClient);
void apiClient_invoke(apiClient_t *apiClient, char *operationParameter,
list_t *queryParameters, list_t *headerParameters,
list_t *formParameters, list_t *headerType,
list_t *contentType, char *bodyParameters,
char *requestType);
void apiClient_invoke(apiClient_t *apiClient,char* operationParameter, list_t *queryParameters, list_t *headerParameters, list_t *formParameters,list_t *headerType,list_t *contentType, char *bodyParameters, char *requestType);
char *strReplace(char *orig, char *rep, char *with);

View File

@ -1,11 +1,11 @@
#ifndef _keyValuePair_H_
#define _keyValuePair_H_
#include <string.h>
#include<string.h>
typedef struct keyValuePair_t {
char *key;
void *value;
char* key;
void* value;
} keyValuePair_t;
keyValuePair_t *keyValuePair_create(char *key, void *value);

View File

@ -9,9 +9,9 @@ typedef struct list_t list_t;
typedef struct listEntry_t listEntry_t;
struct listEntry_t {
listEntry_t *nextListEntry;
listEntry_t *prevListEntry;
void *data;
listEntry_t* nextListEntry;
listEntry_t* prevListEntry;
void* data;
};
typedef struct list_t {
@ -21,28 +21,19 @@ typedef struct list_t {
long count;
} list_t;
#define list_ForEach(element, list) for(element = \
(list != \
NULL) ? (list)->firstEntry : \
NULL; \
element != NULL; \
element = element->nextListEntry)
#define list_ForEach(element, list) for(element = (list != NULL) ? (list)->firstEntry : NULL; element != NULL; element = element->nextListEntry)
list_t *list_create();
void list_free(list_t *listToFree);
list_t* list_create();
void list_free(list_t* listToFree);
void list_addElement(list_t *list, void *dataToAddInList);
listEntry_t *list_getElementAt(list_t *list, long indexOfElement);
listEntry_t *list_getWithIndex(list_t *list, int index);
void list_removeElement(list_t *list, listEntry_t *elementToRemove);
void list_addElement(list_t* list, void* dataToAddInList);
listEntry_t* list_getElementAt(list_t *list, long indexOfElement);
listEntry_t* list_getWithIndex(list_t* list, int index);
void list_removeElement(list_t* list, listEntry_t* elementToRemove);
void list_iterateThroughListForward(list_t *list, void (*operationToPerform)(
listEntry_t *,
void *), void *additionalDataNeededForCallbackFunction);
void list_iterateThroughListBackward(list_t *list, void (*operationToPerform)(
listEntry_t *,
void *), void *additionalDataNeededForCallbackFunction);
void list_iterateThroughListForward(list_t* list, void (*operationToPerform)(listEntry_t*, void*), void *additionalDataNeededForCallbackFunction);
void list_iterateThroughListBackward(list_t* list, void (*operationToPerform)(listEntry_t*, void*), void *additionalDataNeededForCallbackFunction);
void listEntry_printAsInt(listEntry_t *listEntry, void *additionalData);
void listEntry_printAsInt(listEntry_t* listEntry, void *additionalData);
void listEntry_free(listEntry_t *listEntry, void *additionalData);
#endif // INCLUDE_LIST_H

View File

@ -5,9 +5,13 @@
api_response_t *api_response_create(int code, char *type, char *message) {
api_response_t *api_response_create(
int code,
char *type,
char *message
) {
api_response_t *api_response_local_var = malloc(sizeof(api_response_t));
if(!api_response_local_var) {
if (!api_response_local_var) {
return NULL;
}
api_response_local_var->code = code;
@ -30,73 +34,68 @@ cJSON *api_response_convertToJSON(api_response_t *api_response) {
// api_response->code
if(api_response->code) {
if(cJSON_AddNumberToObject(item, "code",
api_response->code) == NULL)
{
goto fail; // Numeric
if(cJSON_AddNumberToObject(item, "code", api_response->code) == NULL) {
goto fail; //Numeric
}
}
// api_response->type
if(api_response->type) {
if(cJSON_AddStringToObject(item, "type",
api_response->type) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "type", api_response->type) == NULL) {
goto fail; //String
}
}
// api_response->message
if(api_response->message) {
if(cJSON_AddStringToObject(item, "message",
api_response->message) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "message", api_response->message) == NULL) {
goto fail; //String
}
}
return item;
fail:
if(item) {
if (item) {
cJSON_Delete(item);
}
return NULL;
}
api_response_t *api_response_parseFromJSON(cJSON *api_responseJSON) {
api_response_t *api_response_parseFromJSON(cJSON *api_responseJSON){
api_response_t *api_response_local_var = NULL;
// api_response->code
cJSON *code =
cJSON_GetObjectItemCaseSensitive(api_responseJSON, "code");
if(code) {
if(!cJSON_IsNumber(code)) {
goto end; // Numeric
cJSON *code = cJSON_GetObjectItemCaseSensitive(api_responseJSON, "code");
if (code) {
if(!cJSON_IsNumber(code))
{
goto end; //Numeric
}
}
// api_response->type
cJSON *type =
cJSON_GetObjectItemCaseSensitive(api_responseJSON, "type");
if(type) {
if(!cJSON_IsString(type)) {
goto end; // String
cJSON *type = cJSON_GetObjectItemCaseSensitive(api_responseJSON, "type");
if (type) {
if(!cJSON_IsString(type))
{
goto end; //String
}
}
// api_response->message
cJSON *message = cJSON_GetObjectItemCaseSensitive(api_responseJSON,
"message");
if(message) {
if(!cJSON_IsString(message)) {
goto end; // String
cJSON *message = cJSON_GetObjectItemCaseSensitive(api_responseJSON, "message");
if (message) {
if(!cJSON_IsString(message))
{
goto end; //String
}
}
api_response_local_var = api_response_create(
api_response_local_var = api_response_create (
code ? code->valuedouble : 0,
type ? strdup(type->valuestring) : NULL,
message ? strdup(message->valuestring) : NULL
@ -105,4 +104,5 @@ api_response_t *api_response_parseFromJSON(cJSON *api_responseJSON) {
return api_response_local_var;
end:
return NULL;
}

View File

@ -15,12 +15,17 @@
typedef struct api_response_t {
int code; // numeric
int code; //numeric
char *type; // string
char *message; // string
} api_response_t;
api_response_t *api_response_create(int code, char *type, char *message);
api_response_t *api_response_create(
int code,
char *type,
char *message
);
void api_response_free(api_response_t *api_response);
@ -29,3 +34,4 @@ api_response_t *api_response_parseFromJSON(cJSON *api_responseJSON);
cJSON *api_response_convertToJSON(api_response_t *api_response);
#endif /* _api_response_H_ */

View File

@ -5,9 +5,12 @@
category_t *category_create(long id, char *name) {
category_t *category_create(
long id,
char *name
) {
category_t *category_local_var = malloc(sizeof(category_t));
if(!category_local_var) {
if (!category_local_var) {
return NULL;
}
category_local_var->id = id;
@ -29,49 +32,50 @@ cJSON *category_convertToJSON(category_t *category) {
// category->id
if(category->id) {
if(cJSON_AddNumberToObject(item, "id", category->id) == NULL) {
goto fail; // Numeric
goto fail; //Numeric
}
}
// category->name
if(category->name) {
if(cJSON_AddStringToObject(item, "name",
category->name) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "name", category->name) == NULL) {
goto fail; //String
}
}
return item;
fail:
if(item) {
if (item) {
cJSON_Delete(item);
}
return NULL;
}
category_t *category_parseFromJSON(cJSON *categoryJSON) {
category_t *category_parseFromJSON(cJSON *categoryJSON){
category_t *category_local_var = NULL;
// category->id
cJSON *id = cJSON_GetObjectItemCaseSensitive(categoryJSON, "id");
if(id) {
if(!cJSON_IsNumber(id)) {
goto end; // Numeric
if (id) {
if(!cJSON_IsNumber(id))
{
goto end; //Numeric
}
}
// category->name
cJSON *name = cJSON_GetObjectItemCaseSensitive(categoryJSON, "name");
if(name) {
if(!cJSON_IsString(name)) {
goto end; // String
if (name) {
if(!cJSON_IsString(name))
{
goto end; //String
}
}
category_local_var = category_create(
category_local_var = category_create (
id ? id->valuedouble : 0,
name ? strdup(name->valuestring) : NULL
);
@ -79,4 +83,5 @@ category_t *category_parseFromJSON(cJSON *categoryJSON) {
return category_local_var;
end:
return NULL;
}

View File

@ -15,11 +15,15 @@
typedef struct category_t {
long id; // numeric
long id; //numeric
char *name; // string
} category_t;
category_t *category_create(long id, char *name);
category_t *category_create(
long id,
char *name
);
void category_free(category_t *category);
@ -28,3 +32,4 @@ category_t *category_parseFromJSON(cJSON *categoryJSON);
cJSON *category_convertToJSON(category_t *category);
#endif /* _category_H_ */

View File

@ -10,7 +10,7 @@ object_t *object_create() {
}
void object_free(object_t *object) {
free(object);
free (object);
}
cJSON *object_convertToJSON(object_t *object) {
@ -22,7 +22,7 @@ fail:
return NULL;
}
object_t *object_parseFromJSON(char *jsonString) {
object_t *object_parseFromJSON(char *jsonString){
object_t *object = NULL;
return object;

View File

@ -4,14 +4,14 @@
#include "order.h"
char *statusorder_ToString(status_e status) {
char *statusArray[] = { "placed", "approved", "delivered" };
char* statusorder_ToString(status_e status){
char *statusArray[] = { "placed","approved","delivered" };
return statusArray[status];
}
}
status_e statusorder_FromString(char *status) {
status_e statusorder_FromString(char* status){
int stringToReturn = 0;
char *statusArray[] = { "placed", "approved", "delivered" };
char *statusArray[] = { "placed","approved","delivered" };
size_t sizeofArray = sizeof(statusArray) / sizeof(statusArray[0]);
while(stringToReturn < sizeofArray) {
if(strcmp(status, statusArray[stringToReturn]) == 0) {
@ -20,12 +20,18 @@ status_e statusorder_FromString(char *status) {
stringToReturn++;
}
return 0;
}
}
order_t *order_create(long id, long petId, int quantity, char *shipDate,
status_e status, int complete) {
order_t *order_create(
long id,
long petId,
int quantity,
char *shipDate,
status_e status,
int complete
) {
order_t *order_local_var = malloc(sizeof(order_t));
if(!order_local_var) {
if (!order_local_var) {
return NULL;
}
order_local_var->id = id;
@ -51,126 +57,121 @@ cJSON *order_convertToJSON(order_t *order) {
// order->id
if(order->id) {
if(cJSON_AddNumberToObject(item, "id", order->id) == NULL) {
goto fail; // Numeric
goto fail; //Numeric
}
}
// order->petId
if(order->petId) {
if(cJSON_AddNumberToObject(item, "petId",
order->petId) == NULL)
{
goto fail; // Numeric
if(cJSON_AddNumberToObject(item, "petId", order->petId) == NULL) {
goto fail; //Numeric
}
}
// order->quantity
if(order->quantity) {
if(cJSON_AddNumberToObject(item, "quantity",
order->quantity) == NULL)
{
goto fail; // Numeric
if(cJSON_AddNumberToObject(item, "quantity", order->quantity) == NULL) {
goto fail; //Numeric
}
}
// order->shipDate
if(order->shipDate) {
if(cJSON_AddStringToObject(item, "shipDate",
order->shipDate) == NULL)
{
goto fail; // Date-Time
if(cJSON_AddStringToObject(item, "shipDate", order->shipDate) == NULL) {
goto fail; //Date-Time
}
}
// order->status
if(cJSON_AddStringToObject(item, "status",
statusorder_ToString(order->status)) == NULL)
if(cJSON_AddStringToObject(item, "status", statusorder_ToString(order->status)) == NULL)
{
goto fail; // Enum
goto fail; //Enum
}
// order->complete
if(order->complete) {
if(cJSON_AddBoolToObject(item, "complete",
order->complete) == NULL)
{
goto fail; // Bool
if(cJSON_AddBoolToObject(item, "complete", order->complete) == NULL) {
goto fail; //Bool
}
}
return item;
fail:
if(item) {
if (item) {
cJSON_Delete(item);
}
return NULL;
}
order_t *order_parseFromJSON(cJSON *orderJSON) {
order_t *order_parseFromJSON(cJSON *orderJSON){
order_t *order_local_var = NULL;
// order->id
cJSON *id = cJSON_GetObjectItemCaseSensitive(orderJSON, "id");
if(id) {
if(!cJSON_IsNumber(id)) {
goto end; // Numeric
if (id) {
if(!cJSON_IsNumber(id))
{
goto end; //Numeric
}
}
// order->petId
cJSON *petId = cJSON_GetObjectItemCaseSensitive(orderJSON, "petId");
if(petId) {
if(!cJSON_IsNumber(petId)) {
goto end; // Numeric
if (petId) {
if(!cJSON_IsNumber(petId))
{
goto end; //Numeric
}
}
// order->quantity
cJSON *quantity =
cJSON_GetObjectItemCaseSensitive(orderJSON, "quantity");
if(quantity) {
if(!cJSON_IsNumber(quantity)) {
goto end; // Numeric
cJSON *quantity = cJSON_GetObjectItemCaseSensitive(orderJSON, "quantity");
if (quantity) {
if(!cJSON_IsNumber(quantity))
{
goto end; //Numeric
}
}
// order->shipDate
cJSON *shipDate =
cJSON_GetObjectItemCaseSensitive(orderJSON, "shipDate");
if(shipDate) {
if(!cJSON_IsString(shipDate)) {
goto end; // DateTime
cJSON *shipDate = cJSON_GetObjectItemCaseSensitive(orderJSON, "shipDate");
if (shipDate) {
if(!cJSON_IsString(shipDate))
{
goto end; //DateTime
}
}
// order->status
cJSON *status = cJSON_GetObjectItemCaseSensitive(orderJSON, "status");
status_e statusVariable;
if(status) {
if(!cJSON_IsString(status)) {
goto end; // Enum
if (status) {
if(!cJSON_IsString(status))
{
goto end; //Enum
}
statusVariable = statusorder_FromString(status->valuestring);
}
// order->complete
cJSON *complete =
cJSON_GetObjectItemCaseSensitive(orderJSON, "complete");
if(complete) {
if(!cJSON_IsBool(complete)) {
goto end; // Bool
cJSON *complete = cJSON_GetObjectItemCaseSensitive(orderJSON, "complete");
if (complete) {
if(!cJSON_IsBool(complete))
{
goto end; //Bool
}
}
order_local_var = order_create(
order_local_var = order_create (
id ? id->valuedouble : 0,
petId ? petId->valuedouble : 0,
quantity ? quantity->valuedouble : 0,
@ -182,4 +183,5 @@ order_t *order_parseFromJSON(cJSON *orderJSON) {
return order_local_var;
end:
return NULL;
}

View File

@ -12,24 +12,31 @@
#include "../include/list.h"
#include "../include/keyValuePair.h"
typedef enum { placed, approved, delivered } status_e;
typedef enum { placed, approved, delivered } status_e;
char *status_ToString(status_e status);
char* status_ToString(status_e status);
status_e status_FromString(char *status);
status_e status_FromString(char* status);
typedef struct order_t {
long id; // numeric
long petId; // numeric
int quantity; // numeric
char *shipDate; // date time
status_e status; // enum
int complete; // boolean
long id; //numeric
long petId; //numeric
int quantity; //numeric
char *shipDate; //date time
status_e status; //enum
int complete; //boolean
} order_t;
order_t *order_create(long id, long petId, int quantity, char *shipDate,
status_e status, int complete);
order_t *order_create(
long id,
long petId,
int quantity,
char *shipDate,
status_e status,
int complete
);
void order_free(order_t *order);
@ -38,3 +45,4 @@ order_t *order_parseFromJSON(cJSON *orderJSON);
cJSON *order_convertToJSON(order_t *order);
#endif /* _order_H_ */

View File

@ -4,14 +4,14 @@
#include "pet.h"
char *statuspet_ToString(status_e status) {
char *statusArray[] = { "available", "pending", "sold" };
char* statuspet_ToString(status_e status){
char *statusArray[] = { "available","pending","sold" };
return statusArray[status];
}
}
status_e statuspet_FromString(char *status) {
status_e statuspet_FromString(char* status){
int stringToReturn = 0;
char *statusArray[] = { "available", "pending", "sold" };
char *statusArray[] = { "available","pending","sold" };
size_t sizeofArray = sizeof(statusArray) / sizeof(statusArray[0]);
while(stringToReturn < sizeofArray) {
if(strcmp(status, statusArray[stringToReturn]) == 0) {
@ -20,12 +20,18 @@ status_e statuspet_FromString(char *status) {
stringToReturn++;
}
return 0;
}
}
pet_t *pet_create(long id, category_t *category, char *name, list_t *photoUrls,
list_t *tags, status_e status) {
pet_t *pet_create(
long id,
category_t *category,
char *name,
list_t *photoUrls,
list_t *tags,
status_e status
) {
pet_t *pet_local_var = malloc(sizeof(pet_t));
if(!pet_local_var) {
if (!pet_local_var) {
return NULL;
}
pet_local_var->id = id;
@ -60,17 +66,16 @@ cJSON *pet_convertToJSON(pet_t *pet) {
// pet->id
if(pet->id) {
if(cJSON_AddNumberToObject(item, "id", pet->id) == NULL) {
goto fail; // Numeric
goto fail; //Numeric
}
}
// pet->category
if(pet->category) {
cJSON *category_local_JSON = category_convertToJSON(
pet->category);
cJSON *category_local_JSON = category_convertToJSON(pet->category);
if(category_local_JSON == NULL) {
goto fail; // model
goto fail; //model
}
cJSON_AddItemToObject(item, "category", category_local_JSON);
if(item->child == NULL) {
@ -80,30 +85,28 @@ cJSON *pet_convertToJSON(pet_t *pet) {
// pet->name
if(!pet->name) {
if (!pet->name) {
goto fail;
}
if(cJSON_AddStringToObject(item, "name", pet->name) == NULL) {
goto fail; // String
goto fail; //String
}
// pet->photoUrls
if(!pet->photoUrls) {
if (!pet->photoUrls) {
goto fail;
}
cJSON *photo_urls = cJSON_AddArrayToObject(item, "photoUrls");
if(photo_urls == NULL) {
goto fail; // primitive container
goto fail; //primitive container
}
listEntry_t *photo_urlsListEntry;
list_ForEach(photo_urlsListEntry, pet->photoUrls) {
if(cJSON_AddStringToObject(photo_urls, "",
(char *) photo_urlsListEntry->data)
== NULL)
if(cJSON_AddStringToObject(photo_urls, "", (char*)photo_urlsListEntry->data) == NULL)
{
goto fail;
}
@ -114,14 +117,13 @@ cJSON *pet_convertToJSON(pet_t *pet) {
if(pet->tags) {
cJSON *tags = cJSON_AddArrayToObject(item, "tags");
if(tags == NULL) {
goto fail; // nonprimitive container
goto fail; //nonprimitive container
}
listEntry_t *tagsListEntry;
if(pet->tags) {
if (pet->tags) {
list_ForEach(tagsListEntry, pet->tags) {
cJSON *itemLocal = tag_convertToJSON(
tagsListEntry->data);
cJSON *itemLocal = tag_convertToJSON(tagsListEntry->data);
if(itemLocal == NULL) {
goto fail;
}
@ -133,54 +135,55 @@ cJSON *pet_convertToJSON(pet_t *pet) {
// pet->status
if(cJSON_AddStringToObject(item, "status",
statuspet_ToString(pet->status)) == NULL)
if(cJSON_AddStringToObject(item, "status", statuspet_ToString(pet->status)) == NULL)
{
goto fail; // Enum
goto fail; //Enum
}
return item;
fail:
if(item) {
if (item) {
cJSON_Delete(item);
}
return NULL;
}
pet_t *pet_parseFromJSON(cJSON *petJSON) {
pet_t *pet_parseFromJSON(cJSON *petJSON){
pet_t *pet_local_var = NULL;
// pet->id
cJSON *id = cJSON_GetObjectItemCaseSensitive(petJSON, "id");
if(id) {
if(!cJSON_IsNumber(id)) {
goto end; // Numeric
if (id) {
if(!cJSON_IsNumber(id))
{
goto end; //Numeric
}
}
// pet->category
cJSON *category = cJSON_GetObjectItemCaseSensitive(petJSON, "category");
category_t *category_local_nonprim = NULL;
if(category) {
category_local_nonprim = category_parseFromJSON(category); // nonprimitive
if (category) {
category_local_nonprim = category_parseFromJSON(category); //nonprimitive
}
// pet->name
cJSON *name = cJSON_GetObjectItemCaseSensitive(petJSON, "name");
if(!name) {
if (!name) {
goto end;
}
if(!cJSON_IsString(name)) {
goto end; // String
if(!cJSON_IsString(name))
{
goto end; //String
}
// pet->photoUrls
cJSON *photoUrls =
cJSON_GetObjectItemCaseSensitive(petJSON, "photoUrls");
if(!photoUrls) {
cJSON *photoUrls = cJSON_GetObjectItemCaseSensitive(petJSON, "photoUrls");
if (!photoUrls) {
goto end;
}
@ -188,37 +191,36 @@ pet_t *pet_parseFromJSON(cJSON *petJSON) {
cJSON *photo_urls_local;
if(!cJSON_IsArray(photoUrls)) {
goto end; // primitive container
goto end;//primitive container
}
photo_urlsList = list_create();
cJSON_ArrayForEach(photo_urls_local, photoUrls)
{
if(!cJSON_IsString(photo_urls_local)) {
if(!cJSON_IsString(photo_urls_local))
{
goto end;
}
list_addElement(photo_urlsList,
strdup(photo_urls_local->valuestring));
list_addElement(photo_urlsList , strdup(photo_urls_local->valuestring));
}
// pet->tags
cJSON *tags = cJSON_GetObjectItemCaseSensitive(petJSON, "tags");
list_t *tagsList;
if(tags) {
if (tags) {
cJSON *tags_local_nonprimitive;
if(!cJSON_IsArray(tags)) {
goto end; // nonprimitive container
if(!cJSON_IsArray(tags)){
goto end; //nonprimitive container
}
tagsList = list_create();
cJSON_ArrayForEach(tags_local_nonprimitive, tags)
cJSON_ArrayForEach(tags_local_nonprimitive,tags )
{
if(!cJSON_IsObject(tags_local_nonprimitive)) {
if(!cJSON_IsObject(tags_local_nonprimitive)){
goto end;
}
tag_t *tagsItem = tag_parseFromJSON(
tags_local_nonprimitive);
tag_t *tagsItem = tag_parseFromJSON(tags_local_nonprimitive);
list_addElement(tagsList, tagsItem);
}
@ -227,15 +229,16 @@ pet_t *pet_parseFromJSON(cJSON *petJSON) {
// pet->status
cJSON *status = cJSON_GetObjectItemCaseSensitive(petJSON, "status");
status_e statusVariable;
if(status) {
if(!cJSON_IsString(status)) {
goto end; // Enum
if (status) {
if(!cJSON_IsString(status))
{
goto end; //Enum
}
statusVariable = statuspet_FromString(status->valuestring);
}
pet_local_var = pet_create(
pet_local_var = pet_create (
id ? id->valuedouble : 0,
category ? category_local_nonprim : NULL,
strdup(name->valuestring),
@ -247,4 +250,5 @@ pet_t *pet_parseFromJSON(cJSON *petJSON) {
return pet_local_var;
end:
return NULL;
}

View File

@ -14,24 +14,31 @@
#include "category.h"
#include "tag.h"
typedef enum { available, pending, sold } status_e;
typedef enum { available, pending, sold } status_e;
char *status_ToString(status_e status);
char* status_ToString(status_e status);
status_e status_FromString(char *status);
status_e status_FromString(char* status);
typedef struct pet_t {
long id; // numeric
category_t *category; // model
long id; //numeric
category_t *category; //model
char *name; // string
list_t *photoUrls; // primitive container
list_t *tags; // nonprimitive container
status_e status; // enum
list_t *photoUrls; //primitive container
list_t *tags; //nonprimitive container
status_e status; //enum
} pet_t;
pet_t *pet_create(long id, category_t *category, char *name, list_t *photoUrls,
list_t *tags, status_e status);
pet_t *pet_create(
long id,
category_t *category,
char *name,
list_t *photoUrls,
list_t *tags,
status_e status
);
void pet_free(pet_t *pet);
@ -40,3 +47,4 @@ pet_t *pet_parseFromJSON(cJSON *petJSON);
cJSON *pet_convertToJSON(pet_t *pet);
#endif /* _pet_H_ */

View File

@ -5,9 +5,12 @@
tag_t *tag_create(long id, char *name) {
tag_t *tag_create(
long id,
char *name
) {
tag_t *tag_local_var = malloc(sizeof(tag_t));
if(!tag_local_var) {
if (!tag_local_var) {
return NULL;
}
tag_local_var->id = id;
@ -29,7 +32,7 @@ cJSON *tag_convertToJSON(tag_t *tag) {
// tag->id
if(tag->id) {
if(cJSON_AddNumberToObject(item, "id", tag->id) == NULL) {
goto fail; // Numeric
goto fail; //Numeric
}
}
@ -37,39 +40,42 @@ cJSON *tag_convertToJSON(tag_t *tag) {
// tag->name
if(tag->name) {
if(cJSON_AddStringToObject(item, "name", tag->name) == NULL) {
goto fail; // String
goto fail; //String
}
}
return item;
fail:
if(item) {
if (item) {
cJSON_Delete(item);
}
return NULL;
}
tag_t *tag_parseFromJSON(cJSON *tagJSON) {
tag_t *tag_parseFromJSON(cJSON *tagJSON){
tag_t *tag_local_var = NULL;
// tag->id
cJSON *id = cJSON_GetObjectItemCaseSensitive(tagJSON, "id");
if(id) {
if(!cJSON_IsNumber(id)) {
goto end; // Numeric
if (id) {
if(!cJSON_IsNumber(id))
{
goto end; //Numeric
}
}
// tag->name
cJSON *name = cJSON_GetObjectItemCaseSensitive(tagJSON, "name");
if(name) {
if(!cJSON_IsString(name)) {
goto end; // String
if (name) {
if(!cJSON_IsString(name))
{
goto end; //String
}
}
tag_local_var = tag_create(
tag_local_var = tag_create (
id ? id->valuedouble : 0,
name ? strdup(name->valuestring) : NULL
);
@ -77,4 +83,5 @@ tag_t *tag_parseFromJSON(cJSON *tagJSON) {
return tag_local_var;
end:
return NULL;
}

View File

@ -15,11 +15,15 @@
typedef struct tag_t {
long id; // numeric
long id; //numeric
char *name; // string
} tag_t;
tag_t *tag_create(long id, char *name);
tag_t *tag_create(
long id,
char *name
);
void tag_free(tag_t *tag);
@ -28,3 +32,4 @@ tag_t *tag_parseFromJSON(cJSON *tagJSON);
cJSON *tag_convertToJSON(tag_t *tag);
#endif /* _tag_H_ */

View File

@ -5,10 +5,18 @@
user_t *user_create(long id, char *username, char *firstName, char *lastName,
char *email, char *password, char *phone, int userStatus) {
user_t *user_create(
long id,
char *username,
char *firstName,
char *lastName,
char *email,
char *password,
char *phone,
int userStatus
) {
user_t *user_local_var = malloc(sizeof(user_t));
if(!user_local_var) {
if (!user_local_var) {
return NULL;
}
user_local_var->id = id;
@ -41,162 +49,152 @@ cJSON *user_convertToJSON(user_t *user) {
// user->id
if(user->id) {
if(cJSON_AddNumberToObject(item, "id", user->id) == NULL) {
goto fail; // Numeric
goto fail; //Numeric
}
}
// user->username
if(user->username) {
if(cJSON_AddStringToObject(item, "username",
user->username) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "username", user->username) == NULL) {
goto fail; //String
}
}
// user->firstName
if(user->firstName) {
if(cJSON_AddStringToObject(item, "firstName",
user->firstName) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "firstName", user->firstName) == NULL) {
goto fail; //String
}
}
// user->lastName
if(user->lastName) {
if(cJSON_AddStringToObject(item, "lastName",
user->lastName) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "lastName", user->lastName) == NULL) {
goto fail; //String
}
}
// user->email
if(user->email) {
if(cJSON_AddStringToObject(item, "email",
user->email) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "email", user->email) == NULL) {
goto fail; //String
}
}
// user->password
if(user->password) {
if(cJSON_AddStringToObject(item, "password",
user->password) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "password", user->password) == NULL) {
goto fail; //String
}
}
// user->phone
if(user->phone) {
if(cJSON_AddStringToObject(item, "phone",
user->phone) == NULL)
{
goto fail; // String
if(cJSON_AddStringToObject(item, "phone", user->phone) == NULL) {
goto fail; //String
}
}
// user->userStatus
if(user->userStatus) {
if(cJSON_AddNumberToObject(item, "userStatus",
user->userStatus) == NULL)
{
goto fail; // Numeric
if(cJSON_AddNumberToObject(item, "userStatus", user->userStatus) == NULL) {
goto fail; //Numeric
}
}
return item;
fail:
if(item) {
if (item) {
cJSON_Delete(item);
}
return NULL;
}
user_t *user_parseFromJSON(cJSON *userJSON) {
user_t *user_parseFromJSON(cJSON *userJSON){
user_t *user_local_var = NULL;
// user->id
cJSON *id = cJSON_GetObjectItemCaseSensitive(userJSON, "id");
if(id) {
if(!cJSON_IsNumber(id)) {
goto end; // Numeric
if (id) {
if(!cJSON_IsNumber(id))
{
goto end; //Numeric
}
}
// user->username
cJSON *username =
cJSON_GetObjectItemCaseSensitive(userJSON, "username");
if(username) {
if(!cJSON_IsString(username)) {
goto end; // String
cJSON *username = cJSON_GetObjectItemCaseSensitive(userJSON, "username");
if (username) {
if(!cJSON_IsString(username))
{
goto end; //String
}
}
// user->firstName
cJSON *firstName = cJSON_GetObjectItemCaseSensitive(userJSON,
"firstName");
if(firstName) {
if(!cJSON_IsString(firstName)) {
goto end; // String
cJSON *firstName = cJSON_GetObjectItemCaseSensitive(userJSON, "firstName");
if (firstName) {
if(!cJSON_IsString(firstName))
{
goto end; //String
}
}
// user->lastName
cJSON *lastName =
cJSON_GetObjectItemCaseSensitive(userJSON, "lastName");
if(lastName) {
if(!cJSON_IsString(lastName)) {
goto end; // String
cJSON *lastName = cJSON_GetObjectItemCaseSensitive(userJSON, "lastName");
if (lastName) {
if(!cJSON_IsString(lastName))
{
goto end; //String
}
}
// user->email
cJSON *email = cJSON_GetObjectItemCaseSensitive(userJSON, "email");
if(email) {
if(!cJSON_IsString(email)) {
goto end; // String
if (email) {
if(!cJSON_IsString(email))
{
goto end; //String
}
}
// user->password
cJSON *password =
cJSON_GetObjectItemCaseSensitive(userJSON, "password");
if(password) {
if(!cJSON_IsString(password)) {
goto end; // String
cJSON *password = cJSON_GetObjectItemCaseSensitive(userJSON, "password");
if (password) {
if(!cJSON_IsString(password))
{
goto end; //String
}
}
// user->phone
cJSON *phone = cJSON_GetObjectItemCaseSensitive(userJSON, "phone");
if(phone) {
if(!cJSON_IsString(phone)) {
goto end; // String
if (phone) {
if(!cJSON_IsString(phone))
{
goto end; //String
}
}
// user->userStatus
cJSON *userStatus = cJSON_GetObjectItemCaseSensitive(userJSON,
"userStatus");
if(userStatus) {
if(!cJSON_IsNumber(userStatus)) {
goto end; // Numeric
cJSON *userStatus = cJSON_GetObjectItemCaseSensitive(userJSON, "userStatus");
if (userStatus) {
if(!cJSON_IsNumber(userStatus))
{
goto end; //Numeric
}
}
user_local_var = user_create(
user_local_var = user_create (
id ? id->valuedouble : 0,
username ? strdup(username->valuestring) : NULL,
firstName ? strdup(firstName->valuestring) : NULL,
@ -210,4 +208,5 @@ user_t *user_parseFromJSON(cJSON *userJSON) {
return user_local_var;
end:
return NULL;
}

View File

@ -15,18 +15,27 @@
typedef struct user_t {
long id; // numeric
long id; //numeric
char *username; // string
char *firstName; // string
char *lastName; // string
char *email; // string
char *password; // string
char *phone; // string
int userStatus; // numeric
int userStatus; //numeric
} user_t;
user_t *user_create(long id, char *username, char *firstName, char *lastName,
char *email, char *password, char *phone, int userStatus);
user_t *user_create(
long id,
char *username,
char *firstName,
char *lastName,
char *email,
char *password,
char *phone,
int userStatus
);
void user_free(user_t *user);
@ -35,3 +44,4 @@ user_t *user_parseFromJSON(cJSON *userJSON);
cJSON *user_convertToJSON(user_t *user);
#endif /* _user_H_ */

View File

@ -40,7 +40,8 @@ void replaceSpaceWithPlus(char *stringToProcess) {
}
}
char *assembleTargetUrl(char *basePath, char *operationParameter,
char *assembleTargetUrl(char *basePath,
char *operationParameter,
list_t *queryParameters) {
int neededBufferSizeForQueryParameters = 0;
listEntry_t *listEntry;
@ -125,10 +126,14 @@ int lengthOfKeyPair(keyValuePair_t *keyPair) {
}
void apiClient_invoke(apiClient_t *apiClient, char *operationParameter,
list_t *queryParameters, list_t *headerParameters,
list_t *formParameters, list_t *headerType,
list_t *contentType, char *bodyParameters,
void apiClient_invoke(apiClient_t *apiClient,
char *operationParameter,
list_t *queryParameters,
list_t *headerParameters,
list_t *formParameters,
list_t *headerType,
list_t *contentType,
char *bodyParameters,
char *requestType) {
CURL *handle = curl_easy_init();
CURLcode res;
@ -283,18 +288,16 @@ void apiClient_invoke(apiClient_t *apiClient, char *operationParameter,
}
}
// this would only be generated for apiKey authentication
if(apiClient->apiKeys != NULL) {
if (apiClient->apiKeys != NULL)
{
list_ForEach(listEntry, apiClient->apiKeys) {
keyValuePair_t *apiKey = listEntry->data;
if((apiKey->key != NULL) &&
(apiKey->value != NULL) )
{
char *headerValueToWrite =
assembleHeaderField(
apiKey->key,
apiKey->value);
curl_slist_append(headers,
headerValueToWrite);
char *headerValueToWrite = assembleHeaderField(
apiKey->key, apiKey->value);
curl_slist_append(headers, headerValueToWrite);
free(headerValueToWrite);
}
}
@ -338,17 +341,15 @@ void apiClient_invoke(apiClient_t *apiClient, char *operationParameter,
}
if(res == CURLE_OK) {
curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE,
&apiClient->response_code);
curl_easy_getinfo(handle, CURLINFO_RESPONSE_CODE, &apiClient->response_code);
} else {
char *url, *ip, *scheme;
char *url,*ip,*scheme;
long port;
curl_easy_getinfo(handle, CURLINFO_EFFECTIVE_URL, &url);
curl_easy_getinfo(handle, CURLINFO_PRIMARY_IP, &ip);
curl_easy_getinfo(handle, CURLINFO_PRIMARY_PORT, &port);
curl_easy_getinfo(handle, CURLINFO_SCHEME, &scheme);
fprintf(stderr,
"curl_easy_perform() failed\n\nURL: %s\nIP: %s\nPORT: %li\nSCHEME: %s\nStrERROR: %s\n", url, ip, port, scheme,
fprintf(stderr, "curl_easy_perform() failed\n\nURL: %s\nIP: %s\nPORT: %li\nSCHEME: %s\nStrERROR: %s\n",url,ip,port,scheme,
curl_easy_strerror(res));
}
@ -376,8 +377,7 @@ char *strReplace(char *orig, char *rep, char *with) {
int count; // number of replacements
// sanity checks and initialization
if(!orig ||
!rep)
if(!orig || !rep)
{
return NULL;
}
@ -419,42 +419,39 @@ char *strReplace(char *orig, char *rep, char *with) {
return result;
}
char *sbi_base64encode(const void *b64_encode_this,
int encode_this_many_bytes) {
char *sbi_base64encode (const void *b64_encode_this, int encode_this_many_bytes){
#ifdef OPENSSL
BIO *b64_bio, *mem_bio; // Declares two OpenSSL BIOs: a base64 filter and a memory BIO.
BUF_MEM *mem_bio_mem_ptr; // Pointer to a "memory BIO" structure holding our base64 data.
b64_bio = BIO_new(BIO_f_base64()); // Initialize our base64 filter BIO.
mem_bio = BIO_new(BIO_s_mem()); // Initialize our memory sink BIO.
BIO_push(b64_bio, mem_bio); // Link the BIOs by creating a filter-sink BIO chain.
BIO_set_flags(b64_bio, BIO_FLAGS_BASE64_NO_NL); // No newlines every 64 characters or less.
BIO_write(b64_bio, b64_encode_this, encode_this_many_bytes); // Records base64 encoded data.
BIO_flush(b64_bio); // Flush data. Necessary for b64 encoding, because of pad characters.
BIO_get_mem_ptr(mem_bio, &mem_bio_mem_ptr); // Store address of mem_bio's memory structure.
BIO_set_close(mem_bio, BIO_NOCLOSE); // Permit access to mem_ptr after BIOs are destroyed.
BIO_free_all(b64_bio); // Destroys all BIOs in chain, starting with b64 (i.e. the 1st one).
BUF_MEM_grow(mem_bio_mem_ptr, (*mem_bio_mem_ptr).length + 1); // Makes space for end null.
(*mem_bio_mem_ptr).data[(*mem_bio_mem_ptr).length] = '\0'; // Adds null-terminator to tail.
return (*mem_bio_mem_ptr).data; // Returns base-64 encoded data. (See: "buf_mem_st" struct).
BIO *b64_bio, *mem_bio; //Declares two OpenSSL BIOs: a base64 filter and a memory BIO.
BUF_MEM *mem_bio_mem_ptr; //Pointer to a "memory BIO" structure holding our base64 data.
b64_bio = BIO_new(BIO_f_base64()); //Initialize our base64 filter BIO.
mem_bio = BIO_new(BIO_s_mem()); //Initialize our memory sink BIO.
BIO_push(b64_bio, mem_bio); //Link the BIOs by creating a filter-sink BIO chain.
BIO_set_flags(b64_bio, BIO_FLAGS_BASE64_NO_NL); //No newlines every 64 characters or less.
BIO_write(b64_bio, b64_encode_this, encode_this_many_bytes); //Records base64 encoded data.
BIO_flush(b64_bio); //Flush data. Necessary for b64 encoding, because of pad characters.
BIO_get_mem_ptr(mem_bio, &mem_bio_mem_ptr); //Store address of mem_bio's memory structure.
BIO_set_close(mem_bio, BIO_NOCLOSE); //Permit access to mem_ptr after BIOs are destroyed.
BIO_free_all(b64_bio); //Destroys all BIOs in chain, starting with b64 (i.e. the 1st one).
BUF_MEM_grow(mem_bio_mem_ptr, (*mem_bio_mem_ptr).length + 1); //Makes space for end null.
(*mem_bio_mem_ptr).data[(*mem_bio_mem_ptr).length] = '\0'; //Adds null-terminator to tail.
return (*mem_bio_mem_ptr).data; //Returns base-64 encoded data. (See: "buf_mem_st" struct).
#endif
}
char *sbi_base64decode(const void *b64_decode_this,
int decode_this_many_bytes) {
char *sbi_base64decode (const void *b64_decode_this, int decode_this_many_bytes){
#ifdef OPENSSL
BIO *b64_bio, *mem_bio; // Declares two OpenSSL BIOs: a base64 filter and a memory BIO.
char *base64_decoded = calloc( (decode_this_many_bytes * 3) / 4 + 1,
sizeof(char) ); // +1 = null.
b64_bio = BIO_new(BIO_f_base64()); // Initialize our base64 filter BIO.
mem_bio = BIO_new(BIO_s_mem()); // Initialize our memory source BIO.
BIO_write(mem_bio, b64_decode_this, decode_this_many_bytes); // Base64 data saved in source.
BIO_push(b64_bio, mem_bio); // Link the BIOs by creating a filter-source BIO chain.
BIO_set_flags(b64_bio, BIO_FLAGS_BASE64_NO_NL); // Don't require trailing newlines.
int decoded_byte_index = 0; // Index where the next base64_decoded byte should be written.
while(0 < BIO_read(b64_bio, base64_decoded + decoded_byte_index, 1) ) { // Read byte-by-byte.
decoded_byte_index++; // Increment the index until read of BIO decoded data is complete.
} // Once we're done reading decoded data, BIO_read returns -1 even though there's no error.
BIO_free_all(b64_bio); // Destroys all BIOs in chain, starting with b64 (i.e. the 1st one).
return base64_decoded; // Returns base-64 decoded data with trailing null terminator.
BIO *b64_bio, *mem_bio; //Declares two OpenSSL BIOs: a base64 filter and a memory BIO.
char *base64_decoded = calloc( (decode_this_many_bytes*3)/4+1, sizeof(char) ); //+1 = null.
b64_bio = BIO_new(BIO_f_base64()); //Initialize our base64 filter BIO.
mem_bio = BIO_new(BIO_s_mem()); //Initialize our memory source BIO.
BIO_write(mem_bio, b64_decode_this, decode_this_many_bytes); //Base64 data saved in source.
BIO_push(b64_bio, mem_bio); //Link the BIOs by creating a filter-source BIO chain.
BIO_set_flags(b64_bio, BIO_FLAGS_BASE64_NO_NL); //Don't require trailing newlines.
int decoded_byte_index = 0; //Index where the next base64_decoded byte should be written.
while ( 0 < BIO_read(b64_bio, base64_decoded+decoded_byte_index, 1) ){ //Read byte-by-byte.
decoded_byte_index++; //Increment the index until read of BIO decoded data is complete.
} //Once we're done reading decoded data, BIO_read returns -1 even though there's no error.
BIO_free_all(b64_bio); //Destroys all BIOs in chain, starting with b64 (i.e. the 1st one).
return base64_decoded; //Returns base-64 decoded data with trailing null terminator.
#endif
}

View File

@ -35,7 +35,8 @@ list_t *list_create() {
return createdList;
}
void list_iterateThroughListForward(list_t *list, void (*operationToPerform)(
void list_iterateThroughListForward(list_t *list,
void (*operationToPerform)(
listEntry_t *,
void *callbackFunctionUsedData),
void *additionalDataNeededForCallbackFunction)
@ -61,7 +62,8 @@ void list_iterateThroughListForward(list_t *list, void (*operationToPerform)(
}
}
void list_iterateThroughListBackward(list_t *list, void (*operationToPerform)(
void list_iterateThroughListBackward(list_t *list,
void (*operationToPerform)(
listEntry_t *,
void *callbackFunctionUsedData),
void *additionalDataNeededForCallbackFunction)