diff options
| author | Adelyn Breedlove <[email protected]> | 2018-12-12 17:01:04 -0700 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2018-12-12 17:01:04 -0700 |
| commit | a1e99ad1691a67d5aecc73109d2e1c16bdbe4050 (patch) | |
| tree | 0c29235bf41df0705e854c73b2b32ce60b3a357d /lib/s.ml | |
| parent | Merge branch 'dev' of https://gitlab.com/Mishio595/disml into dev (diff) | |
| parent | Update my name in disml.opam (diff) | |
| download | disml-a1e99ad1691a67d5aecc73109d2e1c16bdbe4050.tar.xz disml-a1e99ad1691a67d5aecc73109d2e1c16bdbe4050.zip | |
Merge branch 'dev' of https://gitlab.com/Mishio595/disml into dev
Diffstat (limited to 'lib/s.ml')
| -rw-r--r-- | lib/s.ml | 256 |
1 files changed, 155 insertions, 101 deletions
@@ -1,10 +1,64 @@ 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 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 @@ -14,178 +68,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 +270,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 +289,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 |