From b499169e93e9f7bdd0f877a3cdf0247ec495abe1 Mon Sep 17 00:00:00 2001 From: Matias Goldfeld <2000matu@gmail.com> Date: Thu, 28 Jan 2021 00:50:21 -0500 Subject: More Int64 refactors --- lib/gateway/sharder.ml | 2 +- lib/http/endpoints.ml | 96 +++++++++--------- lib/http/endpoints.mli | 96 +++++++++--------- lib/http/http.ml | 2 +- lib/http/http.mli | 178 +++++++++++++++++----------------- lib/models/channel/channel.ml | 15 ++- lib/models/channel/channel.mli | 2 +- lib/models/channel/message/message.ml | 4 +- lib/models/event_models.ml | 4 +- lib/models/guild/guild.ml | 6 +- lib/models/id/channel_id.ml | 15 ++- lib/models/id/channel_id.mli | 2 +- lib/models/id/channel_id_t.ml | 2 +- lib/models/id/guild_id.ml | 2 +- lib/models/id/guild_id_t.ml | 2 +- lib/models/id/user_id_t.ml | 2 +- lib/models/snowflake.ml | 8 +- lib/models/snowflake.mli | 2 +- lib/models/user/user.ml | 4 +- 19 files changed, 219 insertions(+), 225 deletions(-) diff --git a/lib/gateway/sharder.ml b/lib/gateway/sharder.ml index 14763ca..31275b2 100644 --- a/lib/gateway/sharder.ml +++ b/lib/gateway/sharder.ml @@ -130,7 +130,7 @@ module Shard = struct let request_guild_members ?(query="") ?(limit=0) ~guild shard = let payload = `Assoc - [ "guild_id", `String (Int.to_string guild) + [ "guild_id", `String (Int64.to_string guild) ; "query", `String query ; "limit", `Int limit ] diff --git a/lib/http/endpoints.ml b/lib/http/endpoints.ml index 8a2faea..85b415c 100644 --- a/lib/http/endpoints.ml +++ b/lib/http/endpoints.ml @@ -3,62 +3,62 @@ open Printf let gateway = "/gateway" let gateway_bot = "/gateway/bot" -let channel = sprintf "/channels/%d" -let channel_messages = sprintf "/channels/%d/messages" -let channel_message = sprintf "/channels/%d/messages/%d" -let channel_reaction_me = sprintf "/channels/%d/messages/%d/reactions/%s/@me" -let channel_reaction = sprintf "/channels/%d/messages/%d/reactions/%s/%d" -let channel_reactions_get = sprintf "/channels/%d/messages/%d/reactions/%s" -let channel_reactions_delete = sprintf "/channels/%d/messages/%d/reactions" -let channel_bulk_delete = sprintf "/channels/%d" -let channel_permission = sprintf "/channels/%d/permissions/%d" -let channel_permissions = sprintf "/channels/%d/permissions" +let channel = sprintf "/channels/%Ld" +let channel_messages = sprintf "/channels/%Ld/messages" +let channel_message = sprintf "/channels/%Ld/messages/%Ld" +let channel_reaction_me = sprintf "/channels/%Ld/messages/%Ld/reactions/%s/@me" +let channel_reaction = sprintf "/channels/%Ld/messages/%Ld/reactions/%s/%Ld" +let channel_reactions_get = sprintf "/channels/%Ld/messages/%Ld/reactions/%s" +let channel_reactions_delete = sprintf "/channels/%Ld/messages/%Ld/reactions" +let channel_bulk_delete = sprintf "/channels/%Ld" +let channel_permission = sprintf "/channels/%Ld/permissions/%Ld" +let channel_permissions = sprintf "/channels/%Ld/permissions" let channels = "/channels" -let channel_call_ring = sprintf "/channels/%d/call/ring" -let channel_invites = sprintf "/channels/%d/invites" -let channel_typing = sprintf "/channels/%d/typing" -let channel_pins = sprintf "/channels/%d/pins" -let channel_pin = sprintf "/channels/%d/pins/%d" +let channel_call_ring = sprintf "/channels/%Ld/call/ring" +let channel_invites = sprintf "/channels/%Ld/invites" +let channel_typing = sprintf "/channels/%Ld/typing" +let channel_pins = sprintf "/channels/%Ld/pins" +let channel_pin = sprintf "/channels/%Ld/pins/%Ld" let guilds = "/guilds" -let guild = sprintf "/guilds/%d" -let guild_channels = sprintf "/guilds/%d/channels" -let guild_members = sprintf "/guilds/%d/members" -let guild_member = sprintf "/guilds/%d/members/%d" -let guild_member_role = sprintf "/guilds/%d/members/%d/roles/%d" -let guild_bans = sprintf "/guilds/%d/bans" -let guild_ban = sprintf "/guilds/%d/bans/%d" -let guild_roles = sprintf "/guilds/%d/roles" -let guild_role = sprintf "/guilds/%d/roles/%d" -let guild_prune = sprintf "/guilds/%d/prune" -let guild_voice_regions = sprintf "/guilds/%d/regions" -let guild_invites = sprintf "/guilds/%d/invites" -let guild_integrations = sprintf "/guilds/%d/integrations" -let guild_integration = sprintf "/guilds/%d/integrations/%d" -let guild_integration_sync = sprintf "/guilds/%d/integrations/%d/sync" -let guild_embed = sprintf "/guilds/%d/embed" -let guild_emojis = sprintf "/guilds/%d/emojis" -let guild_emoji = sprintf "/guilds/%d/emojis/%d" -let webhooks_guild = sprintf "/guilds/%d/webhooks" -let webhooks_channel = sprintf "/channels/%d/webhooks" -let webhook = sprintf "/webhooks/%d" -let webhook_token = sprintf "/webhooks/%d/%s" -let webhook_git = sprintf "/webhooks/%d/%s/github" -let webhook_slack = sprintf "/webhooks/%d/%s/slack" -let user = sprintf "/users/%d" +let guild = sprintf "/guilds/%Ld" +let guild_channels = sprintf "/guilds/%Ld/channels" +let guild_members = sprintf "/guilds/%Ld/members" +let guild_member = sprintf "/guilds/%Ld/members/%Ld" +let guild_member_role = sprintf "/guilds/%Ld/members/%Ld/roles/%Ld" +let guild_bans = sprintf "/guilds/%Ld/bans" +let guild_ban = sprintf "/guilds/%Ld/bans/%Ld" +let guild_roles = sprintf "/guilds/%Ld/roles" +let guild_role = sprintf "/guilds/%Ld/roles/%Ld" +let guild_prune = sprintf "/guilds/%Ld/prune" +let guild_voice_regions = sprintf "/guilds/%Ld/regions" +let guild_invites = sprintf "/guilds/%Ld/invites" +let guild_integrations = sprintf "/guilds/%Ld/integrations" +let guild_integration = sprintf "/guilds/%Ld/integrations/%Ld" +let guild_integration_sync = sprintf "/guilds/%Ld/integrations/%Ld/sync" +let guild_embed = sprintf "/guilds/%Ld/embed" +let guild_emojis = sprintf "/guilds/%Ld/emojis" +let guild_emoji = sprintf "/guilds/%Ld/emojis/%Ld" +let webhooks_guild = sprintf "/guilds/%Ld/webhooks" +let webhooks_channel = sprintf "/channels/%Ld/webhooks" +let webhook = sprintf "/webhooks/%Ld" +let webhook_token = sprintf "/webhooks/%Ld/%s" +let webhook_git = sprintf "/webhooks/%Ld/%s/github" +let webhook_slack = sprintf "/webhooks/%Ld/%s/slack" +let user = sprintf "/users/%Ld" let me = "/users/@me" let me_guilds = "/users/@me/guilds" -let me_guild = sprintf "/users/@me/guilds/%d" +let me_guild = sprintf "/users/@me/guilds/%Ld" let me_channels = "/users/@me/channels" let me_connections = "/users/@me/connections" let invite = sprintf "/invites/%s" let regions = "/voice/regions" let application_information = "/oauth2/applications/@me" -let group_recipient = sprintf "/channels/%d/recipients/%d" -let guild_me_nick = sprintf "/guilds/%d/members/@me/nick" -let guild_vanity_url = sprintf "/guilds/%d/vanity-url" -let guild_audit_logs = sprintf "/guilds/%d/audit-logs" +let group_recipient = sprintf "/channels/%Ld/recipients/%Ld" +let guild_me_nick = sprintf "/guilds/%Ld/members/@me/nick" +let guild_vanity_url = sprintf "/guilds/%Ld/vanity-url" +let guild_audit_logs = sprintf "/guilds/%Ld/audit-logs" let cdn_embed_avatar = sprintf "/embed/avatars/%s.png" let cdn_emoji = sprintf "/emojis/%s.%s" -let cdn_icon = sprintf "/icons/%d/%s.%s" -let cdn_avatar = sprintf "/avatars/%d/%s.%s" -let cdn_default_avatar = sprintf "/embed/avatars/%d" \ No newline at end of file +let cdn_icon = sprintf "/icons/%Ld/%s.%s" +let cdn_avatar = sprintf "/avatars/%Ld/%s.%s" +let cdn_default_avatar = sprintf "/embed/avatars/%Ld" \ No newline at end of file diff --git a/lib/http/endpoints.mli b/lib/http/endpoints.mli index 33e2ea5..413ac17 100644 --- a/lib/http/endpoints.mli +++ b/lib/http/endpoints.mli @@ -2,62 +2,62 @@ val gateway : string val gateway_bot : string -val channel : int -> string -val channel_messages : int -> string -val channel_message : int -> int -> string -val channel_reaction_me : int -> int -> string -> string -val channel_reaction : int -> int -> string -> int -> string -val channel_reactions_get : int -> int -> string -> string -val channel_reactions_delete : int -> int -> string -val channel_bulk_delete : int -> string -val channel_permission : int -> int -> string -val channel_permissions : int -> string +val channel : int64 -> string +val channel_messages : int64 -> string +val channel_message : int64 -> int64 -> string +val channel_reaction_me : int64 -> int64 -> string -> string +val channel_reaction : int64 -> int64 -> string -> int64 -> string +val channel_reactions_get : int64 -> int64 -> string -> string +val channel_reactions_delete : int64 -> int64 -> string +val channel_bulk_delete : int64 -> string +val channel_permission : int64 -> int64 -> string +val channel_permissions : int64 -> string val channels : string -val channel_call_ring : int -> string -val channel_invites : int -> string -val channel_typing : int -> string -val channel_pins : int -> string -val channel_pin : int -> int -> string +val channel_call_ring : int64 -> string +val channel_invites : int64 -> string +val channel_typing : int64 -> string +val channel_pins : int64 -> string +val channel_pin : int64 -> int64 -> string val guilds : string -val guild : int -> string -val guild_channels : int -> string -val guild_members : int -> string -val guild_member : int -> int -> string -val guild_member_role : int -> int -> int -> string -val guild_bans : int -> string -val guild_ban : int -> int -> string -val guild_roles : int -> string -val guild_role : int -> int -> string -val guild_prune : int -> string -val guild_voice_regions : int -> string -val guild_invites : int -> string -val guild_integrations : int -> string -val guild_integration : int -> int -> string -val guild_integration_sync : int -> int -> string -val guild_embed : int -> string -val guild_emojis : int -> string -val guild_emoji : int -> int -> string -val webhooks_guild : int -> string -val webhooks_channel : int -> string -val webhook : int -> string -val webhook_token : int -> string -> string -val webhook_git : int -> string -> string -val webhook_slack : int -> string -> string -val user : int -> string +val guild : int64 -> string +val guild_channels : int64 -> string +val guild_members : int64 -> string +val guild_member : int64 -> int64 -> string +val guild_member_role : int64 -> int64 -> int64 -> string +val guild_bans : int64 -> string +val guild_ban : int64 -> int64 -> string +val guild_roles : int64 -> string +val guild_role : int64 -> int64 -> string +val guild_prune : int64 -> string +val guild_voice_regions : int64 -> string +val guild_invites : int64 -> string +val guild_integrations : int64 -> string +val guild_integration : int64 -> int64 -> string +val guild_integration_sync : int64 -> int64 -> string +val guild_embed : int64 -> string +val guild_emojis : int64 -> string +val guild_emoji : int64 -> int64 -> string +val webhooks_guild : int64 -> string +val webhooks_channel : int64 -> string +val webhook : int64 -> string +val webhook_token : int64 -> string -> string +val webhook_git : int64 -> string -> string +val webhook_slack : int64 -> string -> string +val user : int64 -> string val me : string val me_guilds : string -val me_guild : int -> string +val me_guild : int64 -> string val me_channels : string val me_connections : string val invite : string -> string val regions : string val application_information : string -val group_recipient : int -> int -> string -val guild_me_nick : int -> string -val guild_vanity_url : int -> string -val guild_audit_logs : int -> string +val group_recipient : int64 -> int64 -> string +val guild_me_nick : int64 -> string +val guild_vanity_url : int64 -> string +val guild_audit_logs : int64 -> string val cdn_embed_avatar : string -> string val cdn_emoji : string -> string -> string -val cdn_icon : int -> string -> string -> string -val cdn_avatar : int -> string -> string -> string -val cdn_default_avatar : int -> string \ No newline at end of file +val cdn_icon : int64 -> string -> string -> string +val cdn_avatar : int64 -> string -> string -> string +val cdn_default_avatar : int64 -> string \ No newline at end of file diff --git a/lib/http/http.ml b/lib/http/http.ml index afb2610..157643c 100644 --- a/lib/http/http.ml +++ b/lib/http/http.ml @@ -91,7 +91,7 @@ let delete_channel channel_id = Base.request `Delete (Endpoints.channel channel_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson_exn c |> wrap)) let get_messages channel_id limit (kind, id) = - Base.request ~query:[(kind, string_of_int id); ("limit", string_of_int limit)] `Get (Endpoints.channel_messages channel_id) + Base.request ~query:[(kind, Int64.to_string id); ("limit", string_of_int limit)] `Get (Endpoints.channel_messages channel_id) >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:Message_t.of_yojson_exn) let get_message channel_id message_id = diff --git a/lib/http/http.mli b/lib/http/http.mli index 3468272..ce16d06 100644 --- a/lib/http/http.mli +++ b/lib/http/http.mli @@ -28,129 +28,129 @@ end val get_gateway : unit -> Yojson.Safe.t Deferred.Or_error.t val get_gateway_bot : unit -> Yojson.Safe.t Deferred.Or_error.t -val get_channel : int -> Channel_t.t Deferred.Or_error.t +val get_channel : int64 -> Channel_t.t Deferred.Or_error.t val modify_channel : - int -> Yojson.Safe.t -> Channel_t.t Deferred.Or_error.t -val delete_channel : int -> Channel_t.t Deferred.Or_error.t -val get_messages : int -> int -> string * int -> Message_t.t list Deferred.Or_error.t -val get_message : int -> int -> Message_t.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Channel_t.t Deferred.Or_error.t +val delete_channel : int64 -> Channel_t.t Deferred.Or_error.t +val get_messages : int64 -> int -> string * int64 -> Message_t.t list Deferred.Or_error.t +val get_message : int64 -> int64 -> Message_t.t Deferred.Or_error.t val create_message : - ?files:(string * string) list -> int -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t + ?files:(string * string) list -> int64 -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t val create_reaction : - int -> int -> string -> unit Deferred.Or_error.t + int64 -> int64 -> string -> unit Deferred.Or_error.t val delete_own_reaction : - int -> int -> string -> unit Deferred.Or_error.t + int64 -> int64 -> string -> unit Deferred.Or_error.t val delete_reaction : - int -> int -> string -> int -> unit Deferred.Or_error.t + int64 -> int64 -> string -> int64 -> unit Deferred.Or_error.t val get_reactions : - int -> int -> string -> User_t.t list Deferred.Or_error.t + int64 -> int64 -> string -> User_t.t list Deferred.Or_error.t val delete_reactions : - int -> int -> unit Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t val edit_message : - int -> - int -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t val delete_message : - int -> int -> unit Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t val bulk_delete : - int -> Yojson.Safe.t -> unit Deferred.Or_error.t + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t val edit_channel_permissions : - int -> - int -> Yojson.Safe.t -> unit Deferred.Or_error.t -val get_channel_invites : int -> Yojson.Safe.t Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t +val get_channel_invites : int64 -> Yojson.Safe.t Deferred.Or_error.t val create_channel_invite : - int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val delete_channel_permission : - int -> int -> unit Deferred.Or_error.t -val broadcast_typing : int -> unit Deferred.Or_error.t -val get_pinned_messages : int -> Message_t.t list Deferred.Or_error.t -val pin_message : int -> int -> unit Deferred.Or_error.t -val unpin_message : int -> int -> unit Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t +val broadcast_typing : int64 -> unit Deferred.Or_error.t +val get_pinned_messages : int64 -> Message_t.t list Deferred.Or_error.t +val pin_message : int64 -> int64 -> unit Deferred.Or_error.t +val unpin_message : int64 -> int64 -> unit Deferred.Or_error.t val group_recipient_add : - int -> int -> unit Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t val group_recipient_remove : - int -> int -> unit Deferred.Or_error.t -val get_emojis : int -> Emoji.t list Deferred.Or_error.t -val get_emoji : int -> int -> Emoji.t Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t +val get_emojis : int64 -> Emoji.t list Deferred.Or_error.t +val get_emoji : int64 -> int64 -> Emoji.t Deferred.Or_error.t val create_emoji : - int -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t val edit_emoji : - int -> - int -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t -val delete_emoji : int -> int -> unit Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t +val delete_emoji : int64 -> int64 -> unit Deferred.Or_error.t val create_guild : Yojson.Safe.t -> Guild_t.t Deferred.Or_error.t -val get_guild : int -> Guild_t.t Deferred.Or_error.t +val get_guild : int64 -> Guild_t.t Deferred.Or_error.t val edit_guild : - int -> Yojson.Safe.t -> Guild_t.t Deferred.Or_error.t -val delete_guild : int -> unit Deferred.Or_error.t -val get_guild_channels : int -> Channel_t.t list Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Guild_t.t Deferred.Or_error.t +val delete_guild : int64 -> unit Deferred.Or_error.t +val get_guild_channels : int64 -> Channel_t.t list Deferred.Or_error.t val create_guild_channel : - int -> Yojson.Safe.t -> Channel_t.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Channel_t.t Deferred.Or_error.t val modify_guild_channel_positions : - int -> Yojson.Safe.t -> unit Deferred.Or_error.t -val get_member : int -> int -> Member.t Deferred.Or_error.t -val get_members : int -> Member.t list Deferred.Or_error.t + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t +val get_member : int64 -> int64 -> Member.t Deferred.Or_error.t +val get_members : int64 -> Member.t list Deferred.Or_error.t val add_member : - int -> - int -> Yojson.Safe.t -> Member.t Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> Member.t Deferred.Or_error.t val edit_member : - int -> - int -> Yojson.Safe.t -> unit Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t val remove_member : - int -> - int -> Yojson.Safe.t -> unit Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t val change_nickname : - int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val add_member_role : - int -> int -> int -> unit Deferred.Or_error.t + int64 -> int64 -> int64 -> unit Deferred.Or_error.t val remove_member_role : - int -> int -> int -> unit Deferred.Or_error.t -val get_bans : int -> Ban.t list Deferred.Or_error.t -val get_ban : int -> int -> Ban.t Deferred.Or_error.t + int64 -> int64 -> int64 -> unit Deferred.Or_error.t +val get_bans : int64 -> Ban.t list Deferred.Or_error.t +val get_ban : int64 -> int64 -> Ban.t Deferred.Or_error.t val guild_ban_add : - int -> - int -> Yojson.Safe.t -> unit Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t val guild_ban_remove : - int -> - int -> Yojson.Safe.t -> unit Deferred.Or_error.t -val get_roles : int -> Role_t.t list Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t +val get_roles : int64 -> Role_t.t list Deferred.Or_error.t val guild_role_add : - int -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t val guild_roles_edit : - int -> Yojson.Safe.t -> Role_t.t list Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Role_t.t list Deferred.Or_error.t val guild_role_edit : - int -> - int -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t val guild_role_remove : - int -> int -> unit Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t val guild_prune_count : - int -> int -> int Deferred.Or_error.t + int64 -> int -> int Deferred.Or_error.t val guild_prune_start : - int -> int -> int Deferred.Or_error.t + int64 -> int -> int Deferred.Or_error.t val get_guild_voice_regions : - int -> Yojson.Safe.t Deferred.Or_error.t -val get_guild_invites : int -> Yojson.Safe.t Deferred.Or_error.t -val get_integrations : int -> Yojson.Safe.t Deferred.Or_error.t + int64 -> Yojson.Safe.t Deferred.Or_error.t +val get_guild_invites : int64 -> Yojson.Safe.t Deferred.Or_error.t +val get_integrations : int64 -> Yojson.Safe.t Deferred.Or_error.t val add_integration : - int -> Yojson.Safe.t -> unit Deferred.Or_error.t + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t val edit_integration : - int -> - int -> Yojson.Safe.t -> unit Deferred.Or_error.t + int64 -> + int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t val delete_integration : - int -> int -> unit Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t val sync_integration : - int -> int -> unit Deferred.Or_error.t -val get_guild_embed : int -> Yojson.Safe.t Deferred.Or_error.t + int64 -> int64 -> unit Deferred.Or_error.t +val get_guild_embed : int64 -> Yojson.Safe.t Deferred.Or_error.t val edit_guild_embed : - int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t -val get_vanity_url : int -> Yojson.Safe.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t +val get_vanity_url : int64 -> Yojson.Safe.t Deferred.Or_error.t val get_invite : string -> Yojson.Safe.t Deferred.Or_error.t val delete_invite : string -> Yojson.Safe.t Deferred.Or_error.t val get_current_user : unit -> User_t.t Deferred.Or_error.t val edit_current_user : Yojson.Safe.t -> User_t.t Deferred.Or_error.t val get_guilds : unit -> Guild_t.t list Deferred.Or_error.t -val leave_guild : int -> unit Deferred.Or_error.t +val leave_guild : int64 -> unit Deferred.Or_error.t val get_private_channels : unit -> Yojson.Safe.t Deferred.Or_error.t val create_dm : @@ -158,32 +158,32 @@ val create_dm : val create_group_dm : Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val get_connections : unit -> Yojson.Safe.t Deferred.Or_error.t -val get_user : int -> User_t.t Deferred.Or_error.t +val get_user : int64 -> User_t.t Deferred.Or_error.t val get_voice_regions : unit -> Yojson.Safe.t Deferred.Or_error.t val create_webhook : - int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t -val get_channel_webhooks : int -> Yojson.Safe.t Deferred.Or_error.t -val get_guild_webhooks : int -> Yojson.Safe.t Deferred.Or_error.t -val get_webhook : int -> Yojson.Safe.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t +val get_channel_webhooks : int64 -> Yojson.Safe.t Deferred.Or_error.t +val get_guild_webhooks : int64 -> Yojson.Safe.t Deferred.Or_error.t +val get_webhook : int64 -> Yojson.Safe.t Deferred.Or_error.t val get_webhook_with_token : - int -> string -> Yojson.Safe.t Deferred.Or_error.t + int64 -> string -> Yojson.Safe.t Deferred.Or_error.t val edit_webhook : - int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val edit_webhook_with_token : - int -> + int64 -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t -val delete_webhook : int -> unit Deferred.Or_error.t +val delete_webhook : int64 -> unit Deferred.Or_error.t val delete_webhook_with_token : - int -> string -> unit Deferred.Or_error.t + int64 -> string -> unit Deferred.Or_error.t val execute_webhook : - int -> + int64 -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val execute_slack_webhook : - int -> + int64 -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val execute_git_webhook : - int -> + int64 -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val get_audit_logs : - int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val get_application_info : unit -> Yojson.Safe.t Deferred.Or_error.t \ No newline at end of file diff --git a/lib/models/channel/channel.ml b/lib/models/channel/channel.ml index 47cf500..4d7b29d 100644 --- a/lib/models/channel/channel.ml +++ b/lib/models/channel/channel.ml @@ -33,16 +33,13 @@ let delete ch = let get_message ~id ch = Http.get_message (get_id ch) id -let get_messages ?(mode=`Around) ?id ?(limit=50) ch = +let get_messages ?(mode=`Around) ~id ?(limit=50) ch = let kind = match mode with - | `Around -> "around", limit - | `Before -> "before", limit - | `After -> "after", limit + | `Around -> "around", id + | `Before -> "before", id + | `After -> "after", id in - let id = match id with - | Some id -> id - | None -> raise No_message_found in - Http.get_messages (get_id ch) id kind + Http.get_messages (get_id ch) limit kind let broadcast_typing ch = Http.broadcast_typing (get_id ch) @@ -51,5 +48,5 @@ let get_pins ch = Http.get_pinned_messages (get_id ch) let bulk_delete msgs ch = - let msgs = `List (List.map ~f:(fun id -> `Int id) msgs) in + let msgs = `List (List.map ~f:(fun id -> `Intlit (Int64.to_string id)) msgs) in Http.bulk_delete (get_id ch) msgs \ No newline at end of file diff --git a/lib/models/channel/channel.mli b/lib/models/channel/channel.mli index 0d7431b..cb01533 100644 --- a/lib/models/channel/channel.mli +++ b/lib/models/channel/channel.mli @@ -36,7 +36,7 @@ val delete : t -> Channel_t.t Deferred.Or_error.t val get_message : id:Snowflake.t -> t -> Message_t.t Deferred.Or_error.t val get_messages : ?mode:[ `Before | `After | `Around ] -> - ?id:Snowflake.t -> + id:Snowflake.t -> ?limit:int -> t -> Message_t.t list Deferred.Or_error.t diff --git a/lib/models/channel/message/message.ml b/lib/models/channel/message/message.ml index 7f03638..a94d15e 100644 --- a/lib/models/channel/message/message.ml +++ b/lib/models/channel/message/message.ml @@ -6,7 +6,7 @@ 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 + | Some i -> Printf.sprintf "%s:%Ld" emoji.name i | None -> emoji.name in Http.create_reaction channel_id id e @@ -17,7 +17,7 @@ let remove_reaction msg (emoji:Emoji.t) (user:User_t.t) = 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 + | Some i -> Printf.sprintf "%s:%Ld" emoji.name i | None -> emoji.name in Http.delete_reaction channel_id id e user_id diff --git a/lib/models/event_models.ml b/lib/models/event_models.ml index 40ff299..b9c417b 100644 --- a/lib/models/event_models.ml +++ b/lib/models/event_models.ml @@ -415,7 +415,7 @@ module GuildRoleDelete = struct if Cache.GuildMap.mem cache.guilds t.guild_id then let guilds = match Cache.GuildMap.find cache.guilds t.guild_id with | Some g -> - let roles = List.filter g.roles ~f:(fun r -> Role_id.get_id r.id <> Role_id.get_id t.role_id) in + let roles = List.filter g.roles ~f:(fun r -> Int64.(Role_id.get_id r.id <> Role_id.get_id t.role_id)) in let data = { g with roles } in Cache.GuildMap.set cache.guilds ~key:t.guild_id ~data | None -> cache.guilds in @@ -437,7 +437,7 @@ module GuildRoleUpdate = struct | Some g -> let `Guild_id guild_id = t.guild_id in let roles = List.map g.roles ~f:(fun r -> - if Role_id.get_id r.id = Role_id.get_id t.role.id then Role_t.wrap ~guild_id t.role else r) in + if Int64.(Role_id.get_id r.id = Role_id.get_id t.role.id) then Role_t.wrap ~guild_id t.role else r) in let data = { g with roles } in Cache.GuildMap.set cache.guilds ~key:t.guild_id ~data | None -> cache.guilds in diff --git a/lib/models/guild/guild.ml b/lib/models/guild/guild.ml index 95485a4..14861fe 100644 --- a/lib/models/guild/guild.ml +++ b/lib/models/guild/guild.ml @@ -89,7 +89,7 @@ let request_members guild = Http.get_members (get_id guild) let set_afk_channel ~id guild = Http.edit_guild (get_id guild) (`Assoc [ - ("afk_channel_id", `Int id); + ("afk_channel_id", `Intlit (Int64.to_string id)); ]) let set_afk_timeout ~timeout guild = Http.edit_guild (get_id guild) (`Assoc [ @@ -119,10 +119,10 @@ let get_member ~(id:User_id_t.t) guild = let get_channel ~(id:Channel_id_t.t) guild = let `Channel_id id = id in - match List.find ~f:(fun c -> Channel_t.get_id c = id) guild.channels with + match List.find ~f:(fun c -> Int64.(Channel_t.get_id c = id)) guild.channels with | Some c -> Deferred.Or_error.return c | None -> Http.get_channel id (* TODO add HTTP fallback *) let get_role ~(id:Role_id.t) guild = - List.find ~f:(fun r -> Role_id.get_id r.id = Role_id.get_id id) guild.roles + List.find ~f:(fun r -> Int64.(Role_id.get_id r.id = Role_id.get_id id)) guild.roles diff --git a/lib/models/id/channel_id.ml b/lib/models/id/channel_id.ml index 1ea7a46..7c62d84 100644 --- a/lib/models/id/channel_id.ml +++ b/lib/models/id/channel_id.ml @@ -33,16 +33,13 @@ let delete ch = let get_message ~id ch = Http.get_message (get_id ch) id -let get_messages ?(mode=`Around) ?id ?(limit=50) ch = +let get_messages ?(mode=`Around) ~id ?(limit=50) ch = let kind = match mode with - | `Around -> "around", limit - | `Before -> "before", limit - | `After -> "after", limit + | `Around -> "around", id + | `Before -> "before", id + | `After -> "after", id in - let id = match id with - | Some id -> id - | None -> raise No_message_found in - Http.get_messages (get_id ch) id kind + Http.get_messages (get_id ch) limit kind let broadcast_typing ch = Http.broadcast_typing (get_id ch) @@ -51,5 +48,5 @@ let get_pins ch = Http.get_pinned_messages (get_id ch) let bulk_delete msgs ch = - let msgs = `List (List.map ~f:(fun id -> `Int id) msgs) in + let msgs = `List (List.map ~f:(fun id -> `Intlit (Int64.to_string id)) msgs) in Http.bulk_delete (get_id ch) msgs \ No newline at end of file diff --git a/lib/models/id/channel_id.mli b/lib/models/id/channel_id.mli index 2dfff8f..5ecad0c 100644 --- a/lib/models/id/channel_id.mli +++ b/lib/models/id/channel_id.mli @@ -37,7 +37,7 @@ val delete : t -> Channel_t.t Deferred.Or_error.t val get_message : id:Snowflake.t -> t -> Message_t.t Deferred.Or_error.t val get_messages : ?mode:[ `Before | `After | `Around ] -> - ?id:Snowflake.t -> + id:Snowflake.t -> ?limit:int -> t -> Message_t.t list Deferred.Or_error.t diff --git a/lib/models/id/channel_id_t.ml b/lib/models/id/channel_id_t.ml index cea85e0..c6b80ec 100644 --- a/lib/models/id/channel_id_t.ml +++ b/lib/models/id/channel_id_t.ml @@ -2,7 +2,7 @@ open Core type t = [ `Channel_id of Snowflake.t ] [@@deriving sexp] -let compare (`Channel_id t) (`Channel_id t') = Int.compare t t' +let compare (`Channel_id t) (`Channel_id t') = Int64.compare t t' let of_yojson a : (t, string) result = match Snowflake.of_yojson a with diff --git a/lib/models/id/guild_id.ml b/lib/models/id/guild_id.ml index d4db185..1e0168f 100644 --- a/lib/models/id/guild_id.ml +++ b/lib/models/id/guild_id.ml @@ -82,7 +82,7 @@ let request_members guild = Http.get_members (get_id guild) let set_afk_channel ~id guild = Http.edit_guild (get_id guild) (`Assoc [ - ("afk_channel_id", `Int id); + ("afk_channel_id", `Intlit (Int64.to_string id)); ]) let set_afk_timeout ~timeout guild = Http.edit_guild (get_id guild) (`Assoc [ diff --git a/lib/models/id/guild_id_t.ml b/lib/models/id/guild_id_t.ml index a39c07d..b2fd202 100644 --- a/lib/models/id/guild_id_t.ml +++ b/lib/models/id/guild_id_t.ml @@ -2,7 +2,7 @@ open Core type t = [ `Guild_id of Snowflake.t ] [@@deriving sexp] -let compare (`Guild_id t) (`Guild_id t') = Int.compare t t' +let compare (`Guild_id t) (`Guild_id t') = Int64.compare t t' let of_yojson a : (t, string) result = match Snowflake.of_yojson a with diff --git a/lib/models/id/user_id_t.ml b/lib/models/id/user_id_t.ml index cf1634a..214fa14 100644 --- a/lib/models/id/user_id_t.ml +++ b/lib/models/id/user_id_t.ml @@ -2,7 +2,7 @@ open Core type t = [ `User_id of Snowflake.t ] [@@deriving sexp] -let compare (`User_id t) (`User_id t') = Int.compare t t' +let compare (`User_id t) (`User_id t') = Int64.compare t t' let of_yojson a : (t, string) result = match Snowflake.of_yojson a with diff --git a/lib/models/snowflake.ml b/lib/models/snowflake.ml index f228bd7..868b2b9 100644 --- a/lib/models/snowflake.ml +++ b/lib/models/snowflake.ml @@ -1,16 +1,16 @@ open Core -type t = Int.t [@@deriving sexp] +type t = int64 [@@deriving sexp] -let of_yojson_exn d = Yojson.Safe.Util.to_string d |> Int.of_string +let of_yojson_exn d = Yojson.Safe.Util.to_string d |> Int64.of_string let of_yojson d = try Ok (of_yojson_exn d) with Yojson.Safe.Util.Type_error (why,_) -> Error why -let to_yojson s : Yojson.Safe.t = `String (Int.to_string s) +let to_yojson s : Yojson.Safe.t = `String (Int64.to_string s) -let timestamp snowflake = Int64.(+) (Int64.of_int (snowflake lsr 22)) 1_420_070_400_000L +let timestamp snowflake = Int64.((snowflake lsr 22) + 1_420_070_400_000L) let time_of_t snowflake = let t = timestamp snowflake |> Int64.to_float in diff --git a/lib/models/snowflake.mli b/lib/models/snowflake.mli index 7d5cca8..fd9c597 100644 --- a/lib/models/snowflake.mli +++ b/lib/models/snowflake.mli @@ -1,6 +1,6 @@ open Core -type t = Int.t [@@deriving sexp, yojson { exn = true }] +type t = int64 [@@deriving sexp, yojson { exn = true }] (** Convert a snowflake into a {!Core.Time.t} *) val time_of_t : t -> Time.t diff --git a/lib/models/user/user.ml b/lib/models/user/user.ml index b8c3b25..0d76d23 100644 --- a/lib/models/user/user.ml +++ b/lib/models/user/user.ml @@ -6,10 +6,10 @@ let tag user = let mention user = let `User_id id = user.id in - Printf.sprintf "<@%d>" id + Printf.sprintf "<@%Ld>" id let default_avatar user = - let avatar = Int.of_string user.discriminator % 5 in + let avatar = Int64.(of_string user.discriminator % 5L) in Endpoints.cdn_default_avatar avatar let face user = -- cgit v1.2.3