Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(C) Square API - Create Catalog ImageUploads an image file to be represented by an CatalogImage object linked to an existing CatalogObject instance. For more information, see https://developer.squareup.com/reference/square/catalog-api/create-catalog-image
#include <C_CkHttp.h> #include <C_CkHttpRequest.h> #include <C_CkJsonObject.h> #include <C_CkHttpResponse.h> #include <C_CkStringBuilder.h> void ChilkatSample(void) { HCkHttp http; BOOL success; HCkHttpRequest req; HCkJsonObject json; HCkHttpResponse resp; HCkStringBuilder sbResponseBody; HCkJsonObject jResp; int respStatusCode; const char *imageType; const char *imageId; const char *imageUpdated_at; int imageVersion; BOOL imageIs_deleted; BOOL imagePresent_at_all_locations; const char *imageImage_dataName; const char *imageImage_dataUrl; const char *imageImage_dataCaption; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttp_Create(); // Implements the following CURL command: // curl https://connect.squareup.com/v2/catalog/images \ // -X POST \ // -H 'Square-Version: 2020-07-22' \ // -H 'Authorization: Bearer ACCESS_TOKEN' \ // -H 'Accept: application/json' \ // -F 'file=@/local/path/to/file.jpg' \ // -F 'request={ // "idempotency_key": "528dea59-7bfb-43c1-bd48-4a6bba7dd61f86", // "object_id": "ND6EA5AAJEO5WL3JNNIAQA32", // "image": { // "id": "#TEMP_ID", // "type": "IMAGE", // "image_data": { // "caption": "A picture of a cup of coffee" // } // } // }' // Use the following online tool to generate HTTP code from a CURL command // Convert a cURL Command to HTTP Source Code req = CkHttpRequest_Create(); CkHttpRequest_putHttpVerb(req,"POST"); CkHttpRequest_putPath(req,"/v2/catalog/images"); CkHttpRequest_putContentType(req,"multipart/form-data"); success = CkHttpRequest_AddFileForUpload2(req,"file","/local/path/to/file.jpg","image/jpeg"); // Make sure to use an object_id for an already-existing catalog item. json = CkJsonObject_Create(); CkJsonObject_UpdateString(json,"idempotency_key","528dea59-7bfb-43c1-bd48-4a6bba7dd61f86"); CkJsonObject_UpdateString(json,"object_id","2PTZYUOFGGDMT75UZLHQAPAC"); CkJsonObject_UpdateString(json,"image.id","#TEMP_ID"); CkJsonObject_UpdateString(json,"image.type","IMAGE"); CkJsonObject_UpdateString(json,"image.image_data.caption","A picture of a cup of coffee"); CkHttpRequest_AddParam(req,"request",CkJsonObject_emit(json)); CkHttpRequest_AddHeader(req,"Expect","100-continue"); CkHttpRequest_AddHeader(req,"Authorization","Bearer ACCESS_TOKEN"); CkHttpRequest_AddHeader(req,"Accept","application/json"); CkHttpRequest_AddHeader(req,"Square-Version","2020-07-22"); // This example uses the sandbox: connect.squareupsandbox.com // Production should use connect.squareup.com resp = CkHttp_SynchronousRequest(http,"connect.squareupsandbox.com",443,TRUE,req); if (CkHttp_getLastMethodSuccess(http) == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkJsonObject_Dispose(json); return; } sbResponseBody = CkStringBuilder_Create(); CkHttpResponse_GetBodySb(resp,sbResponseBody); jResp = CkJsonObject_Create(); CkJsonObject_LoadSb(jResp,sbResponseBody); CkJsonObject_putEmitCompact(jResp,FALSE); printf("Response Body:\n"); printf("%s\n",CkJsonObject_emit(jResp)); respStatusCode = CkHttpResponse_getStatusCode(resp); printf("Response Status Code = %d\n",respStatusCode); if (respStatusCode >= 400) { printf("Response Header:\n"); printf("%s\n",CkHttpResponse_header(resp)); printf("Failed.\n"); CkHttpResponse_Dispose(resp); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkJsonObject_Dispose(json); CkStringBuilder_Dispose(sbResponseBody); CkJsonObject_Dispose(jResp); return; } CkHttpResponse_Dispose(resp); // Sample JSON response: // (Sample code for parsing the JSON response is shown below) // { // "image": { // "type": "IMAGE", // "id": "UBXKMBQ4QK47QXMNQD6ELCZT", // "updated_at": "2020-08-07T15:20:09.779Z", // "version": 1596813609779, // "is_deleted": false, // "present_at_all_locations": true, // "image_data": { // "name": "", // "url": "https://square-catalog-sandbox.s3.amazonaws.com/files/168973eab6f8b39b5cbdad52e3f82b23be196e2b/original.jpeg", // "caption": "A picture of a cup of coffee" // } // } // } // Sample code for parsing the JSON response... // Use the following online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON // Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat. // See this example explaining how this memory should be used: const char * functions. imageType = CkJsonObject_stringOf(jResp,"image.type"); imageId = CkJsonObject_stringOf(jResp,"image.id"); imageUpdated_at = CkJsonObject_stringOf(jResp,"image.updated_at"); imageVersion = CkJsonObject_IntOf(jResp,"image.version"); imageIs_deleted = CkJsonObject_BoolOf(jResp,"image.is_deleted"); imagePresent_at_all_locations = CkJsonObject_BoolOf(jResp,"image.present_at_all_locations"); imageImage_dataName = CkJsonObject_stringOf(jResp,"image.image_data.name"); imageImage_dataUrl = CkJsonObject_stringOf(jResp,"image.image_data.url"); imageImage_dataCaption = CkJsonObject_stringOf(jResp,"image.image_data.caption"); CkHttp_Dispose(http); CkHttpRequest_Dispose(req); CkJsonObject_Dispose(json); CkStringBuilder_Dispose(sbResponseBody); CkJsonObject_Dispose(jResp); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.