#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); } 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); } 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); } 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); } list_free(localVarHeaderType); free(localVarPath); cJSON_Delete(localVarSingleItemJSON_body); free(localVarBodyParameters); return elementToReturn; end: return NULL; }