Zig
Zig
Shippo Create a New Manifest
See more Shippo Examples
Demonstrates how to create a manifest for your shipments.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
const http = try chilkat.Http.init();
defer http.deinit();
// Implements the following CURL command:
// curl https://api.goshippo.com/manifests/
// -H "Authorization: ShippoToken shippo_test_831a7a042784f523b95db65444e6e084b636764b" \
// -H "Content-Type: application/json" \
// -d '{
// "carrier_account": "b741b99f95e841639b54272834bc478c",
// "shipment_date": "2014-05-16T23:59:59Z",
// "address_from": "28828839a2b04e208ac2aa4945fbca9a",
// "transactions": [
// "64bba01845ef40d29374032599f22588",
// "c169aa586a844cc49da00d0272b590e1"
// ],
// "async": false
// }'
// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "carrier_account": "b741b99f95e841639b54272834bc478c",
// "shipment_date": "2014-05-16T23:59:59Z",
// "address_from": "28828839a2b04e208ac2aa4945fbca9a",
// "transactions": [
// "64bba01845ef40d29374032599f22588",
// "c169aa586a844cc49da00d0272b590e1"
// ],
// "async": false
// }
const json = try chilkat.JsonObject.init();
defer json.deinit();
json.updateString("carrier_account", "b741b99f95e841639b54272834bc478c") catch {};
json.updateString("shipment_date", "2014-05-16T23:59:59Z") catch {};
json.updateString("address_from", "28828839a2b04e208ac2aa4945fbca9a") catch {};
json.updateString("transactions[0]", "64bba01845ef40d29374032599f22588") catch {};
json.updateString("transactions[1]", "c169aa586a844cc49da00d0272b590e1") catch {};
json.updateBool("async", false) catch {};
http.setRequestHeader("Authorization", "ShippoToken shippo_test_831a7a042784f523b95db65444e6e084b636764b");
http.setRequestHeader("Content-Type", "application/json");
const resp = try chilkat.HttpResponse.init();
defer resp.deinit();
http.httpJson("POST", "https://api.goshippo.com/manifests/", json, "application/json", resp) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
const sb_response_body = try chilkat.StringBuilder.init();
defer sb_response_body.deinit();
resp.getBodySb(sb_response_body) catch {};
const j_resp = try chilkat.JsonObject.init();
defer j_resp.deinit();
j_resp.loadSb(sb_response_body) catch {};
j_resp.setEmitCompact(false);
std.debug.print("Response Body:\n", .{});
std.debug.print("{s}\n", .{try j_resp.emit(alloc)});
const resp_status_code = resp.getStatusCode();
std.debug.print("Response Status Code = {d}\n", .{resp_status_code});
if (resp_status_code >= 400) {
std.debug.print("Response Header:\n", .{});
std.debug.print("{s}\n", .{try resp.getHeader(alloc)});
std.debug.print("Failed.\n", .{});
return;
}
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "address_from": "28828839a2b04e208ac2aa4945fbca9a",
// "carrier_account": "b741b99f95e841639b54272834bc478c",
// "documents": [
// "https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"
// ],
// "object_created": "2014-05-16T03:43:52.765Z",
// "object_id": "0fadebf6f60c4aca95fa01bcc59c79ae",
// "object_owner": "mrhippo@goshippo.com",
// "object_updated": "2014-05-16T03:43:55.445Z",
// "shipment_date": "2014-05-16T23:59:59Z",
// "status": "SUCCESS",
// "transactions": [
// "64bba01845ef40d29374032599f22588",
// "c169aa586a844cc49da00d0272b590e1"
// ]
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
var str_val: [:0]const u8 = "";
_ = try j_resp.stringOf(alloc, "address_from");
_ = try j_resp.stringOf(alloc, "carrier_account");
_ = try j_resp.stringOf(alloc, "object_created");
_ = try j_resp.stringOf(alloc, "object_id");
_ = try j_resp.stringOf(alloc, "object_owner");
_ = try j_resp.stringOf(alloc, "object_updated");
_ = try j_resp.stringOf(alloc, "shipment_date");
_ = try j_resp.stringOf(alloc, "status");
var i: i32 = 0;
var count_i: i32 = j_resp.sizeOfArray("documents");
while (i < count_i) {
j_resp.setI(i);
str_val = try j_resp.stringOf(alloc, "documents[i]");
i = i + 1;
}
i = 0;
count_i = j_resp.sizeOfArray("transactions");
while (i < count_i) {
j_resp.setI(i);
str_val = try j_resp.stringOf(alloc, "transactions[i]");
i = i + 1;
}
}