Zig Requires Chilkat v11.0.0+
Zig
Refinitiv World-Check One - Synchronous Screening (POST)
See more Refinitiv Examples
Sends a signed POST request to do simple synchronous screening.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 json = try chilkat.JsonObject.init();
defer json.deinit();
// Create the following JSON:
//
// {
// "keyId": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
// "hmacKey": "xxxxzI3vi58xxxCBxxx1+P/d8tGxx7KuLqN/KMPNxxxxekhj8/bx83+1YQSUxxxxYyv939ceY06GvhYRKmxxxx==",
// "algorithm": "hmac-sha256",
// "headers": [
// "(request-target)",
// "host",
// "date",
// "content-type",
// "content-length"
// ]
// }
// Substitute your actual API key and API secret in place of "api-key" and "api-secret"
json.updateString("keyId", "api-key") catch {};
json.updateString("hmacKey", "api-secret") catch {};
json.updateString("algorithm", "hmac-sha256") catch {};
json.updateString("headers[0]", "(request-target)") catch {};
json.updateString("headers[1]", "host") catch {};
json.updateString("headers[2]", "date") catch {};
json.updateString("headers[3]", "content-type") catch {};
json.updateString("headers[4]", "content-length") catch {};
const http = try chilkat.Http.init();
defer http.deinit();
// Setting the AuthSignature property causes the following header to be computed and added:
// Authorization: Signature keyId="...", algorithm="hmac-sha256", headers="(request-target) host date content-type content-length", signature="..."
http.setAuthSignature(try json.emit(alloc));
// Build the following JSON to be sent in the POST request body.
// {
// "groupId": "{{group-id}}",
// "entityType": "ORGANISATION",
// "caseId": "",
// "providerTypes": [
// "WATCHLIST"
// ],
// "name": "COMPANY NAME",
// "nameTransposition": false,
// "secondaryFields": [],
// "customFields": []
// }
// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON
const json_body = try chilkat.JsonObject.init();
defer json_body.deinit();
json_body.updateString("groupId", "{{group-id}}") catch {};
json_body.updateString("entityType", "ORGANISATION") catch {};
json_body.updateString("caseId", "") catch {};
json_body.updateString("providerTypes[0]", "WATCHLIST") catch {};
json_body.updateString("name", "COMPANY NAME") catch {};
json_body.updateBool("nameTransposition", false) catch {};
json_body.updateNewArray("secondaryFields") catch {};
json_body.updateNewArray("customFields") catch {};
const resp = try chilkat.HttpResponse.init();
defer resp.deinit();
http.httpJson("POST", "https://api-worldcheck.refinitiv.com/v2/cases/screeningRequest", json_body, "application/json", resp) catch {
std.debug.print("{s}\n", .{try http.getLastErrorText(alloc)});
return;
};
std.debug.print("Response status code = {d}\n", .{resp.getStatusCode()});
const json_resp = try chilkat.JsonObject.init();
defer json_resp.deinit();
json_resp.load(try resp.getBodyStr(alloc)) catch {};
json_resp.setEmitCompact(false);
std.debug.print("{s}\n", .{try json_resp.emit(alloc)});
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
}