From 8078a13e2382ce85fba3bd0bb8b22e336e8cb6a9 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 17 Jan 2019 10:41:38 -0700 Subject: Fix mli files and add member methods back --- lib/models/member.ml | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 9 deletions(-) (limited to 'lib/models/member.ml') 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 -- cgit v1.2.3