Zig
Zig
MedTunnel: Get Message Attachment
See more MedTunnel Examples
Get a specific attachment of a message. The MessageId and AttachmentId are obtained from the "Get Mailbox Messages" example.Chilkat Zig Downloads
const std = @import("std");
const chilkat = @import("chilkat");
pub fn main(init: std.process.Init) !void {
const alloc = init.arena.allocator();
var success: bool = false;
// 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 -X GET -k
// -H "Authorization:PutAuthorizationTokenHere"
// https://server.medtunnel.com/medtunnelmsg/api/Message/GetAttachment?messageid=989448&attachmentid=424857&setreadflag=false
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
http.setRequestHeader("Authorization", "PutAuthorizationTokenHere");
// The messageId and attachmentId are contained in the response from reading the mailbox messages.
http.setUrlVar("messageId", "989448") catch {};
http.setUrlVar("attachmentId", "424857") catch {};
http.setUrlVar("setReadFlag", "false") catch {};
// Download the attachment data into bd.
const bd = try chilkat.BinData.init();
defer bd.deinit();
success = if (http.quickGetBd("https://server.medtunnel.com/MedTunnelMsg/api/Message/GetAttachment?messageid={$messageId}&attachmentid={$attachmentId}&setreadflag={$setReadFlag}", bd)) true else |_| false;
if (!success) {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
}
const resp_status_code = http.getLastStatus();
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 http.getLastHeader(alloc)});
// For errors, the response body contains an error message instead of the actual attachment data.
std.debug.print("Response Body:\n", .{});
std.debug.print("{s}\n", .{try bd.getString(alloc, "utf-8")});
std.debug.print("Failed.\n", .{});
return;
}
// Save the attachment data.
// The attachment filename is also contained in the response from reading the mailbox messages.
success = if (bd.writeFile("qa_output/starfish.jpg")) true else |_| false;
if (!success) {
std.debug.print("Failed to save attachment file.\n", .{});
} else {
std.debug.print("Success.\n", .{});
}
}