diff options
| author | Adelyn Breedlove <[email protected]> | 2019-01-27 14:09:33 -0700 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2019-01-27 14:09:33 -0700 |
| commit | fbd3597c7ab798cf10a447eb2b477dd4e3ed6d33 (patch) | |
| tree | 16d1ef889e9c6f1090dd911e6fb31392625066c2 /lib/models/channel/message | |
| parent | hopeful reconnection fix (diff) | |
| download | disml-fbd3597c7ab798cf10a447eb2b477dd4e3ed6d33.tar.xz disml-fbd3597c7ab798cf10a447eb2b477dd4e3ed6d33.zip | |
Switch to ID abstractions internally
Diffstat (limited to 'lib/models/channel/message')
| -rw-r--r-- | lib/models/channel/message/message.ml | 61 | ||||
| -rw-r--r-- | lib/models/channel/message/message_t.ml | 10 | ||||
| -rw-r--r-- | lib/models/channel/message/message_t.mli | 10 | ||||
| -rw-r--r-- | lib/models/channel/message/reaction_t.ml | 8 | ||||
| -rw-r--r-- | lib/models/channel/message/reaction_t.mli | 8 |
5 files changed, 47 insertions, 50 deletions
diff --git a/lib/models/channel/message/message.ml b/lib/models/channel/message/message.ml index 39ee0f3..a64c09d 100644 --- a/lib/models/channel/message/message.ml +++ b/lib/models/channel/message/message.ml @@ -1,70 +1,67 @@ -open Core open Async include Message_t let add_reaction msg (emoji:Emoji.t) = + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in let e = match emoji.id with | Some i -> Printf.sprintf "%s:%d" emoji.name i | None -> emoji.name in - Http.create_reaction msg.channel_id msg.id e + Http.create_reaction channel_id id e let remove_reaction msg (emoji:Emoji.t) (user:User_t.t) = + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in + let `User_id user_id = user.id in let e = match emoji.id with | Some i -> Printf.sprintf "%s:%d" emoji.name i | None -> emoji.name in - Http.delete_reaction msg.channel_id msg.id e user.id + Http.delete_reaction channel_id id e user_id let clear_reactions msg = - Http.delete_reactions msg.channel_id msg.id + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in + Http.delete_reactions channel_id id let delete msg = - Http.delete_message msg.channel_id msg.id + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in + Http.delete_message channel_id id let pin msg = - Http.pin_message msg.channel_id msg.id + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in + Http.pin_message channel_id id let unpin msg = - Http.unpin_message msg.channel_id msg.id + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in + Http.unpin_message channel_id id -let reply msg cont = - let rep = `Assoc [("content", `String cont)] in - Http.create_message msg.channel_id rep - +let reply msg content = + Channel_id.say content msg.channel_id -let reply_with ?embed ?content ?file ?(tts=false) msg = - let embed = match embed with - | Some e -> Embed.to_yojson e - | None -> `Null in - let content = match content with - | Some c -> `String c - | None -> `Null in - let file = match file with - | Some f -> `String f - | None -> `Null in - let () = match embed, content with - | `Null, `Null -> raise Channel.Invalid_message - | _ -> () in - Http.create_message (msg.channel_id) (`Assoc [ - ("embed", embed); - ("content", content); - ("file", file); - ("tts", `Bool tts); - ]) +let reply_with ?embed ?content ?file ?tts msg = + Channel_id.send_message ?embed ?content ?file ?tts msg.channel_id let set_content msg cont = + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in to_yojson { msg with content = cont; } - |> Http.edit_message msg.channel_id msg.id + |> Http.edit_message channel_id id let set_embed msg embed = + let `Message_id id = msg.id in + let `Channel_id channel_id = msg.channel_id in to_yojson { msg with embeds = [embed]; } - |> Http.edit_message msg.channel_id msg.id + |> Http.edit_message channel_id id
\ No newline at end of file diff --git a/lib/models/channel/message/message_t.ml b/lib/models/channel/message/message_t.ml index 47b5803..20dc03f 100644 --- a/lib/models/channel/message/message_t.ml +++ b/lib/models/channel/message/message_t.ml @@ -1,18 +1,18 @@ open Core type t = { - id: Snowflake.t; + id: Message_id.t; author: User_t.t; - channel_id: Snowflake.t; + channel_id: Channel_id_t.t; member: Member_t.partial_member option [@default None]; - guild_id: Snowflake.t option [@default None]; + guild_id: Guild_id_t.t option [@default None]; content: string; timestamp: string; editedimestamp: string option [@default None]; tts: bool; mention_everyone: bool; - (* mentions: Snowflake.t list [@default []]; *) - (* role_mentions: Snowflake.t list [@default []]; *) + mentions: User_id_t.t list [@default []]; + role_mentions: Role_id.t list [@default []]; attachments: Attachment.t list [@default []]; embeds: Embed.t list [@default []]; reactions: Snowflake.t list [@default []]; diff --git a/lib/models/channel/message/message_t.mli b/lib/models/channel/message/message_t.mli index 14086fe..d829dc5 100644 --- a/lib/models/channel/message/message_t.mli +++ b/lib/models/channel/message/message_t.mli @@ -1,17 +1,17 @@ (** Represents a message object. *) type t = { - id: Snowflake.t; + id: Message_id.t; author: User_t.t; - channel_id: Snowflake.t; + channel_id: Channel_id_t.t; member: Member_t.partial_member option; - guild_id: Snowflake.t option; + guild_id: Guild_id_t.t option; content: string; timestamp: string; editedimestamp: string option; tts: bool; mention_everyone: bool; - (* mentions: Snowflake.t list; *) - (* role_mentions: Snowflake.t list; *) + mentions: User_id_t.t list; + role_mentions: Role_id.t list; attachments: Attachment.t list; embeds: Embed.t list; reactions: Snowflake.t list; diff --git a/lib/models/channel/message/reaction_t.ml b/lib/models/channel/message/reaction_t.ml index c382b68..1aa3c84 100644 --- a/lib/models/channel/message/reaction_t.ml +++ b/lib/models/channel/message/reaction_t.ml @@ -1,10 +1,10 @@ open Core type reaction_event = { - user_id: Snowflake.t; - channel_id: Snowflake.t; - message_id: Snowflake.t; - guild_id: Snowflake.t option [@default None]; + user_id: User_id_t.t; + channel_id: Channel_id_t.t; + message_id: Message_id.t; + guild_id: Guild_id_t.t option [@default None]; emoji: Emoji.partial_emoji; } [@@deriving sexp, yojson] diff --git a/lib/models/channel/message/reaction_t.mli b/lib/models/channel/message/reaction_t.mli index db95521..6c2782a 100644 --- a/lib/models/channel/message/reaction_t.mli +++ b/lib/models/channel/message/reaction_t.mli @@ -1,9 +1,9 @@ (** Represents a single reaction as received over the gateway. *) type reaction_event = { - user_id: Snowflake.t; - channel_id: Snowflake.t; - message_id: Snowflake.t; - guild_id: Snowflake.t option; + user_id: User_id_t.t; + channel_id: Channel_id_t.t; + message_id: Message_id.t; + guild_id: Guild_id_t.t option; emoji: Emoji.partial_emoji; } [@@deriving sexp, yojson] |