diff options
| author | Adelyn Breelove <[email protected]> | 2019-01-17 10:41:38 -0700 |
|---|---|---|
| committer | Adelyn Breelove <[email protected]> | 2019-01-17 10:41:38 -0700 |
| commit | 8078a13e2382ce85fba3bd0bb8b22e336e8cb6a9 (patch) | |
| tree | 281475ea7fdab6440916bf070dd975348bcf39f3 /lib/models/member.ml | |
| parent | Resolve non-ff merge (diff) | |
| download | disml-8078a13e2382ce85fba3bd0bb8b22e336e8cb6a9.tar.xz disml-8078a13e2382ce85fba3bd0bb8b22e336e8cb6a9.zip | |
Fix mli files and add member methods back
Diffstat (limited to 'lib/models/member.ml')
| -rw-r--r-- | lib/models/member.ml | 51 |
1 files changed, 42 insertions, 9 deletions
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 |