blob: 4445ce2a49c79502b9fd93b427b59e5abdc03249 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
open Core
type unavailable = {
id: Guild_id_t.t;
unavailable: bool [@default false];
} [@@deriving sexp, yojson]
type pre = {
id: Guild_id_t.t;
name: string;
icon: string option [@default None];
splash: string option [@default None];
owner_id: User_id_t.t;
region: string;
afk_channel_id: Channel_id_t.t option [@default None];
afk_timeout: int;
embed_enabled: bool [@default false];
embed_channel_id: Channel_id_t.t option [@default None];
verification_level: int;
default_message_notifications: int;
explicit_content_filter: int;
roles: Role_t.role list;
emojis: Emoji.t list;
features: string list;
mfa_level: int;
application_id: Snowflake.t option [@default None];
widget_enabled: bool [@default false];
widget_channel_id: Channel_id_t.t option [@default None];
system_channel_id: Channel_id_t.t option [@default None];
large: bool [@default false];
member_count: int option [@default None];
members: Member_t.member list [@default []];
channels: Channel_t.channel_wrapper list [@default []];
} [@@deriving sexp, yojson]
type t = {
id: Guild_id_t.t;
name: string;
icon: string option [@default None];
splash: string option [@default None];
owner_id: User_id_t.t;
region: string;
afk_channel_id: Channel_id_t.t option [@default None];
afk_timeout: int;
embed_enabled: bool [@default false];
embed_channel_id: Channel_id_t.t option [@default None];
verification_level: int;
default_message_notifications: int;
explicit_content_filter: int;
roles: Role_t.t list;
emojis: Emoji.t list;
features: string list;
mfa_level: int;
application_id: Snowflake.t option [@default None];
widget_enabled: bool [@default false];
widget_channel_id: Channel_id_t.t option [@default None];
system_channel_id: Channel_id_t.t option [@default None];
large: bool;
member_count: int option [@default None];
members: Member_t.t list;
channels: Channel_t.t list;
} [@@deriving sexp, yojson]
let wrap ({id;name;icon;splash;owner_id;region;afk_channel_id;afk_timeout;embed_enabled;embed_channel_id;verification_level;default_message_notifications;explicit_content_filter;roles;emojis;features;mfa_level;application_id;widget_enabled;widget_channel_id;system_channel_id;large;member_count;members;channels}:pre) =
let `Guild_id id = id in
let roles = List.map ~f:(Role_t.wrap ~guild_id:id) roles in
let members = List.map ~f:(Member_t.wrap ~guild_id:id) members in
let channels = List.map ~f:Channel_t.wrap channels in
{id = `Guild_id id;name;icon;splash;owner_id;region;afk_channel_id;afk_timeout;embed_enabled;embed_channel_id;verification_level;default_message_notifications;explicit_content_filter;roles;emojis;features;mfa_level;application_id;widget_enabled;widget_channel_id;system_channel_id;large;member_count;members;channels}
let get_id guild = let `Guild_id id = guild.id in id
|