aboutsummaryrefslogtreecommitdiff
path: root/lib/models
diff options
context:
space:
mode:
authorAdelyn Breelove <[email protected]>2019-01-17 10:41:38 -0700
committerAdelyn Breelove <[email protected]>2019-01-17 10:41:38 -0700
commit8078a13e2382ce85fba3bd0bb8b22e336e8cb6a9 (patch)
tree281475ea7fdab6440916bf070dd975348bcf39f3 /lib/models
parentResolve non-ff merge (diff)
downloaddisml-8078a13e2382ce85fba3bd0bb8b22e336e8cb6a9.tar.xz
disml-8078a13e2382ce85fba3bd0bb8b22e336e8cb6a9.zip
Fix mli files and add member methods back
Diffstat (limited to 'lib/models')
-rw-r--r--lib/models/ban.mli2
-rw-r--r--lib/models/channel.mli2
-rw-r--r--lib/models/guild.mli3
-rw-r--r--lib/models/member.ml51
-rw-r--r--lib/models/member.mli22
-rw-r--r--lib/models/message.mli3
-rw-r--r--lib/models/reaction.mli3
-rw-r--r--lib/models/role.mli3
-rw-r--r--lib/models/user.mli3
9 files changed, 66 insertions, 26 deletions
diff --git a/lib/models/ban.mli b/lib/models/ban.mli
index d1050b0..f8b1c2e 100644
--- a/lib/models/ban.mli
+++ b/lib/models/ban.mli
@@ -1 +1 @@
-type t = Ban_t.t \ No newline at end of file
+include module type of Ban_t \ No newline at end of file
diff --git a/lib/models/channel.mli b/lib/models/channel.mli
index 4d67e94..6ca814e 100644
--- a/lib/models/channel.mli
+++ b/lib/models/channel.mli
@@ -1,6 +1,6 @@
open Async
+include module type of Channel_t
-type t = Channel_t.t
val say : content:string -> t -> Message_t.t Deferred.Or_error.t
val send_message :
?embed:Yojson.Safe.json ->
diff --git a/lib/models/guild.mli b/lib/models/guild.mli
index daedc3c..e972951 100644
--- a/lib/models/guild.mli
+++ b/lib/models/guild.mli
@@ -1,6 +1,7 @@
open Async
-type t = Guild_t.t
+include module type of Guild_t
+
val ban_user : id:Snowflake.t -> ?reason:string -> ?days:int -> t -> unit Deferred.Or_error.t
val create_emoji : name:string -> image:string -> t -> Emoji.t Deferred.Or_error.t
val create_role :
diff --git a/lib/models/member.ml b/lib/models/member.ml
index 881586b..25f2f75 100644
--- a/lib/models/member.ml
+++ b/lib/models/member.ml
@@ -1,10 +1,43 @@
+open Async
+open Core
include Member_t
-(* val add_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
-val remove_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.t
-val ban : ?reason:string -> ?days:int -> Member_t.t -> Yojson.Safe.json Deferred.t
-val ban : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
-val kick : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.t
-val mute : Member_t.t -> Yojson.Safe.json Deferred.t
-val deafen : Member_t.t -> Yojson.Safe.json Deferred.t
-val unmute : Member_t.t -> Yojson.Safe.json Deferred.t
-val undeafen : Member_t.t -> Yojson.Safe.json Deferred.t *)
+
+let add_role ~(role:Role_t.t) member =
+ Http.add_member_role member.guild_id member.user.id role.id
+ >>| Result.map ~f:ignore
+
+let remove_role ~(role:Role_t.t) member =
+ Http.remove_member_role member.guild_id member.user.id role.id
+ >>| Result.map ~f:ignore
+
+let ban ?(reason="") ?(days=0) member =
+ Http.guild_ban_add member.guild_id member.user.id (`Assoc [
+ ("delete-message-days", `Int days);
+ ("reason", `String reason);
+ ]) >>| Result.map ~f:ignore
+
+let kick ?reason member =
+ let payload = match reason with
+ | Some r -> `Assoc [("reason", `String r)]
+ | None -> `Null
+ in Http.remove_member member.guild_id member.user.id payload >>| Result.map ~f:ignore
+
+let mute member =
+ Http.edit_member member.guild_id member.user.id (`Assoc [
+ ("mute", `Bool true);
+ ]) >>| Result.map ~f:ignore
+
+let deafen member =
+ Http.edit_member member.guild_id member.user.id (`Assoc [
+ ("deaf", `Bool true);
+ ]) >>| Result.map ~f:ignore
+
+let unmute member =
+ Http.edit_member member.guild_id member.user.id (`Assoc [
+ ("mute", `Bool false);
+ ]) >>| Result.map ~f:ignore
+
+let undeafen member =
+ Http.edit_member member.guild_id member.user.id (`Assoc [
+ ("deaf", `Bool false);
+ ]) >>| Result.map ~f:ignore
diff --git a/lib/models/member.mli b/lib/models/member.mli
index 627e903..3ac786c 100644
--- a/lib/models/member.mli
+++ b/lib/models/member.mli
@@ -1,10 +1,12 @@
-type t = Member_t.t
-(* val add_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val remove_role : Member_t.t -> Role_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val ban : ?reason:string -> ?days:int -> Member_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val ban : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val kick : ?reason:string -> Member_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val mute : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val deafen : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val unmute : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t
-val undeafen : Member_t.t -> Yojson.Safe.json Deferred.Or_error.t *) \ No newline at end of file
+open Async
+
+include module type of Member_t
+
+val add_role : role:Role_t.t -> Member_t.t -> unit Deferred.Or_error.t
+val remove_role : role:Role_t.t -> Member_t.t -> unit Deferred.Or_error.t
+val ban : ?reason:string -> ?days:int -> Member_t.t -> unit Deferred.Or_error.t
+val kick : ?reason:string -> Member_t.t -> unit Deferred.Or_error.t
+val mute : Member_t.t -> unit Deferred.Or_error.t
+val deafen : Member_t.t -> unit Deferred.Or_error.t
+val unmute : Member_t.t -> unit Deferred.Or_error.t
+val undeafen : Member_t.t -> unit Deferred.Or_error.t \ No newline at end of file
diff --git a/lib/models/message.mli b/lib/models/message.mli
index c8c2155..040eb5e 100644
--- a/lib/models/message.mli
+++ b/lib/models/message.mli
@@ -1,6 +1,7 @@
open Async
-type t = Message_t.t
+include module type of Message_t
+
val add_reaction : t -> Emoji.t -> Yojson.Safe.json Deferred.Or_error.t
val remove_reaction : t -> Emoji.t -> User_t.t -> Yojson.Safe.json Deferred.Or_error.t
val clear_reactions : t -> Yojson.Safe.json Deferred.Or_error.t
diff --git a/lib/models/reaction.mli b/lib/models/reaction.mli
index 08572df..38343cb 100644
--- a/lib/models/reaction.mli
+++ b/lib/models/reaction.mli
@@ -1,4 +1,5 @@
-type t = Reaction_t.t
+include module type of Reaction_t
+
(* val delete : Reaction_t.t -> Yojson.Safe.json Deferred.Or_error.t
val get_users : Reaction_t.t -> int -> User_t.t list Deferred.Or_error.t
val get_users_after : Reaction_t.t -> Snowflake.t -> int -> User_t.t list Deferred.Or_error.t
diff --git a/lib/models/role.mli b/lib/models/role.mli
index 5eca8c1..d37f733 100644
--- a/lib/models/role.mli
+++ b/lib/models/role.mli
@@ -1,6 +1,7 @@
open Async
-type t = Role_t.t
+include module type of Role_t
+
val allow_mention : t -> Yojson.Safe.json Deferred.Or_error.t
val delete : t -> Yojson.Safe.json Deferred.Or_error.t
val disallow_mention : t -> Yojson.Safe.json Deferred.Or_error.t
diff --git a/lib/models/user.mli b/lib/models/user.mli
index af873e1..2cc6184 100644
--- a/lib/models/user.mli
+++ b/lib/models/user.mli
@@ -1,4 +1,5 @@
-type t = User_t.t
+include module type of User_t
+
val tag : t -> string
val mention : t -> string
val default_avatar : t -> string