#include #include #include #include "StoreAPI.h" #define MAX_BUFFER_LENGTH 4096 #define intToStr(dst, src) \ 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 ) { list_t *localVarQueryParameters = NULL; list_t *localVarHeaderParameters = NULL; list_t *localVarFormParameters = NULL; list_t *localVarHeaderType = NULL; list_t *localVarContentType = NULL; char *localVarBodyParameters = NULL; // create the path 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 }"); if(orderId == NULL) { goto end; } char* localVarToReplace_orderId = malloc(sizeOfPathParams_orderId); sprintf(localVarToReplace_orderId, "{%s}", "orderId"); localVarPath = strReplace(localVarPath, localVarToReplace_orderId, orderId); apiClient_invoke(apiClient, localVarPath, localVarQueryParameters, localVarHeaderParameters, localVarFormParameters, localVarHeaderType, localVarContentType, localVarBodyParameters, "DELETE"); if (apiClient->response_code == 400) { printf("%s\n","Invalid ID supplied"); } if (apiClient->response_code == 404) { printf("%s\n","Order not found"); } //No return type end: if (apiClient->dataReceived) { free(apiClient->dataReceived); apiClient->dataReceived = NULL; apiClient->dataReceivedLen = 0; } 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 *localVarQueryParameters = NULL; list_t *localVarHeaderParameters = NULL; list_t *localVarFormParameters = NULL; list_t *localVarHeaderType = list_create(); list_t *localVarContentType = NULL; char *localVarBodyParameters = NULL; // create the path long sizeOfPath = strlen("/store/inventory")+1; char *localVarPath = malloc(sizeOfPath); snprintf(localVarPath, sizeOfPath, "/store/inventory"); list_addElement(localVarHeaderType,"application/json"); //produces apiClient_invoke(apiClient, localVarPath, localVarQueryParameters, localVarHeaderParameters, localVarFormParameters, localVarHeaderType, localVarContentType, localVarBodyParameters, "GET"); if (apiClient->response_code == 200) { printf("%s\n","successful operation"); } //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)); list_addElement(elementToReturn, keyPair); } cJSON_Delete(localVarJSON); if (apiClient->dataReceived) { free(apiClient->dataReceived); apiClient->dataReceived = NULL; apiClient->dataReceivedLen = 0; } list_free(localVarHeaderType); free(localVarPath); 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 ) { list_t *localVarQueryParameters = NULL; list_t *localVarHeaderParameters = NULL; list_t *localVarFormParameters = NULL; list_t *localVarHeaderType = list_create(); list_t *localVarContentType = NULL; char *localVarBodyParameters = NULL; // create the path 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){ goto end; } 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); list_addElement(localVarHeaderType,"application/xml"); //produces list_addElement(localVarHeaderType,"application/json"); //produces apiClient_invoke(apiClient, localVarPath, localVarQueryParameters, localVarHeaderParameters, localVarFormParameters, localVarHeaderType, localVarContentType, localVarBodyParameters, "GET"); 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 == 404) { printf("%s\n","Order not found"); } //nonprimitive not container cJSON *StoreAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); order_t *elementToReturn = order_parseFromJSON(StoreAPIlocalVarJSON); cJSON_Delete(StoreAPIlocalVarJSON); if(elementToReturn == NULL) { // return 0; } //return type if (apiClient->dataReceived) { free(apiClient->dataReceived); apiClient->dataReceived = NULL; apiClient->dataReceivedLen = 0; } list_free(localVarHeaderType); free(localVarPath); free(localVarToReplace_orderId); return elementToReturn; end: return NULL; } // Place an order for a pet // order_t* StoreAPI_placeOrder(apiClient_t *apiClient, order_t * body ) { list_t *localVarQueryParameters = NULL; list_t *localVarHeaderParameters = NULL; list_t *localVarFormParameters = NULL; list_t *localVarHeaderType = list_create(); list_t *localVarContentType = NULL; char *localVarBodyParameters = NULL; // create the path long sizeOfPath = strlen("/store/order")+1; char *localVarPath = malloc(sizeOfPath); snprintf(localVarPath, sizeOfPath, "/store/order"); // Body Param cJSON *localVarSingleItemJSON_body; if (body != NULL) { //string localVarSingleItemJSON_body = order_convertToJSON(body); localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); } list_addElement(localVarHeaderType,"application/xml"); //produces list_addElement(localVarHeaderType,"application/json"); //produces apiClient_invoke(apiClient, localVarPath, localVarQueryParameters, localVarHeaderParameters, localVarFormParameters, localVarHeaderType, localVarContentType, localVarBodyParameters, "POST"); if (apiClient->response_code == 200) { printf("%s\n","successful operation"); } if (apiClient->response_code == 400) { printf("%s\n","Invalid Order"); } //nonprimitive not container cJSON *StoreAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); order_t *elementToReturn = order_parseFromJSON(StoreAPIlocalVarJSON); cJSON_Delete(StoreAPIlocalVarJSON); if(elementToReturn == NULL) { // return 0; } //return type if (apiClient->dataReceived) { free(apiClient->dataReceived); apiClient->dataReceived = NULL; apiClient->dataReceivedLen = 0; } list_free(localVarHeaderType); free(localVarPath); cJSON_Delete(localVarSingleItemJSON_body); free(localVarBodyParameters); return elementToReturn; end: return NULL; }