aboutsummaryrefslogtreecommitdiff
path: root/lib/s.ml
diff options
context:
space:
mode:
authorMishio595 <[email protected]>2018-11-29 18:10:45 -0700
committerMishio595 <[email protected]>2018-11-29 18:10:45 -0700
commiteaccd45894e5b519bca82662d0b950b5f1d9c598 (patch)
tree0d08c556ca3a0399c0be1169d5f0da57b618812b /lib/s.ml
parentTry to make it a more properly structured lib (diff)
downloaddisml-eaccd45894e5b519bca82662d0b950b5f1d9c598.tar.xz
disml-eaccd45894e5b519bca82662d0b950b5f1d9c598.zip
Fix all the errors from coding without merlin
Diffstat (limited to 'lib/s.ml')
-rw-r--r--lib/s.ml215
1 files changed, 189 insertions, 26 deletions
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