Matrix protocol in OCaml, Eio specialised
1(** Room state operations. *)
2
3(** Get all current state events for a room. *)
4val get_state :
5 Client.t ->
6 room_id:Matrix_proto.Id.Room_id.t ->
7 (Matrix_proto.Event.Raw_event.t list, Error.t) result
8
9(** Get a specific state event.
10
11 @param state_key The state key (empty string for events without a key). *)
12val get_state_event :
13 Client.t ->
14 room_id:Matrix_proto.Id.Room_id.t ->
15 event_type:string ->
16 ?state_key:string ->
17 unit ->
18 (Jsont.json, Error.t) result
19
20(** Set a state event.
21
22 @param state_key The state key (empty string for events without a key). *)
23val set_state :
24 Client.t ->
25 room_id:Matrix_proto.Id.Room_id.t ->
26 event_type:string ->
27 ?state_key:string ->
28 content:Jsont.json ->
29 unit ->
30 (Matrix_proto.Id.Event_id.t, Error.t) result
31
32(** {1 Convenience Functions} *)
33
34(** Get room name. *)
35val get_name :
36 Client.t ->
37 room_id:Matrix_proto.Id.Room_id.t ->
38 (string option, Error.t) result
39
40(** Set room name. *)
41val set_name :
42 Client.t ->
43 room_id:Matrix_proto.Id.Room_id.t ->
44 name:string ->
45 (Matrix_proto.Id.Event_id.t, Error.t) result
46
47(** Get room topic. *)
48val get_topic :
49 Client.t ->
50 room_id:Matrix_proto.Id.Room_id.t ->
51 (string option, Error.t) result
52
53(** Set room topic. *)
54val set_topic :
55 Client.t ->
56 room_id:Matrix_proto.Id.Room_id.t ->
57 topic:string ->
58 (Matrix_proto.Id.Event_id.t, Error.t) result
59
60(** Get room avatar URL. *)
61val get_avatar :
62 Client.t ->
63 room_id:Matrix_proto.Id.Room_id.t ->
64 (string option, Error.t) result
65
66(** Set room avatar URL. *)
67val set_avatar :
68 Client.t ->
69 room_id:Matrix_proto.Id.Room_id.t ->
70 url:string ->
71 (Matrix_proto.Id.Event_id.t, Error.t) result