From d342c4cf9fe907d2107cd815f9988f8ad147218b Mon Sep 17 00:00:00 2001 From: Mishio595 Date: Sat, 24 Nov 2018 09:51:03 -0700 Subject: Major structural changes --- lib/s.ml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 lib/s.ml (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml new file mode 100644 index 0000000..6c6456a --- /dev/null +++ b/lib/s.ml @@ -0,0 +1,4 @@ +module type Model = sig + type t + val from_json : Yojson.Basic.json -> t +end \ No newline at end of file -- cgit v1.2.3 From 011e3224c0292dfcb0024daf474d4ef1e00b82f0 Mon Sep 17 00:00:00 2001 From: Mishio595 Date: Sun, 25 Nov 2018 16:02:37 -0700 Subject: A lot is going on... --- lib/s.ml | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 lib/s.ml (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml deleted file mode 100644 index 6c6456a..0000000 --- a/lib/s.ml +++ /dev/null @@ -1,4 +0,0 @@ -module type Model = sig - type t - val from_json : Yojson.Basic.json -> t -end \ No newline at end of file -- cgit v1.2.3 From 473072f66e6c7e228b4f26730cbc7304941fb12b Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 29 Nov 2018 12:55:10 -0700 Subject: functors! --- lib/s.ml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lib/s.ml (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml new file mode 100644 index 0000000..92259a0 --- /dev/null +++ b/lib/s.ml @@ -0,0 +1,31 @@ +open Async +open Cohttp + +module type Token = sig + val token : string +end + +module type Http = sig + module Base : sig + exception Invalid_Method + + val base_url : string + + val process_url : string -> Uri.t + val process_request_body : Yojson.Basic.json -> Cohttp_async.Body.t + val process_request_headers : unit -> Headers.t + + val process_response : + Cohttp_async.Response.t * Cohttp_async.Body.t -> + Yojson.Basic.json + + val request : + ?body:Yojson.Basic.json -> + [ `Delete | `Get | `Patch | `Post | `Put ] -> + string -> + Yojson.Basic.json Deferred.t + end + + (* TODO add abstraction sigs *) + val token : string +end \ No newline at end of file -- cgit v1.2.3 From 18f4b7e8cada448f6fc15ee8ee18944dcb0b1676 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 29 Nov 2018 13:50:53 -0700 Subject: Try to make it a more properly structured lib --- lib/s.ml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index 92259a0..454d2e7 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -27,5 +27,64 @@ module type Http = sig end (* TODO add abstraction sigs *) - val token : string +end + +module type Sharder = sig + exception Invalid_Payload + exception Failure_to_Establish_Heartbeat + + type t + + val start : + ?count:int -> + string -> + t Deferred.t + + val set_status : + status:Yojson.Basic.json -> + t -> + (Shard.shard Shard.t) list Deferred.t + + val set_status_with : + f:(Shard.shard -> Yojson.Basic.json) -> + t -> + (Shard.shard Shard.t) list Deferred.t + + val request_guild_members : + ?query:string -> + ?count:string -> + guild:Snowflake.t -> + t -> + (Shard.shard Shard.t) list Deferred.t + + module Shard : sig + type shard + type 'a t + + val bind : + f:('a -> unit) -> + 'a t -> + unit + + val heartbeat : + shard -> + shard Deferred.t + + val set_status : + status:Yojson.Basic.json -> + shard -> + shard Deferred.t + + val request_guild_members : + ?query:string -> + ?limit:int -> + guild:Snowflake.t + + val create : + url:string -> + shards:int * int -> + token:string -> + unit -> + t Deferred.t + end end \ No newline at end of file -- cgit v1.2.3 From eaccd45894e5b519bca82662d0b950b5f1d9c598 Mon Sep 17 00:00:00 2001 From: Mishio595 Date: Thu, 29 Nov 2018 18:10:45 -0700 Subject: Fix all the errors from coding without merlin --- lib/s.ml | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 189 insertions(+), 26 deletions(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index 454d2e7..ce1bef7 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -6,6 +6,8 @@ module type Token = sig end module type Http = sig + val token : string + module Base : sig exception Invalid_Method @@ -13,20 +15,177 @@ module type Http = sig val process_url : string -> Uri.t val process_request_body : Yojson.Basic.json -> Cohttp_async.Body.t - val process_request_headers : unit -> Headers.t + val process_request_headers : unit -> Header.t val process_response : Cohttp_async.Response.t * Cohttp_async.Body.t -> - Yojson.Basic.json + Yojson.Basic.json Deferred.t val request : ?body:Yojson.Basic.json -> - [ `Delete | `Get | `Patch | `Post | `Put ] -> + [> `DELETE | `GET | `PATCH | `POST | `PUT ] -> string -> Yojson.Basic.json Deferred.t end - (* TODO add abstraction sigs *) + (* Auto-generated signatures *) + val get_gateway : unit -> Yojson.Basic.json Async.Deferred.t + val get_gateway_bot : unit -> Yojson.Basic.json Async.Deferred.t + val get_channel : string -> Yojson.Basic.json Async.Deferred.t + val modify_channel : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val delete_channel : string -> Yojson.Basic.json Async.Deferred.t + val get_messages : string -> Yojson.Basic.json Async.Deferred.t + val get_message : string -> string -> Yojson.Basic.json Async.Deferred.t + val create_message : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val create_reaction : + string -> string -> string -> Yojson.Basic.json Async.Deferred.t + val delete_own_reaction : + string -> string -> string -> Yojson.Basic.json Async.Deferred.t + val delete_reaction : + string -> + string -> string -> string -> Yojson.Basic.json Async.Deferred.t + val get_reactions : + string -> string -> string -> Yojson.Basic.json Async.Deferred.t + val delete_reactions : + string -> string -> Yojson.Basic.json Async.Deferred.t + val edit_message : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val delete_message : + string -> string -> Yojson.Basic.json Async.Deferred.t + val bulk_delete : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val edit_channel_permissions : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_channel_invites : string -> Yojson.Basic.json Async.Deferred.t + val create_channel_invite : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val delete_channel_permission : + string -> string -> Yojson.Basic.json Async.Deferred.t + val broadcast_typing : string -> Yojson.Basic.json Async.Deferred.t + val get_pinned_messages : string -> Yojson.Basic.json Async.Deferred.t + val pin_message : string -> string -> Yojson.Basic.json Async.Deferred.t + val unpin_message : + string -> string -> Yojson.Basic.json Async.Deferred.t + val group_recipient_add : + string -> string -> Yojson.Basic.json Async.Deferred.t + val group_recipient_remove : + string -> string -> Yojson.Basic.json Async.Deferred.t + val get_emojis : string -> Yojson.Basic.json Async.Deferred.t + val get_emoji : string -> string -> Yojson.Basic.json Async.Deferred.t + val create_emoji : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val edit_emoji : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val delete_emoji : string -> string -> Yojson.Basic.json Async.Deferred.t + val create_guild : + Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_guild : string -> Yojson.Basic.json Async.Deferred.t + val edit_guild : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val delete_guild : string -> Yojson.Basic.json Async.Deferred.t + val get_guild_channels : string -> Yojson.Basic.json Async.Deferred.t + val create_guild_channel : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val modify_guild_channel_positions : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_member : string -> string -> Yojson.Basic.json Async.Deferred.t + val get_members : string -> Yojson.Basic.json Async.Deferred.t + val add_member : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val edit_member : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val remove_member : + string -> string -> Yojson.Basic.json Async.Deferred.t + val change_nickname : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val add_member_role : + string -> string -> string -> Yojson.Basic.json Async.Deferred.t + val remove_member_role : + string -> string -> string -> Yojson.Basic.json Async.Deferred.t + val get_bans : string -> Yojson.Basic.json Async.Deferred.t + val get_ban : string -> string -> Yojson.Basic.json Async.Deferred.t + val guild_ban_add : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val guild_ban_remove : + string -> string -> Yojson.Basic.json Async.Deferred.t + val get_roles : string -> Yojson.Basic.json Async.Deferred.t + val guild_role_add : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val guild_roles_edit : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val guild_role_edit : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val guild_role_remove : + string -> string -> Yojson.Basic.json Async.Deferred.t + val guild_prune_count : string -> Yojson.Basic.json Async.Deferred.t + val guild_prune_start : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_guild_voice_regions : + string -> Yojson.Basic.json Async.Deferred.t + val get_guild_invites : string -> Yojson.Basic.json Async.Deferred.t + val get_integrations : string -> Yojson.Basic.json Async.Deferred.t + val add_integration : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val edit_integration : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val delete_integration : + string -> string -> Yojson.Basic.json Async.Deferred.t + val sync_integration : + string -> string -> Yojson.Basic.json Async.Deferred.t + val get_guild_embed : string -> Yojson.Basic.json Async.Deferred.t + val edit_guild_embed : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_vanity_url : string -> Yojson.Basic.json Async.Deferred.t + val get_invite : string -> Yojson.Basic.json Async.Deferred.t + val delete_invite : string -> Yojson.Basic.json Async.Deferred.t + val get_current_user : unit -> Yojson.Basic.json Async.Deferred.t + val edit_current_user : + Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_guilds : unit -> Yojson.Basic.json Async.Deferred.t + val leave_guild : string -> Yojson.Basic.json Async.Deferred.t + val get_private_channels : unit -> Yojson.Basic.json Async.Deferred.t + val create_dm : Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val create_group_dm : + Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_connections : unit -> Yojson.Basic.json Async.Deferred.t + val get_user : string -> Yojson.Basic.json Async.Deferred.t + val get_voice_regions : unit -> Yojson.Basic.json Async.Deferred.t + val create_webhook : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_channel_webhooks : string -> Yojson.Basic.json Async.Deferred.t + val get_guild_webhooks : string -> Yojson.Basic.json Async.Deferred.t + val get_webhook : string -> Yojson.Basic.json Async.Deferred.t + val get_webhook_with_token : + string -> string -> Yojson.Basic.json Async.Deferred.t + val edit_webhook : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val edit_webhook_with_token : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val delete_webhook : string -> Yojson.Basic.json Async.Deferred.t + val delete_webhook_with_token : + string -> string -> Yojson.Basic.json Async.Deferred.t + val execute_webhook : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val execute_slack_webhook : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val execute_git_webhook : + string -> + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + val get_audit_logs : + string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t end module type Sharder = sig @@ -37,29 +196,15 @@ module type Sharder = sig val start : ?count:int -> - string -> + unit -> t Deferred.t - val set_status : - status:Yojson.Basic.json -> - t -> - (Shard.shard Shard.t) list Deferred.t - - val set_status_with : - f:(Shard.shard -> Yojson.Basic.json) -> - t -> - (Shard.shard Shard.t) list Deferred.t - - val request_guild_members : - ?query:string -> - ?count:string -> - guild:Snowflake.t -> - t -> - (Shard.shard Shard.t) list Deferred.t - module Shard : sig type shard - type 'a t + type 'a t = { + mutable state: 'a; + mutable binds: ('a -> unit) list; + } val bind : f:('a -> unit) -> @@ -78,13 +223,31 @@ module type Sharder = sig val request_guild_members : ?query:string -> ?limit:int -> - guild:Snowflake.t + guild:Snowflake.t -> + shard -> + shard Deferred.t val create : url:string -> shards:int * int -> - token:string -> unit -> - t Deferred.t + shard Deferred.t end + + val set_status : + status:Yojson.Basic.json -> + t -> + Shard.shard list Deferred.t + + val set_status_with : + f:(Shard.shard -> Yojson.Basic.json) -> + t -> + Shard.shard list Deferred.t + + val request_guild_members : + ?query:string -> + ?limit:int -> + guild:Snowflake.t -> + t -> + Shard.shard list Deferred.t end \ No newline at end of file -- cgit v1.2.3 From 260ccd9960b852b9c69b88e9840d5a8b22bb8e1d Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 12 Dec 2018 15:00:46 -0700 Subject: Work on event dispatch and add model derives --- lib/s.ml | 212 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 111 insertions(+), 101 deletions(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index ce1bef7..eec72e1 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -1,10 +1,20 @@ open Async -open Cohttp module type Token = sig val token : string end +module type Client = sig + type context +end + +module type Handler = sig + val handle_event : + 'a -> + 'b -> + unit +end + module type Http = sig val token : string @@ -14,178 +24,178 @@ module type Http = sig val base_url : string val process_url : string -> Uri.t - val process_request_body : Yojson.Basic.json -> Cohttp_async.Body.t - val process_request_headers : unit -> Header.t + val process_request_body : Yojson.Safe.json -> Cohttp_async.Body.t + val process_request_headers : unit -> Cohttp.Header.t val process_response : Cohttp_async.Response.t * Cohttp_async.Body.t -> - Yojson.Basic.json Deferred.t + Yojson.Safe.json Deferred.t val request : - ?body:Yojson.Basic.json -> + ?body:Yojson.Safe.json -> [> `DELETE | `GET | `PATCH | `POST | `PUT ] -> string -> - Yojson.Basic.json Deferred.t + Yojson.Safe.json Deferred.t end (* Auto-generated signatures *) - val get_gateway : unit -> Yojson.Basic.json Async.Deferred.t - val get_gateway_bot : unit -> Yojson.Basic.json Async.Deferred.t - val get_channel : string -> Yojson.Basic.json Async.Deferred.t + val get_gateway : unit -> Yojson.Safe.json Async.Deferred.t + val get_gateway_bot : unit -> Yojson.Safe.json Async.Deferred.t + val get_channel : string -> Yojson.Safe.json Async.Deferred.t val modify_channel : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val delete_channel : string -> Yojson.Basic.json Async.Deferred.t - val get_messages : string -> Yojson.Basic.json Async.Deferred.t - val get_message : string -> string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val delete_channel : string -> Yojson.Safe.json Async.Deferred.t + val get_messages : string -> Yojson.Safe.json Async.Deferred.t + val get_message : string -> string -> Yojson.Safe.json Async.Deferred.t val create_message : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val create_reaction : - string -> string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> string -> Yojson.Safe.json Async.Deferred.t val delete_own_reaction : - string -> string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> string -> Yojson.Safe.json Async.Deferred.t val delete_reaction : string -> - string -> string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> string -> Yojson.Safe.json Async.Deferred.t val get_reactions : - string -> string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> string -> Yojson.Safe.json Async.Deferred.t val delete_reactions : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val edit_message : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val delete_message : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val bulk_delete : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val edit_channel_permissions : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val get_channel_invites : string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val get_channel_invites : string -> Yojson.Safe.json Async.Deferred.t val create_channel_invite : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val delete_channel_permission : - string -> string -> Yojson.Basic.json Async.Deferred.t - val broadcast_typing : string -> Yojson.Basic.json Async.Deferred.t - val get_pinned_messages : string -> Yojson.Basic.json Async.Deferred.t - val pin_message : string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t + val broadcast_typing : string -> Yojson.Safe.json Async.Deferred.t + val get_pinned_messages : string -> Yojson.Safe.json Async.Deferred.t + val pin_message : string -> string -> Yojson.Safe.json Async.Deferred.t val unpin_message : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val group_recipient_add : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val group_recipient_remove : - string -> string -> Yojson.Basic.json Async.Deferred.t - val get_emojis : string -> Yojson.Basic.json Async.Deferred.t - val get_emoji : string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t + val get_emojis : string -> Yojson.Safe.json Async.Deferred.t + val get_emoji : string -> string -> Yojson.Safe.json Async.Deferred.t val create_emoji : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val edit_emoji : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val delete_emoji : string -> string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val delete_emoji : string -> string -> Yojson.Safe.json Async.Deferred.t val create_guild : - Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val get_guild : string -> Yojson.Basic.json Async.Deferred.t + Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val get_guild : string -> Yojson.Safe.json Async.Deferred.t val edit_guild : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val delete_guild : string -> Yojson.Basic.json Async.Deferred.t - val get_guild_channels : string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val delete_guild : string -> Yojson.Safe.json Async.Deferred.t + val get_guild_channels : string -> Yojson.Safe.json Async.Deferred.t val create_guild_channel : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val modify_guild_channel_positions : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val get_member : string -> string -> Yojson.Basic.json Async.Deferred.t - val get_members : string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val get_member : string -> string -> Yojson.Safe.json Async.Deferred.t + val get_members : string -> Yojson.Safe.json Async.Deferred.t val add_member : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val edit_member : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val remove_member : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val change_nickname : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val add_member_role : - string -> string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> string -> Yojson.Safe.json Async.Deferred.t val remove_member_role : - string -> string -> string -> Yojson.Basic.json Async.Deferred.t - val get_bans : string -> Yojson.Basic.json Async.Deferred.t - val get_ban : string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> string -> Yojson.Safe.json Async.Deferred.t + val get_bans : string -> Yojson.Safe.json Async.Deferred.t + val get_ban : string -> string -> Yojson.Safe.json Async.Deferred.t val guild_ban_add : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val guild_ban_remove : - string -> string -> Yojson.Basic.json Async.Deferred.t - val get_roles : string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t + val get_roles : string -> Yojson.Safe.json Async.Deferred.t val guild_role_add : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val guild_roles_edit : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val guild_role_edit : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val guild_role_remove : - string -> string -> Yojson.Basic.json Async.Deferred.t - val guild_prune_count : string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t + val guild_prune_count : string -> Yojson.Safe.json Async.Deferred.t val guild_prune_start : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val get_guild_voice_regions : - string -> Yojson.Basic.json Async.Deferred.t - val get_guild_invites : string -> Yojson.Basic.json Async.Deferred.t - val get_integrations : string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json Async.Deferred.t + val get_guild_invites : string -> Yojson.Safe.json Async.Deferred.t + val get_integrations : string -> Yojson.Safe.json Async.Deferred.t val add_integration : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val edit_integration : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val delete_integration : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val sync_integration : - string -> string -> Yojson.Basic.json Async.Deferred.t - val get_guild_embed : string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t + val get_guild_embed : string -> Yojson.Safe.json Async.Deferred.t val edit_guild_embed : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val get_vanity_url : string -> Yojson.Basic.json Async.Deferred.t - val get_invite : string -> Yojson.Basic.json Async.Deferred.t - val delete_invite : string -> Yojson.Basic.json Async.Deferred.t - val get_current_user : unit -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val get_vanity_url : string -> Yojson.Safe.json Async.Deferred.t + val get_invite : string -> Yojson.Safe.json Async.Deferred.t + val delete_invite : string -> Yojson.Safe.json Async.Deferred.t + val get_current_user : unit -> Yojson.Safe.json Async.Deferred.t val edit_current_user : - Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val get_guilds : unit -> Yojson.Basic.json Async.Deferred.t - val leave_guild : string -> Yojson.Basic.json Async.Deferred.t - val get_private_channels : unit -> Yojson.Basic.json Async.Deferred.t - val create_dm : Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val get_guilds : unit -> Yojson.Safe.json Async.Deferred.t + val leave_guild : string -> Yojson.Safe.json Async.Deferred.t + val get_private_channels : unit -> Yojson.Safe.json Async.Deferred.t + val create_dm : Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val create_group_dm : - Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val get_connections : unit -> Yojson.Basic.json Async.Deferred.t - val get_user : string -> Yojson.Basic.json Async.Deferred.t - val get_voice_regions : unit -> Yojson.Basic.json Async.Deferred.t + Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val get_connections : unit -> Yojson.Safe.json Async.Deferred.t + val get_user : string -> Yojson.Safe.json Async.Deferred.t + val get_voice_regions : unit -> Yojson.Safe.json Async.Deferred.t val create_webhook : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val get_channel_webhooks : string -> Yojson.Basic.json Async.Deferred.t - val get_guild_webhooks : string -> Yojson.Basic.json Async.Deferred.t - val get_webhook : string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val get_channel_webhooks : string -> Yojson.Safe.json Async.Deferred.t + val get_guild_webhooks : string -> Yojson.Safe.json Async.Deferred.t + val get_webhook : string -> Yojson.Safe.json Async.Deferred.t val get_webhook_with_token : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val edit_webhook : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val edit_webhook_with_token : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t - val delete_webhook : string -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + val delete_webhook : string -> Yojson.Safe.json Async.Deferred.t val delete_webhook_with_token : - string -> string -> Yojson.Basic.json Async.Deferred.t + string -> string -> Yojson.Safe.json Async.Deferred.t val execute_webhook : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val execute_slack_webhook : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val execute_git_webhook : string -> - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t val get_audit_logs : - string -> Yojson.Basic.json -> Yojson.Basic.json Async.Deferred.t + string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t end module type Sharder = sig @@ -216,7 +226,7 @@ module type Sharder = sig shard Deferred.t val set_status : - status:Yojson.Basic.json -> + status:Yojson.Safe.json -> shard -> shard Deferred.t @@ -235,12 +245,12 @@ module type Sharder = sig end val set_status : - status:Yojson.Basic.json -> + status:Yojson.Safe.json -> t -> Shard.shard list Deferred.t val set_status_with : - f:(Shard.shard -> Yojson.Basic.json) -> + f:(Shard.shard -> Yojson.Safe.json) -> t -> Shard.shard list Deferred.t -- cgit v1.2.3 From c046760eb599e42226c683aecbe33753dfc4d500 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Wed, 12 Dec 2018 15:23:14 -0700 Subject: Complete event dispatch --- lib/s.ml | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index eec72e1..95eaee3 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -15,6 +15,50 @@ module type Handler = sig unit end +module type Dispatch = sig + type dispatch_event = + | HELLO of Yojson.Safe.json + | READY of Yojson.Safe.json + | RESUMED of Yojson.Safe.json + | INVALID_SESSION of Yojson.Safe.json + | CHANNEL_CREATE of Channel.t + | CHANNEL_UPDATE of Channel.t + | CHANNEL_DELETE of Channel.t + | CHANNEL_PINS_UPDATE of Yojson.Safe.json + | GUILD_CREATE of Guild.t + | GUILD_UPDATE of Guild.t + | GUILD_DELETE of Guild.t + | GUILD_BAN_ADD of Ban.t + | GUILD_BAN_REMOVE of Ban.t + | GUILD_EMOJIS_UPDATE of Yojson.Safe.json + | GUILD_INTEGRATIONS_UPDATE of Yojson.Safe.json + | GUILD_MEMBER_ADD of Member.t + | GUILD_MEMBER_REMOVE of Member.t + | GUILD_MEMBER_UPDATE of Member.t + | GUILD_MEMBERS_CHUNK of Member.t list + | GUILD_ROLE_CREATE of Role.t (* * Guild.t *) + | GUILD_ROLE_UPDATE of Role.t (* * Guild.t *) + | GUILD_ROLE_DELETE of Role.t (* * Guild.t *) + | MESSAGE_CREATE of Message.t + | MESSAGE_UPDATE of Message.t + | MESSAGE_DELETE of Message.t + | MESSAGE_BULK_DELETE of Message.t list + | MESSAGE_REACTION_ADD of (* Message.t * *) Reaction.t + | MESSAGE_REACTION_REMOVE of (* Message.t * *) Reaction.t + | MESSAGE_REACTION_REMOVE_ALL of (* Message.t * *) Reaction.t list + | PRESENCE_UPDATE of Presence.t + | TYPING_START of Yojson.Safe.json + | USER_UPDATE of Yojson.Safe.json + | VOICE_STATE_UPDATE of Yojson.Safe.json + | VOICE_SERVER_UPDATE of Yojson.Safe.json + | WEBHOOKS_UPDATE of Yojson.Safe.json + + exception Invalid_event of string + + val event_of_string : contents:Yojson.Safe.json -> string -> dispatch_event + val dispatch : ev:string -> Yojson.Safe.json -> unit +end + module type Http = sig val token : string -- cgit v1.2.3 From c848b9cc265f5ac2bcc70bd73e1cc8945d512e34 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 13 Dec 2018 14:11:23 -0700 Subject: Add rate limit handling --- lib/s.ml | 55 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index 95eaee3..9ac86ad 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -21,32 +21,32 @@ module type Dispatch = sig | READY of Yojson.Safe.json | RESUMED of Yojson.Safe.json | INVALID_SESSION of Yojson.Safe.json - | CHANNEL_CREATE of Channel.t - | CHANNEL_UPDATE of Channel.t - | CHANNEL_DELETE of Channel.t + | CHANNEL_CREATE of Channel_t.t + | CHANNEL_UPDATE of Channel_t.t + | CHANNEL_DELETE of Channel_t.t | CHANNEL_PINS_UPDATE of Yojson.Safe.json - | GUILD_CREATE of Guild.t - | GUILD_UPDATE of Guild.t - | GUILD_DELETE of Guild.t - | GUILD_BAN_ADD of Ban.t - | GUILD_BAN_REMOVE of Ban.t + | GUILD_CREATE of Guild_t.t + | GUILD_UPDATE of Guild_t.t + | GUILD_DELETE of Guild_t.t + | GUILD_BAN_ADD of Ban_t.t + | GUILD_BAN_REMOVE of Ban_t.t | GUILD_EMOJIS_UPDATE of Yojson.Safe.json | GUILD_INTEGRATIONS_UPDATE of Yojson.Safe.json - | GUILD_MEMBER_ADD of Member.t - | GUILD_MEMBER_REMOVE of Member.t - | GUILD_MEMBER_UPDATE of Member.t - | GUILD_MEMBERS_CHUNK of Member.t list - | GUILD_ROLE_CREATE of Role.t (* * Guild.t *) - | GUILD_ROLE_UPDATE of Role.t (* * Guild.t *) - | GUILD_ROLE_DELETE of Role.t (* * Guild.t *) - | MESSAGE_CREATE of Message.t - | MESSAGE_UPDATE of Message.t - | MESSAGE_DELETE of Message.t - | MESSAGE_BULK_DELETE of Message.t list - | MESSAGE_REACTION_ADD of (* Message.t * *) Reaction.t - | MESSAGE_REACTION_REMOVE of (* Message.t * *) Reaction.t - | MESSAGE_REACTION_REMOVE_ALL of (* Message.t * *) Reaction.t list - | PRESENCE_UPDATE of Presence.t + | GUILD_MEMBER_ADD of Member_t.t + | GUILD_MEMBER_REMOVE of Member_t.t + | GUILD_MEMBER_UPDATE of Member_t.t + | GUILD_MEMBERS_CHUNK of Member_t.t list + | GUILD_ROLE_CREATE of Role_t.t (* * Guild.t *) + | GUILD_ROLE_UPDATE of Role_t.t (* * Guild.t *) + | GUILD_ROLE_DELETE of Role_t.t (* * Guild.t *) + | MESSAGE_CREATE of Message_t.t + | MESSAGE_UPDATE of Message_t.t + | MESSAGE_DELETE of Message_t.t + | MESSAGE_BULK_DELETE of Message_t.t list + | MESSAGE_REACTION_ADD of (* Message.t * *) Reaction_t.t + | MESSAGE_REACTION_REMOVE of (* Message.t * *) Reaction_t.t + | MESSAGE_REACTION_REMOVE_ALL of (* Message.t * *) Reaction_t.t list + | PRESENCE_UPDATE of Presence_t.t | TYPING_START of Yojson.Safe.json | USER_UPDATE of Yojson.Safe.json | VOICE_STATE_UPDATE of Yojson.Safe.json @@ -55,8 +55,8 @@ module type Dispatch = sig exception Invalid_event of string - val event_of_string : contents:Yojson.Safe.json -> string -> dispatch_event - val dispatch : ev:string -> Yojson.Safe.json -> unit + val event_of_string : contents:string -> string -> dispatch_event + val dispatch : ev:string -> string -> unit end module type Http = sig @@ -72,6 +72,7 @@ module type Http = sig val process_request_headers : unit -> Cohttp.Header.t val process_response : + string -> Cohttp_async.Response.t * Cohttp_async.Body.t -> Yojson.Safe.json Deferred.t @@ -277,7 +278,7 @@ module type Sharder = sig val request_guild_members : ?query:string -> ?limit:int -> - guild:Snowflake.t -> + guild:Snowflake_t.t -> shard -> shard Deferred.t @@ -301,7 +302,7 @@ module type Sharder = sig val request_guild_members : ?query:string -> ?limit:int -> - guild:Snowflake.t -> + guild:Snowflake_t.t -> t -> Shard.shard list Deferred.t end \ No newline at end of file -- cgit v1.2.3 From 179d9598fe62e2966471b312fd438e98ff3a272a Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Thu, 13 Dec 2018 15:50:37 -0700 Subject: Fix more dispatch issues --- lib/s.ml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index 9ac86ad..32347cb 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -4,10 +4,6 @@ module type Token = sig val token : string end -module type Client = sig - type context -end - module type Handler = sig val handle_event : 'a -> @@ -56,7 +52,7 @@ module type Dispatch = sig exception Invalid_event of string val event_of_string : contents:string -> string -> dispatch_event - val dispatch : ev:string -> string -> unit + val dispatch : ev: -> string -> unit end module type Http = sig -- cgit v1.2.3 From af684566617ebce536e9f30693aa3e225af906c4 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 14 Dec 2018 10:52:36 -0700 Subject: There's a lot going on --- lib/s.ml | 52 +++++++++------------------------------------------- 1 file changed, 9 insertions(+), 43 deletions(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index 32347cb..1fb8fdf 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -4,55 +4,21 @@ module type Token = sig val token : string end +module type Models = sig +end + module type Handler = sig val handle_event : - 'a -> - 'b -> + Event.t -> unit end -module type Dispatch = sig - type dispatch_event = - | HELLO of Yojson.Safe.json - | READY of Yojson.Safe.json - | RESUMED of Yojson.Safe.json - | INVALID_SESSION of Yojson.Safe.json - | CHANNEL_CREATE of Channel_t.t - | CHANNEL_UPDATE of Channel_t.t - | CHANNEL_DELETE of Channel_t.t - | CHANNEL_PINS_UPDATE of Yojson.Safe.json - | GUILD_CREATE of Guild_t.t - | GUILD_UPDATE of Guild_t.t - | GUILD_DELETE of Guild_t.t - | GUILD_BAN_ADD of Ban_t.t - | GUILD_BAN_REMOVE of Ban_t.t - | GUILD_EMOJIS_UPDATE of Yojson.Safe.json - | GUILD_INTEGRATIONS_UPDATE of Yojson.Safe.json - | GUILD_MEMBER_ADD of Member_t.t - | GUILD_MEMBER_REMOVE of Member_t.t - | GUILD_MEMBER_UPDATE of Member_t.t - | GUILD_MEMBERS_CHUNK of Member_t.t list - | GUILD_ROLE_CREATE of Role_t.t (* * Guild.t *) - | GUILD_ROLE_UPDATE of Role_t.t (* * Guild.t *) - | GUILD_ROLE_DELETE of Role_t.t (* * Guild.t *) - | MESSAGE_CREATE of Message_t.t - | MESSAGE_UPDATE of Message_t.t - | MESSAGE_DELETE of Message_t.t - | MESSAGE_BULK_DELETE of Message_t.t list - | MESSAGE_REACTION_ADD of (* Message.t * *) Reaction_t.t - | MESSAGE_REACTION_REMOVE of (* Message.t * *) Reaction_t.t - | MESSAGE_REACTION_REMOVE_ALL of (* Message.t * *) Reaction_t.t list - | PRESENCE_UPDATE of Presence_t.t - | TYPING_START of Yojson.Safe.json - | USER_UPDATE of Yojson.Safe.json - | VOICE_STATE_UPDATE of Yojson.Safe.json - | VOICE_SERVER_UPDATE of Yojson.Safe.json - | WEBHOOKS_UPDATE of Yojson.Safe.json - - exception Invalid_event of string +module type Handler_f = sig + module Make(Models : Models) : Handler +end - val event_of_string : contents:string -> string -> dispatch_event - val dispatch : ev: -> string -> unit +module type Dispatch = sig + val dispatch : ev:string -> string -> unit end module type Http = sig -- cgit v1.2.3 From 4df67b173aa7d51f5bd2ce95e476d130a6f93fd6 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 14 Dec 2018 11:53:25 -0700 Subject: Working and pretty message replying! --- lib/s.ml | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index 1fb8fdf..40af880 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -4,7 +4,51 @@ module type Token = sig val token : string end +module type Activity = sig end + +module type Attachment = sig end + +module type Ban = sig end + +module type Channel = sig end + +module type Embed = sig end + +module type Emoji = sig end + +module type Guild = sig end + +module type Member = sig end + +module type Message = sig + val reply : Message_t.t -> string -> Yojson.Safe.json Deferred.t +end + +module type Presence = sig end + +module type Reaction = sig end + +module type Role = sig end + +module type Snowflake = sig end + +module type User = sig end + module type Models = sig + module Activity : Activity + module Attachment : Attachment + module Ban : Ban + module Channel : Channel + module Embed : Embed + module Emoji : Emoji + module Guild : Guild + module Member : Member + module Message : Message + module Presence : Presence + module Reaction : Reaction + module Role : Role + module Snowflake : Snowflake + module User : User end module type Handler = sig -- cgit v1.2.3 From 043d6adcaf557981f764ec1eb8c6400cc10f3eb8 Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 14 Dec 2018 15:09:23 -0700 Subject: Improve endpoint module and add Message abstraction --- lib/s.ml | 218 +++++++++++++++++++++++++++++---------------------------------- 1 file changed, 101 insertions(+), 117 deletions(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index 40af880..f4f0e77 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -21,7 +21,15 @@ module type Guild = sig end module type Member = sig end module type Message = sig - val reply : Message_t.t -> string -> Yojson.Safe.json Deferred.t + val add_reaction : Message_t.t -> Emoji_t.t -> Yojson.Safe.json Deferred.t + val remove_reaction : Message_t.t -> Emoji_t.t -> User_t.t -> Yojson.Safe.json Deferred.t + val clear_reactions : Message_t.t -> Yojson.Safe.json Deferred.t + val delete : Message_t.t -> Yojson.Safe.json Deferred.t + val pin : Message_t.t -> Yojson.Safe.json Deferred.t + val unpin : Message_t.t -> Yojson.Safe.json Deferred.t + val reply : Message_t.t -> string -> Yojson.Safe.json Deferred.t + val set_content : Message_t.t -> string -> Yojson.Safe.json Deferred.t + val set_embed : Message_t.t -> Embed_t.t -> Yojson.Safe.json Deferred.t end module type Presence = sig end @@ -90,163 +98,139 @@ module type Http = sig end (* Auto-generated signatures *) - val get_gateway : unit -> Yojson.Safe.json Async.Deferred.t - val get_gateway_bot : unit -> Yojson.Safe.json Async.Deferred.t - val get_channel : string -> Yojson.Safe.json Async.Deferred.t + val get_gateway : unit -> Yojson.Safe.json Conduit_async.io + val get_gateway_bot : unit -> Yojson.Safe.json Conduit_async.io + val get_channel : int -> Yojson.Safe.json Conduit_async.io val modify_channel : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val delete_channel : string -> Yojson.Safe.json Async.Deferred.t - val get_messages : string -> Yojson.Safe.json Async.Deferred.t - val get_message : string -> string -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val delete_channel : int -> Yojson.Safe.json Conduit_async.io + val get_messages : int -> Yojson.Safe.json Conduit_async.io + val get_message : int -> int -> Yojson.Safe.json Conduit_async.io val create_message : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val create_reaction : - string -> string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> string -> Yojson.Safe.json Conduit_async.io val delete_own_reaction : - string -> string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> string -> Yojson.Safe.json Conduit_async.io val delete_reaction : - string -> - string -> string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> string -> int -> Yojson.Safe.json Conduit_async.io val get_reactions : - string -> string -> string -> Yojson.Safe.json Async.Deferred.t - val delete_reactions : - string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> string -> Yojson.Safe.json Conduit_async.io + val delete_reactions : int -> int -> Yojson.Safe.json Conduit_async.io val edit_message : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val delete_message : - string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val delete_message : int -> int -> Yojson.Safe.json Conduit_async.io val bulk_delete : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val edit_channel_permissions : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_channel_invites : string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_channel_invites : int -> Yojson.Safe.json Conduit_async.io val create_channel_invite : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val delete_channel_permission : - string -> string -> Yojson.Safe.json Async.Deferred.t - val broadcast_typing : string -> Yojson.Safe.json Async.Deferred.t - val get_pinned_messages : string -> Yojson.Safe.json Async.Deferred.t - val pin_message : string -> string -> Yojson.Safe.json Async.Deferred.t - val unpin_message : - string -> string -> Yojson.Safe.json Async.Deferred.t - val group_recipient_add : - string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json Conduit_async.io + val broadcast_typing : int -> Yojson.Safe.json Conduit_async.io + val get_pinned_messages : int -> Yojson.Safe.json Conduit_async.io + val pin_message : int -> int -> Yojson.Safe.json Conduit_async.io + val unpin_message : int -> int -> Yojson.Safe.json Conduit_async.io + val group_recipient_add : int -> int -> Yojson.Safe.json Conduit_async.io val group_recipient_remove : - string -> string -> Yojson.Safe.json Async.Deferred.t - val get_emojis : string -> Yojson.Safe.json Async.Deferred.t - val get_emoji : string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json Conduit_async.io + val get_emojis : int -> Yojson.Safe.json Conduit_async.io + val get_emoji : int -> int -> Yojson.Safe.json Conduit_async.io val create_emoji : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val edit_emoji : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val delete_emoji : string -> string -> Yojson.Safe.json Async.Deferred.t - val create_guild : - Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_guild : string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val delete_emoji : int -> int -> Yojson.Safe.json Conduit_async.io + val create_guild : Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_guild : int -> Yojson.Safe.json Conduit_async.io val edit_guild : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val delete_guild : string -> Yojson.Safe.json Async.Deferred.t - val get_guild_channels : string -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val delete_guild : int -> Yojson.Safe.json Conduit_async.io + val get_guild_channels : int -> Yojson.Safe.json Conduit_async.io val create_guild_channel : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val modify_guild_channel_positions : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_member : string -> string -> Yojson.Safe.json Async.Deferred.t - val get_members : string -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_member : int -> int -> Yojson.Safe.json Conduit_async.io + val get_members : int -> Yojson.Safe.json Conduit_async.io val add_member : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val edit_member : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val remove_member : - string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val remove_member : int -> int -> Yojson.Safe.json Conduit_async.io val change_nickname : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val add_member_role : - string -> string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> int -> Yojson.Safe.json Conduit_async.io val remove_member_role : - string -> string -> string -> Yojson.Safe.json Async.Deferred.t - val get_bans : string -> Yojson.Safe.json Async.Deferred.t - val get_ban : string -> string -> Yojson.Safe.json Async.Deferred.t + int -> int -> int -> Yojson.Safe.json Conduit_async.io + val get_bans : int -> Yojson.Safe.json Conduit_async.io + val get_ban : int -> int -> Yojson.Safe.json Conduit_async.io val guild_ban_add : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val guild_ban_remove : - string -> string -> Yojson.Safe.json Async.Deferred.t - val get_roles : string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val guild_ban_remove : int -> int -> Yojson.Safe.json Conduit_async.io + val get_roles : int -> Yojson.Safe.json Conduit_async.io val guild_role_add : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val guild_roles_edit : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val guild_role_edit : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val guild_role_remove : - string -> string -> Yojson.Safe.json Async.Deferred.t - val guild_prune_count : string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val guild_role_remove : int -> int -> Yojson.Safe.json Conduit_async.io + val guild_prune_count : int -> Yojson.Safe.json Conduit_async.io val guild_prune_start : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_guild_voice_regions : - string -> Yojson.Safe.json Async.Deferred.t - val get_guild_invites : string -> Yojson.Safe.json Async.Deferred.t - val get_integrations : string -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_guild_voice_regions : int -> Yojson.Safe.json Conduit_async.io + val get_guild_invites : int -> Yojson.Safe.json Conduit_async.io + val get_integrations : int -> Yojson.Safe.json Conduit_async.io val add_integration : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val edit_integration : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val delete_integration : - string -> string -> Yojson.Safe.json Async.Deferred.t - val sync_integration : - string -> string -> Yojson.Safe.json Async.Deferred.t - val get_guild_embed : string -> Yojson.Safe.json Async.Deferred.t + int -> int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val delete_integration : int -> int -> Yojson.Safe.json Conduit_async.io + val sync_integration : int -> int -> Yojson.Safe.json Conduit_async.io + val get_guild_embed : int -> Yojson.Safe.json Conduit_async.io val edit_guild_embed : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_vanity_url : string -> Yojson.Safe.json Async.Deferred.t - val get_invite : string -> Yojson.Safe.json Async.Deferred.t - val delete_invite : string -> Yojson.Safe.json Async.Deferred.t - val get_current_user : unit -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_vanity_url : int -> Yojson.Safe.json Conduit_async.io + val get_invite : string -> Yojson.Safe.json Conduit_async.io + val delete_invite : string -> Yojson.Safe.json Conduit_async.io + val get_current_user : unit -> Yojson.Safe.json Conduit_async.io val edit_current_user : - Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_guilds : unit -> Yojson.Safe.json Async.Deferred.t - val leave_guild : string -> Yojson.Safe.json Async.Deferred.t - val get_private_channels : unit -> Yojson.Safe.json Async.Deferred.t - val create_dm : Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_guilds : unit -> Yojson.Safe.json Conduit_async.io + val leave_guild : int -> Yojson.Safe.json Conduit_async.io + val get_private_channels : unit -> Yojson.Safe.json Conduit_async.io + val create_dm : Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val create_group_dm : - Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_connections : unit -> Yojson.Safe.json Async.Deferred.t - val get_user : string -> Yojson.Safe.json Async.Deferred.t - val get_voice_regions : unit -> Yojson.Safe.json Async.Deferred.t + Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_connections : unit -> Yojson.Safe.json Conduit_async.io + val get_user : int -> Yojson.Safe.json Conduit_async.io + val get_voice_regions : unit -> Yojson.Safe.json Conduit_async.io val create_webhook : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val get_channel_webhooks : string -> Yojson.Safe.json Async.Deferred.t - val get_guild_webhooks : string -> Yojson.Safe.json Async.Deferred.t - val get_webhook : string -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val get_channel_webhooks : int -> Yojson.Safe.json Conduit_async.io + val get_guild_webhooks : int -> Yojson.Safe.json Conduit_async.io + val get_webhook : int -> Yojson.Safe.json Conduit_async.io val get_webhook_with_token : - string -> string -> Yojson.Safe.json Async.Deferred.t + int -> string -> Yojson.Safe.json Conduit_async.io val edit_webhook : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val edit_webhook_with_token : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t - val delete_webhook : string -> Yojson.Safe.json Async.Deferred.t + int -> string -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io + val delete_webhook : int -> Yojson.Safe.json Conduit_async.io val delete_webhook_with_token : - string -> string -> Yojson.Safe.json Async.Deferred.t + int -> string -> Yojson.Safe.json Conduit_async.io val execute_webhook : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> string -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val execute_slack_webhook : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> string -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val execute_git_webhook : - string -> - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> string -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io val get_audit_logs : - string -> Yojson.Safe.json -> Yojson.Safe.json Async.Deferred.t + int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io end module type Sharder = sig -- cgit v1.2.3 From a96b6386c0eeaa7ce3b65c39413cd89b7117ae0f Mon Sep 17 00:00:00 2001 From: Adelyn Breelove Date: Fri, 14 Dec 2018 15:45:27 -0700 Subject: A few odds and ends --- lib/s.ml | 75 +++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 32 deletions(-) (limited to 'lib/s.ml') diff --git a/lib/s.ml b/lib/s.ml index f4f0e77..afe4209 100644 --- a/lib/s.ml +++ b/lib/s.ml @@ -18,7 +18,17 @@ module type Emoji = sig end module type Guild = sig end -module type Member = sig end +module type Member = sig + (* 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 *) +end module type Message = sig val add_reaction : Message_t.t -> Emoji_t.t -> Yojson.Safe.json Deferred.t @@ -42,37 +52,6 @@ module type Snowflake = sig end module type User = sig end -module type Models = sig - module Activity : Activity - module Attachment : Attachment - module Ban : Ban - module Channel : Channel - module Embed : Embed - module Emoji : Emoji - module Guild : Guild - module Member : Member - module Message : Message - module Presence : Presence - module Reaction : Reaction - module Role : Role - module Snowflake : Snowflake - module User : User -end - -module type Handler = sig - val handle_event : - Event.t -> - unit -end - -module type Handler_f = sig - module Make(Models : Models) : Handler -end - -module type Dispatch = sig - val dispatch : ev:string -> string -> unit -end - module type Http = sig val token : string @@ -233,6 +212,38 @@ module type Http = sig int -> Yojson.Safe.json -> Yojson.Safe.json Conduit_async.io end +module type Models = sig + module Http : Http + module Activity : Activity + module Attachment : Attachment + module Ban : Ban + module Channel : Channel + module Embed : Embed + module Emoji : Emoji + module Guild : Guild + module Member : Member + module Message : Message + module Presence : Presence + module Reaction : Reaction + module Role : Role + module Snowflake : Snowflake + module User : User +end + +module type Handler = sig + val handle_event : + Event.t -> + unit +end + +module type Handler_f = sig + module Make(Models : Models) : Handler +end + +module type Dispatch = sig + val dispatch : ev:string -> string -> unit +end + module type Sharder = sig exception Invalid_Payload exception Failure_to_Establish_Heartbeat -- cgit v1.2.3