My agentic slop goes here. Not intended for anyone else!
1open Zulip
2
3let () =
4 Printf.printf "OCaml Zulip Library Example\n";
5 Printf.printf "===========================\n\n";
6
7 (* Create authentication *)
8 let auth = Auth.create
9 ~server_url:"https://example.zulipchat.com"
10 ~email:"bot@example.com"
11 ~api_key:"your-api-key" in
12
13 Printf.printf "Created auth for: %s\n" (Auth.email auth);
14 Printf.printf "Server URL: %s\n" (Auth.server_url auth);
15
16 (* Create a message *)
17 let message = Message.create
18 ~type_:`Channel
19 ~to_:["general"]
20 ~content:"Hello from OCaml Zulip library!"
21 ~topic:"Test"
22 () in
23
24 Printf.printf "\nCreated message:\n";
25 Printf.printf "- Type: %s\n" (Message_type.to_string (Message.type_ message));
26 Printf.printf "- To: %s\n" (String.concat ", " (Message.to_ message));
27 Printf.printf "- Content: %s\n" (Message.content message);
28 Printf.printf "- Topic: %s\n"
29 (match Message.topic message with Some t -> t | None -> "None");
30
31 (* Test JSON serialization *)
32 let json = Message.to_json message in
33 Printf.printf "\nMessage JSON: %s\n"
34 (match json with
35 | `O _ -> "JSON object (serialized correctly)"
36 | _ -> "Invalid JSON");
37
38 (* Create client (mock) *)
39 let client = Client.create () auth in
40 Printf.printf "\nCreated mock client\n";
41
42 (* Test basic client request *)
43 (match Client.request client ~method_:`GET ~path:"/test" () with
44 | Ok _ -> Printf.printf "Mock request succeeded\n"
45 | Error err -> Printf.printf "Mock request failed: %s\n" (Error.message err));
46
47 Printf.printf "\nLibrary is working correctly!\n"