From b9ee77f8153090e9d47e73ab195540d10720c7b6 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 10 Jan 2019 13:12:49 -0700 Subject: AAAAAAAAAAAAAAAAAAAAAAAA --- lib/models/guild_t.ml | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 lib/models/guild_t.ml (limited to 'lib/models/guild_t.ml') diff --git a/lib/models/guild_t.ml b/lib/models/guild_t.ml new file mode 100644 index 0000000..5183fc7 --- /dev/null +++ b/lib/models/guild_t.ml @@ -0,0 +1,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 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 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} \ No newline at end of file -- cgit v1.2.3 From c5bfc108ca6a1e7a21492b4318de78a74ed801f9 Mon Sep 17 00:00:00 2001 From: Adelyn Breedlove Date: Sun, 13 Jan 2019 16:51:04 -0700 Subject: Add deriving sexp to models --- lib/models/guild_t.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/models/guild_t.ml') diff --git a/lib/models/guild_t.ml b/lib/models/guild_t.ml index 5183fc7..6bb5090 100644 --- a/lib/models/guild_t.ml +++ b/lib/models/guild_t.ml @@ -27,7 +27,7 @@ type pre = { member_count: int option [@default None]; members: Member_t.member list; channels: Channel_t.channel_wrapper list; -} [@@deriving yojson { strict = false }] +} [@@deriving sexp, yojson { strict = false }] type t = { id: Snowflake.t; @@ -56,7 +56,7 @@ type t = { member_count: int option [@default None]; members: Member_t.t list; channels: Channel_t.t list; -} [@@deriving yojson { strict = false }] +} [@@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 -- cgit v1.2.3