From b2f081fff12093a7d3434859ebd621608dde6c7d Mon Sep 17 00:00:00 2001 From: Matias Goldfeld Date: Sun, 7 Feb 2021 20:21:47 -0500 Subject: Reverted earlier changes for good --- lib/http/endpoints.ml | 96 +++++++++++++------------- lib/http/endpoints.mli | 96 +++++++++++++------------- lib/http/http.ml | 68 +++++++++---------- lib/http/http.mli | 178 ++++++++++++++++++++++++------------------------- lib/http/rl.ml | 14 ++-- lib/http/rl.mli | 6 +- 6 files changed, 229 insertions(+), 229 deletions(-) (limited to 'lib/http') diff --git a/lib/http/endpoints.ml b/lib/http/endpoints.ml index 85b415c..8a2faea 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/%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 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 channels = "/channels" -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 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 guilds = "/guilds" -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 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 me = "/users/@me" let me_guilds = "/users/@me/guilds" -let me_guild = sprintf "/users/@me/guilds/%Ld" +let me_guild = sprintf "/users/@me/guilds/%d" 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/%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 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 cdn_embed_avatar = sprintf "/embed/avatars/%s.png" let cdn_emoji = sprintf "/emojis/%s.%s" -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 +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 diff --git a/lib/http/endpoints.mli b/lib/http/endpoints.mli index 413ac17..33e2ea5 100644 --- a/lib/http/endpoints.mli +++ b/lib/http/endpoints.mli @@ -2,62 +2,62 @@ val gateway : string val gateway_bot : 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 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 channels : 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 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 guilds : 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 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 me : string val me_guilds : string -val me_guild : int64 -> string +val me_guild : int -> string val me_channels : string val me_connections : string val invite : string -> string val regions : string val application_information : 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 group_recipient : int -> int -> string +val guild_me_nick : int -> string +val guild_vanity_url : int -> string +val guild_audit_logs : int -> string val cdn_embed_avatar : string -> string val cdn_emoji : string -> string -> string -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 +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 diff --git a/lib/http/http.ml b/lib/http/http.ml index 7acd731..ec6cb2c 100644 --- a/lib/http/http.ml +++ b/lib/http/http.ml @@ -68,9 +68,9 @@ module Base = struct | `Post -> Cohttp_async.Client.post ~headers ~body uri | `Put -> Cohttp_async.Client.put ~headers ~body uri) >>= process_response path - in if Int64.(limit.remaining > 0L) then process () + in if limit.remaining > 0 then process () else - let time = Time.(limit.reset |> Int63.of_int64_trunc |> Span.of_int63_seconds |> of_span_since_epoch) in + let time = Time.(Span.of_int_sec limit.reset |> of_span_since_epoch) in Logs.debug (fun m -> m "Rate-limiting [Route: %s] [Duration: %d ms]" path Time.(diff time (Time.now ()) |> Span.to_ms |> Float.to_int) ); Clock.at time >>= process end @@ -82,23 +82,23 @@ let get_gateway_bot () = Base.request `Get Endpoints.gateway_bot let get_channel channel_id = - Base.request `Get (Endpoints.channel channel_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson c |> wrap)) + Base.request `Get (Endpoints.channel channel_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson_exn c |> wrap)) let modify_channel channel_id body = - Base.request ~body `Patch (Endpoints.channel channel_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson c |> wrap)) + Base.request ~body `Patch (Endpoints.channel channel_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson_exn c |> wrap)) let delete_channel channel_id = - Base.request `Delete (Endpoints.channel channel_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson c |> wrap)) + 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, 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.t_of_yojson) + Base.request ~query:[(kind, string_of_int 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 = - Base.request `Get (Endpoints.channel_message channel_id message_id) >>| Result.map ~f:Message_t.t_of_yojson + Base.request `Get (Endpoints.channel_message channel_id message_id) >>| Result.map ~f:Message_t.of_yojson_exn let create_message ?(files=[]) channel_id body = - Base.request ~files ~body:body `Post (Endpoints.channel_messages channel_id) >>| Result.map ~f:Message_t.t_of_yojson + Base.request ~files ~body:body `Post (Endpoints.channel_messages channel_id) >>| Result.map ~f:Message_t.of_yojson_exn let create_reaction channel_id message_id emoji = Base.request `Put (Endpoints.channel_reaction_me channel_id message_id emoji) >>| Result.map ~f:ignore @@ -111,13 +111,13 @@ let delete_reaction channel_id message_id emoji user_id = let get_reactions channel_id message_id emoji = Base.request `Get (Endpoints.channel_reactions_get channel_id message_id emoji) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:User_t.t_of_yojson) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:User_t.of_yojson_exn) let delete_reactions channel_id message_id = Base.request `Delete (Endpoints.channel_reactions_delete channel_id message_id) >>| Result.map ~f:ignore let edit_message channel_id message_id body = - Base.request ~body `Patch (Endpoints.channel_message channel_id message_id) >>| Result.map ~f:Message_t.t_of_yojson + Base.request ~body `Patch (Endpoints.channel_message channel_id message_id) >>| Result.map ~f:Message_t.of_yojson_exn let delete_message channel_id message_id = Base.request `Delete (Endpoints.channel_message channel_id message_id) >>| Result.map ~f:ignore @@ -142,7 +142,7 @@ let broadcast_typing channel_id = let get_pinned_messages channel_id = Base.request `Get (Endpoints.channel_pins channel_id) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:Message_t.t_of_yojson) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:Message_t.of_yojson_exn) let pin_message channel_id message_id = Base.request `Put (Endpoints.channel_pin channel_id message_id) >>| Result.map ~f:ignore @@ -158,52 +158,52 @@ let group_recipient_remove channel_id user_id = let get_emojis guild_id = Base.request `Get (Endpoints.guild_emojis guild_id) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:Emoji.t_of_yojson) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:Emoji.of_yojson_exn) let get_emoji guild_id emoji_id = - Base.request `Get (Endpoints.guild_emoji guild_id emoji_id) >>| Result.map ~f:Emoji.t_of_yojson + Base.request `Get (Endpoints.guild_emoji guild_id emoji_id) >>| Result.map ~f:Emoji.of_yojson_exn let create_emoji guild_id body = - Base.request ~body `Post (Endpoints.guild_emojis guild_id) >>| Result.map ~f:Emoji.t_of_yojson + Base.request ~body `Post (Endpoints.guild_emojis guild_id) >>| Result.map ~f:Emoji.of_yojson_exn let edit_emoji guild_id emoji_id body = - Base.request ~body `Patch (Endpoints.guild_emoji guild_id emoji_id) >>| Result.map ~f:Emoji.t_of_yojson + Base.request ~body `Patch (Endpoints.guild_emoji guild_id emoji_id) >>| Result.map ~f:Emoji.of_yojson_exn let delete_emoji guild_id emoji_id = Base.request `Delete (Endpoints.guild_emoji guild_id emoji_id) >>| Result.map ~f:ignore let create_guild body = - Base.request ~body `Post Endpoints.guilds >>| Result.map ~f:(fun g -> Guild_t.(pre_of_yojson g |> wrap)) + Base.request ~body `Post Endpoints.guilds >>| Result.map ~f:(fun g -> Guild_t.(pre_of_yojson_exn g |> wrap)) let get_guild guild_id = - Base.request `Get (Endpoints.guild guild_id) >>| Result.map ~f:(fun g -> Guild_t.(pre_of_yojson g |> wrap)) + Base.request `Get (Endpoints.guild guild_id) >>| Result.map ~f:(fun g -> Guild_t.(pre_of_yojson_exn g |> wrap)) let edit_guild guild_id body = - Base.request ~body `Patch (Endpoints.guild guild_id) >>| Result.map ~f:(fun g -> Guild_t.(pre_of_yojson g |> wrap)) + Base.request ~body `Patch (Endpoints.guild guild_id) >>| Result.map ~f:(fun g -> Guild_t.(pre_of_yojson_exn g |> wrap)) let delete_guild guild_id = Base.request `Delete (Endpoints.guild guild_id) >>| Result.map ~f:ignore let get_guild_channels guild_id = Base.request `Get (Endpoints.guild_channels guild_id) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun g -> Channel_t.(channel_wrapper_of_yojson g |> wrap))) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun g -> Channel_t.(channel_wrapper_of_yojson_exn g |> wrap))) let create_guild_channel guild_id body = - Base.request ~body `Post (Endpoints.guild_channels guild_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson c |> wrap)) + Base.request ~body `Post (Endpoints.guild_channels guild_id) >>| Result.map ~f:(fun c -> Channel_t.(channel_wrapper_of_yojson_exn c |> wrap)) let modify_guild_channel_positions guild_id body = Base.request ~body `Patch (Endpoints.guild_channels guild_id) >>| Result.map ~f:ignore let get_member guild_id user_id = - Base.request `Get (Endpoints.guild_member guild_id user_id) >>| Result.map ~f:(fun m -> Member_t.(member_of_yojson m |> wrap ~guild_id)) + Base.request `Get (Endpoints.guild_member guild_id user_id) >>| Result.map ~f:(fun m -> Member_t.(member_of_yojson_exn m |> wrap ~guild_id)) let get_members guild_id = Base.request `Get (Endpoints.guild_members guild_id) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun m -> Member_t.(member_of_yojson m |> wrap ~guild_id))) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun m -> Member_t.(member_of_yojson_exn m |> wrap ~guild_id))) let add_member guild_id user_id body = Base.request ~body `Put (Endpoints.guild_member guild_id user_id) - >>| Result.map ~f:(fun m -> Member_t.(member_of_yojson m |> wrap ~guild_id)) + >>| Result.map ~f:(fun m -> Member_t.(member_of_yojson_exn m |> wrap ~guild_id)) let edit_member guild_id user_id body = Base.request ~body `Patch (Endpoints.guild_member guild_id user_id) >>| Result.map ~f:ignore @@ -222,10 +222,10 @@ let remove_member_role guild_id user_id role_id = let get_bans guild_id = Base.request `Get (Endpoints.guild_bans guild_id) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:Ban_t.t_of_yojson) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:Ban_t.of_yojson_exn) let get_ban guild_id user_id = - Base.request `Get (Endpoints.guild_ban guild_id user_id) >>| Result.map ~f:Ban_t.t_of_yojson + Base.request `Get (Endpoints.guild_ban guild_id user_id) >>| Result.map ~f:Ban_t.of_yojson_exn let guild_ban_add guild_id user_id body = Base.request ~body `Put (Endpoints.guild_ban guild_id user_id) >>| Result.map ~f:ignore @@ -235,17 +235,17 @@ let guild_ban_remove guild_id user_id body = let get_roles guild_id = Base.request `Get (Endpoints.guild_roles guild_id) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun r -> Role_t.(role_of_yojson r |> wrap ~guild_id))) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun r -> Role_t.(role_of_yojson_exn r |> wrap ~guild_id))) let guild_role_add guild_id body = - Base.request ~body `Post (Endpoints.guild_roles guild_id) >>| Result.map ~f:(fun r -> Role_t.(role_of_yojson r |> wrap ~guild_id)) + Base.request ~body `Post (Endpoints.guild_roles guild_id) >>| Result.map ~f:(fun r -> Role_t.(role_of_yojson_exn r |> wrap ~guild_id)) let guild_roles_edit guild_id body = Base.request ~body `Patch (Endpoints.guild_roles guild_id) - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun r -> Role_t.(role_of_yojson r |> wrap ~guild_id))) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun r -> Role_t.(role_of_yojson_exn r |> wrap ~guild_id))) let guild_role_edit guild_id role_id body = - Base.request ~body `Patch (Endpoints.guild_role guild_id role_id) >>| Result.map ~f:(fun r -> Role_t.(role_of_yojson r |> wrap ~guild_id)) + Base.request ~body `Patch (Endpoints.guild_role guild_id role_id) >>| Result.map ~f:(fun r -> Role_t.(role_of_yojson_exn r |> wrap ~guild_id)) let guild_role_remove guild_id role_id = Base.request `Delete (Endpoints.guild_role guild_id role_id) >>| Result.map ~f:ignore @@ -295,14 +295,14 @@ let delete_invite invite_code = Base.request `Delete (Endpoints.invite invite_code) let get_current_user () = - Base.request `Get Endpoints.me >>| Result.map ~f:User_t.t_of_yojson + Base.request `Get Endpoints.me >>| Result.map ~f:User_t.of_yojson_exn let edit_current_user body = - Base.request ~body `Patch Endpoints.me >>| Result.map ~f:User_t.t_of_yojson + Base.request ~body `Patch Endpoints.me >>| Result.map ~f:User_t.of_yojson_exn let get_guilds () = Base.request `Get Endpoints.me_guilds - >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun g -> Guild_t.(pre_of_yojson g |> wrap))) + >>| Result.map ~f:(fun l -> Yojson.Safe.Util.to_list l |> List.map ~f:(fun g -> Guild_t.(pre_of_yojson_exn g |> wrap))) let leave_guild guild_id = Base.request `Delete (Endpoints.me_guild guild_id) >>| Result.map ~f:ignore @@ -320,7 +320,7 @@ let get_connections () = Base.request `Get Endpoints.me_connections let get_user user_id = - Base.request `Get (Endpoints.user user_id) >>| Result.map ~f:User_t.t_of_yojson + Base.request `Get (Endpoints.user user_id) >>| Result.map ~f:User_t.of_yojson_exn let get_voice_regions () = Base.request `Get Endpoints.regions diff --git a/lib/http/http.mli b/lib/http/http.mli index ce16d06..3468272 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 : int64 -> Channel_t.t Deferred.Or_error.t +val get_channel : int -> Channel_t.t Deferred.Or_error.t val modify_channel : - 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 + 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 val create_message : - ?files:(string * string) list -> int64 -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t + ?files:(string * string) list -> int -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t val create_reaction : - int64 -> int64 -> string -> unit Deferred.Or_error.t + int -> int -> string -> unit Deferred.Or_error.t val delete_own_reaction : - int64 -> int64 -> string -> unit Deferred.Or_error.t + int -> int -> string -> unit Deferred.Or_error.t val delete_reaction : - int64 -> int64 -> string -> int64 -> unit Deferred.Or_error.t + int -> int -> string -> int -> unit Deferred.Or_error.t val get_reactions : - int64 -> int64 -> string -> User_t.t list Deferred.Or_error.t + int -> int -> string -> User_t.t list Deferred.Or_error.t val delete_reactions : - int64 -> int64 -> unit Deferred.Or_error.t + int -> int -> unit Deferred.Or_error.t val edit_message : - int64 -> - int64 -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> Message_t.t Deferred.Or_error.t val delete_message : - int64 -> int64 -> unit Deferred.Or_error.t + int -> int -> unit Deferred.Or_error.t val bulk_delete : - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t + int -> Yojson.Safe.t -> unit Deferred.Or_error.t val edit_channel_permissions : - int64 -> - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t -val get_channel_invites : int64 -> Yojson.Safe.t Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> unit Deferred.Or_error.t +val get_channel_invites : int -> Yojson.Safe.t Deferred.Or_error.t val create_channel_invite : - int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val delete_channel_permission : - 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 + 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 val group_recipient_add : - int64 -> int64 -> unit Deferred.Or_error.t + int -> int -> unit Deferred.Or_error.t val group_recipient_remove : - 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 + 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 val create_emoji : - int64 -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t + int -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t val edit_emoji : - int64 -> - int64 -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t -val delete_emoji : int64 -> int64 -> unit Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> Emoji.t Deferred.Or_error.t +val delete_emoji : int -> int -> unit Deferred.Or_error.t val create_guild : Yojson.Safe.t -> Guild_t.t Deferred.Or_error.t -val get_guild : int64 -> Guild_t.t Deferred.Or_error.t +val get_guild : int -> Guild_t.t Deferred.Or_error.t val edit_guild : - 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 + 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 val create_guild_channel : - int64 -> Yojson.Safe.t -> Channel_t.t Deferred.Or_error.t + int -> Yojson.Safe.t -> Channel_t.t Deferred.Or_error.t val modify_guild_channel_positions : - 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 + 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 val add_member : - int64 -> - int64 -> Yojson.Safe.t -> Member.t Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> Member.t Deferred.Or_error.t val edit_member : - int64 -> - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> unit Deferred.Or_error.t val remove_member : - int64 -> - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> unit Deferred.Or_error.t val change_nickname : - int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val add_member_role : - int64 -> int64 -> int64 -> unit Deferred.Or_error.t + int -> int -> int -> unit Deferred.Or_error.t val remove_member_role : - 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 + 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 val guild_ban_add : - int64 -> - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> unit Deferred.Or_error.t val guild_ban_remove : - int64 -> - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t -val get_roles : int64 -> Role_t.t list Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> unit Deferred.Or_error.t +val get_roles : int -> Role_t.t list Deferred.Or_error.t val guild_role_add : - int64 -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t + int -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t val guild_roles_edit : - int64 -> Yojson.Safe.t -> Role_t.t list Deferred.Or_error.t + int -> Yojson.Safe.t -> Role_t.t list Deferred.Or_error.t val guild_role_edit : - int64 -> - int64 -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> Role_t.t Deferred.Or_error.t val guild_role_remove : - int64 -> int64 -> unit Deferred.Or_error.t + int -> int -> unit Deferred.Or_error.t val guild_prune_count : - int64 -> int -> int Deferred.Or_error.t + int -> int -> int Deferred.Or_error.t val guild_prune_start : - int64 -> int -> int Deferred.Or_error.t + int -> int -> int Deferred.Or_error.t val get_guild_voice_regions : - 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 + 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 val add_integration : - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t + int -> Yojson.Safe.t -> unit Deferred.Or_error.t val edit_integration : - int64 -> - int64 -> Yojson.Safe.t -> unit Deferred.Or_error.t + int -> + int -> Yojson.Safe.t -> unit Deferred.Or_error.t val delete_integration : - int64 -> int64 -> unit Deferred.Or_error.t + int -> int -> unit Deferred.Or_error.t val sync_integration : - int64 -> int64 -> unit Deferred.Or_error.t -val get_guild_embed : int64 -> Yojson.Safe.t Deferred.Or_error.t + int -> int -> unit Deferred.Or_error.t +val get_guild_embed : int -> Yojson.Safe.t Deferred.Or_error.t val edit_guild_embed : - int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t -val get_vanity_url : int64 -> Yojson.Safe.t Deferred.Or_error.t + int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t +val get_vanity_url : int -> 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 : int64 -> unit Deferred.Or_error.t +val leave_guild : int -> 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 : int64 -> User_t.t Deferred.Or_error.t +val get_user : int -> User_t.t Deferred.Or_error.t val get_voice_regions : unit -> Yojson.Safe.t Deferred.Or_error.t val create_webhook : - 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 + 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 val get_webhook_with_token : - int64 -> string -> Yojson.Safe.t Deferred.Or_error.t + int -> string -> Yojson.Safe.t Deferred.Or_error.t val edit_webhook : - int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val edit_webhook_with_token : - int64 -> + int -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t -val delete_webhook : int64 -> unit Deferred.Or_error.t +val delete_webhook : int -> unit Deferred.Or_error.t val delete_webhook_with_token : - int64 -> string -> unit Deferred.Or_error.t + int -> string -> unit Deferred.Or_error.t val execute_webhook : - int64 -> + int -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val execute_slack_webhook : - int64 -> + int -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val execute_git_webhook : - int64 -> + int -> string -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t val get_audit_logs : - int64 -> Yojson.Safe.t -> Yojson.Safe.t Deferred.Or_error.t + int -> 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/http/rl.ml b/lib/http/rl.ml index 5f26012..9f149df 100644 --- a/lib/http/rl.ml +++ b/lib/http/rl.ml @@ -4,9 +4,9 @@ open Async module RouteMap = Map.Make(String) type rl = { - limit: int64; - remaining: int64; - reset: int64; + limit: int; + remaining: int; + reset: int; } [@@deriving sexp] (* TODO improve route getting, use Date header *) @@ -25,13 +25,13 @@ let rl_of_header h = let module C = Cohttp.Header in match C.get h "X-RateLimit-Limit", C.get h "X-RateLimit-Remaining", C.get h "X-RateLimit-Reset" with | Some lim, Some rem, Some re -> - let limit = Int64.of_string lim in - let remaining = Int64.of_string rem in - let reset = Int64.of_string re in + let limit = Int.of_string lim in + let remaining = Int.of_string rem in + let reset = Int.of_string re in Some { limit; remaining; reset; } | _ -> None -let default = { limit = 1L; remaining = 1L; reset = 0L; } +let default = { limit = 1; remaining = 1; reset = 0; } let empty : t = RouteMap.empty let update = RouteMap.update let find = RouteMap.find diff --git a/lib/http/rl.mli b/lib/http/rl.mli index f4a8d59..54bc5ee 100644 --- a/lib/http/rl.mli +++ b/lib/http/rl.mli @@ -8,9 +8,9 @@ module RouteMap : module type of Map.Make(String) (** Type representing ratelimit information. *) type rl = { - limit: int64; - remaining: int64; - reset: int64; + limit: int; + remaining: int; + reset: int; } [@@deriving sexp] (** Type representing the specific case of {!RouteMap}. *) -- cgit v1.2.3