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