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 = Message.to_json message in
35 Printf.printf "\nMessage JSON: %s\n"
36 (match json with
37 | `O _ -> "JSON object (serialized correctly)"
38 | _ -> "Invalid JSON");
39
40 (* Create client *)
41 let client = Client.create ~sw env auth in
42 Printf.printf "\nCreated client\n";
43
44 (* Test basic client request *)
45 (match Client.request client ~method_:`GET ~path:"/test" () with
46 | Ok _ -> Printf.printf "Mock request succeeded\n"
47 | Error err -> Printf.printf "Mock request failed: %s\n" (Zulip.error_message err));
48
49 Printf.printf "\nLibrary is working correctly!\n"