diff options
| author | Adelyn Breelove <[email protected]> | 2019-01-23 15:56:57 -0700 |
|---|---|---|
| committer | Adelyn Breelove <[email protected]> | 2019-01-23 15:56:57 -0700 |
| commit | cd8c706d092c4fecbea753b90b42bb9f30e0ed17 (patch) | |
| tree | 058fe1747d49264b52274c3cf9c5930bd43ee6b4 /lib/models | |
| parent | Update README (diff) | |
| download | disml-cd8c706d092c4fecbea753b90b42bb9f30e0ed17.tar.xz disml-cd8c706d092c4fecbea753b90b42bb9f30e0ed17.zip | |
Improve HTTP stuff
Diffstat (limited to 'lib/models')
| -rw-r--r-- | lib/models/channel/message/message.ml | 20 | ||||
| -rw-r--r-- | lib/models/guild/guild.ml | 4 | ||||
| -rw-r--r-- | lib/models/guild/member.ml | 16 | ||||
| -rw-r--r-- | lib/models/guild/role.mli | 14 |
4 files changed, 25 insertions, 29 deletions
diff --git a/lib/models/channel/message/message.ml b/lib/models/channel/message/message.ml index f772c48..39ee0f3 100644 --- a/lib/models/channel/message/message.ml +++ b/lib/models/channel/message/message.ml @@ -8,7 +8,7 @@ let add_reaction msg (emoji:Emoji.t) = | None -> emoji.name in Http.create_reaction msg.channel_id msg.id e - >>| Result.map ~f:ignore + let remove_reaction msg (emoji:Emoji.t) (user:User_t.t) = let e = match emoji.id with @@ -16,28 +16,28 @@ let remove_reaction msg (emoji:Emoji.t) (user:User_t.t) = | None -> emoji.name in Http.delete_reaction msg.channel_id msg.id e user.id - >>| Result.map ~f:ignore + let clear_reactions msg = Http.delete_reactions msg.channel_id msg.id - >>| Result.map ~f:ignore + let delete msg = Http.delete_message msg.channel_id msg.id - >>| Result.map ~f:ignore + let pin msg = Http.pin_message msg.channel_id msg.id - >>| Result.map ~f:ignore + let unpin msg = Http.unpin_message msg.channel_id msg.id - >>| Result.map ~f:ignore + let reply msg cont = let rep = `Assoc [("content", `String cont)] in Http.create_message msg.channel_id rep - >>| Result.map ~f:Message_t.of_yojson_exn + let reply_with ?embed ?content ?file ?(tts=false) msg = let embed = match embed with @@ -57,14 +57,14 @@ let reply_with ?embed ?content ?file ?(tts=false) msg = ("content", content); ("file", file); ("tts", `Bool tts); - ]) >>| Result.map ~f:Message_t.of_yojson_exn + ]) let set_content msg cont = to_yojson { msg with content = cont; } |> Http.edit_message msg.channel_id msg.id - >>| Result.map ~f:Message_t.of_yojson_exn + let set_embed msg embed = to_yojson { msg with embeds = [embed]; } |> Http.edit_message msg.channel_id msg.id - >>| Result.map ~f:Message_t.of_yojson_exn
\ No newline at end of file +
\ No newline at end of file diff --git a/lib/models/guild/guild.ml b/lib/models/guild/guild.ml index 253ea07..926b152 100644 --- a/lib/models/guild/guild.ml +++ b/lib/models/guild/guild.ml @@ -7,12 +7,12 @@ include Impl.Guild(Guild_t) let get_member ~id guild = match List.find ~f:(fun m -> m.user.id = id) guild.members with | Some m -> Deferred.Or_error.return m - | None -> Http.get_member (get_id guild) id >>| Result.map ~f:Member_t.of_yojson_exn + | None -> Http.get_member (get_id guild) id let get_channel ~id guild = match List.find ~f:(fun c -> Channel_t.get_id c = id) guild.channels with | Some c -> Deferred.Or_error.return c - | None -> Http.get_channel id >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson_exn c |> wrap)) + | None -> Http.get_channel id (* TODO add HTTP fallback *) let get_role ~id guild = diff --git a/lib/models/guild/member.ml b/lib/models/guild/member.ml index 25f2f75..7634d85 100644 --- a/lib/models/guild/member.ml +++ b/lib/models/guild/member.ml @@ -1,43 +1,39 @@ -open Async -open Core include Member_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 + in Http.remove_member member.guild_id member.user.id payload 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/guild/role.mli b/lib/models/guild/role.mli index d37f733..4c4f2a9 100644 --- a/lib/models/guild/role.mli +++ b/lib/models/guild/role.mli @@ -2,10 +2,10 @@ open Async 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 -val hoist : t -> Yojson.Safe.json Deferred.Or_error.t -val set_colour : colour:int -> t -> Yojson.Safe.json Deferred.Or_error.t -val set_name : name:string -> t -> Yojson.Safe.json Deferred.Or_error.t -val unhoist : t -> Yojson.Safe.json Deferred.Or_error.t
\ No newline at end of file +val allow_mention : t -> t Deferred.Or_error.t +val delete : t -> unit Deferred.Or_error.t +val disallow_mention : t -> t Deferred.Or_error.t +val hoist : t -> t Deferred.Or_error.t +val set_colour : colour:int -> t -> t Deferred.Or_error.t +val set_name : name:string -> t -> t Deferred.Or_error.t +val unhoist : t -> t Deferred.Or_error.t
\ No newline at end of file |