blob: 6bb5090c4654442e9bb19070000b43f478c10df9 (
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
|
open Core
type pre = {
id: Snowflake.t;
name: string;
icon: string option [@default None];
splash: string option [@default None];
owner_id: Snowflake.t;
region: string;
afk_channel_id: Snowflake.t option [@default None];
afk_timeout: int;
embed_enabled: bool option [@default None];
embed_channel_id: Snowflake.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 option [@default None];
widget_channel: Channel_t.channel_wrapper option [@default None];
system_channel: Channel_t.channel_wrapper option [@default None];
large: bool;
unavailable: bool;
member_count: int option [@default None];
members: Member_t.member list;
channels: Channel_t.channel_wrapper list;
} [@@deriving sexp, yojson { strict = false }]
type t = {
id: Snowflake.t;
name: string;
icon: string option [@default None];
splash: string option [@default None];
owner_id: Snowflake.t;
region: string;
afk_channel_id: Snowflake.t option [@default None];
afk_timeout: int;
embed_enabled: bool option [@default None];
embed_channel_id: Snowflake.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 option [@default None];
widget_channel: Channel_t.t option [@default None];
system_channel: Channel_t.t option [@default None];
large: bool;
unavailable: bool;
member_count: int option [@default None];
members: Member_t.t list;
channels: Channel_t.t list;
} [@@deriving sexp, yojson { strict = false }]
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;system_channel;large;unavailable;member_count;members;channels}:pre) =
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
let widget_channel = Option.map ~f:Channel_t.wrap widget_channel in
let system_channel = Option.map ~f:Channel_t.wrap system_channel in
{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;system_channel;large;unavailable;member_count;members;channels}
|