aboutsummaryrefslogtreecommitdiff
path: root/lib/model
diff options
context:
space:
mode:
Diffstat (limited to 'lib/model')
-rw-r--r--lib/model/channel.ml1
-rw-r--r--lib/model/emoji.ml1
-rw-r--r--lib/model/guild.ml26
-rw-r--r--lib/model/member.ml1
-rw-r--r--lib/model/message.ml1
-rw-r--r--lib/model/presence.ml1
-rw-r--r--lib/model/role.ml1
-rw-r--r--lib/model/user.ml26
-rw-r--r--lib/model/voiceState.ml1
9 files changed, 59 insertions, 0 deletions
diff --git a/lib/model/channel.ml b/lib/model/channel.ml
new file mode 100644
index 0000000..eb6679e
--- /dev/null
+++ b/lib/model/channel.ml
@@ -0,0 +1 @@
+type t \ No newline at end of file
diff --git a/lib/model/emoji.ml b/lib/model/emoji.ml
new file mode 100644
index 0000000..eb6679e
--- /dev/null
+++ b/lib/model/emoji.ml
@@ -0,0 +1 @@
+type t \ No newline at end of file
diff --git a/lib/model/guild.ml b/lib/model/guild.ml
new file mode 100644
index 0000000..6345c17
--- /dev/null
+++ b/lib/model/guild.ml
@@ -0,0 +1,26 @@
+type t = {
+ afk_channel_id: int option;
+ afk_timeout: int;
+ application_id: int option;
+ channels: Channel.t list;
+ default_message_notifications: int;
+ emojis: Emoji.t list;
+ explicit_content_filter: int;
+ features: string list;
+ icon: string option;
+ id: int;
+ joined_at: string;
+ large: bool;
+ member_count: int;
+ members: Member.t list;
+ mfa_level: int;
+ name: string;
+ owner_id: int;
+ presences: Presence.t list;
+ region: string;
+ roles: Role.t list;
+ splash: string option;
+ system_channel_id: int option;
+ verification_level: int;
+ voice_states: VoiceState.t list;
+}
diff --git a/lib/model/member.ml b/lib/model/member.ml
new file mode 100644
index 0000000..eb6679e
--- /dev/null
+++ b/lib/model/member.ml
@@ -0,0 +1 @@
+type t \ No newline at end of file
diff --git a/lib/model/message.ml b/lib/model/message.ml
new file mode 100644
index 0000000..eb6679e
--- /dev/null
+++ b/lib/model/message.ml
@@ -0,0 +1 @@
+type t \ No newline at end of file
diff --git a/lib/model/presence.ml b/lib/model/presence.ml
new file mode 100644
index 0000000..eb6679e
--- /dev/null
+++ b/lib/model/presence.ml
@@ -0,0 +1 @@
+type t \ No newline at end of file
diff --git a/lib/model/role.ml b/lib/model/role.ml
new file mode 100644
index 0000000..eb6679e
--- /dev/null
+++ b/lib/model/role.ml
@@ -0,0 +1 @@
+type t \ No newline at end of file
diff --git a/lib/model/user.ml b/lib/model/user.ml
new file mode 100644
index 0000000..182ea6a
--- /dev/null
+++ b/lib/model/user.ml
@@ -0,0 +1,26 @@
+type t = {
+ id: int;
+ username: string;
+ discriminator: string;
+ avatar: string option;
+ bot: bool;
+}
+
+let from_json term =
+ let module J = Yojson.Basic.Util in
+ let id = J.member "id" term
+ |> J.to_string
+ |> int_of_string
+ in
+ let username = J.member "username" term
+ |> J.to_string in
+ let discriminator = J.member "discriminator" term
+ |> J.to_string in
+ let avatar = J.member "avatar" term
+ |> J.to_string_option in
+ let bot = J.member "bot" term
+ |> J.to_bool in
+ { id; username; discriminator; avatar; bot; }
+
+let tag user =
+ user.username ^ user.discriminator
diff --git a/lib/model/voiceState.ml b/lib/model/voiceState.ml
new file mode 100644
index 0000000..eb6679e
--- /dev/null
+++ b/lib/model/voiceState.ml
@@ -0,0 +1 @@
+type t \ No newline at end of file