diff options
| author | Adelyn Breedlove <[email protected]> | 2018-12-14 16:49:37 -0700 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2018-12-14 16:49:37 -0700 |
| commit | 41fbba7d0b7dd9fff8dcb9985a474cfbbd2408f2 (patch) | |
| tree | 690861418bed15de47e7cf5672d96fdacc9abe5e /lib | |
| parent | Merge branch 'dev' of https://gitlab.com/Mishio595/disml into dev (diff) | |
| parent | A few metafile updates (diff) | |
| download | disml-41fbba7d0b7dd9fff8dcb9985a474cfbbd2408f2.tar.xz disml-41fbba7d0b7dd9fff8dcb9985a474cfbbd2408f2.zip | |
Merging
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/client.ml | 6 | ||||
| -rw-r--r-- | lib/dispatch.ml | 85 | ||||
| -rw-r--r-- | lib/dispatch.mli | 1 | ||||
| -rw-r--r-- | lib/endpoints.ml | 138 | ||||
| -rw-r--r-- | lib/event.ml | 185 | ||||
| -rw-r--r-- | lib/models.ml | 17 | ||||
| -rw-r--r-- | lib/models/activity.ml | 2 | ||||
| -rw-r--r-- | lib/models/attachment.ml | 2 | ||||
| -rw-r--r-- | lib/models/ban.ml | 2 | ||||
| -rw-r--r-- | lib/models/channel.ml | 2 | ||||
| -rw-r--r-- | lib/models/embed.ml | 2 | ||||
| -rw-r--r-- | lib/models/emoji.ml | 2 | ||||
| -rw-r--r-- | lib/models/gen/activity.atd (renamed from lib/models/activity.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/activity_j.ml (renamed from lib/models/activity_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/activity_j.mli (renamed from lib/models/activity_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/activity_t.ml (renamed from lib/models/activity_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/activity_t.mli (renamed from lib/models/activity_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/attachment.atd (renamed from lib/models/attachment.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/attachment_j.ml (renamed from lib/models/attachment_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/attachment_j.mli (renamed from lib/models/attachment_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/attachment_t.ml (renamed from lib/models/attachment_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/attachment_t.mli (renamed from lib/models/attachment_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/ban.atd (renamed from lib/models/ban.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/ban_j.ml (renamed from lib/models/ban_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/ban_j.mli (renamed from lib/models/ban_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/ban_t.ml (renamed from lib/models/ban_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/ban_t.mli (renamed from lib/models/ban_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/channel.atd (renamed from lib/models/channel.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/channel_j.ml (renamed from lib/models/channel_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/channel_j.mli (renamed from lib/models/channel_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/channel_t.ml (renamed from lib/models/channel_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/channel_t.mli (renamed from lib/models/channel_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/embed.atd (renamed from lib/models/embed.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/embed_j.ml (renamed from lib/models/embed_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/embed_j.mli (renamed from lib/models/embed_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/embed_t.ml (renamed from lib/models/embed_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/embed_t.mli (renamed from lib/models/embed_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/emoji.atd (renamed from lib/models/emoji.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/emoji_j.ml (renamed from lib/models/emoji_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/emoji_j.mli (renamed from lib/models/emoji_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/emoji_t.ml (renamed from lib/models/emoji_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/emoji_t.mli (renamed from lib/models/emoji_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/guild.atd (renamed from lib/models/guild.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/guild_j.ml (renamed from lib/models/guild_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/guild_j.mli (renamed from lib/models/guild_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/guild_t.ml (renamed from lib/models/guild_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/guild_t.mli (renamed from lib/models/guild_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/member.atd (renamed from lib/models/member.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/member_j.ml (renamed from lib/models/member_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/member_j.mli (renamed from lib/models/member_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/member_t.ml (renamed from lib/models/member_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/member_t.mli (renamed from lib/models/member_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/message.atd (renamed from lib/models/message.atd) | 9 | ||||
| -rw-r--r-- | lib/models/gen/message_j.ml (renamed from lib/models/message_j.ml) | 317 | ||||
| -rw-r--r-- | lib/models/gen/message_j.mli (renamed from lib/models/message_j.mli) | 74 | ||||
| -rw-r--r-- | lib/models/gen/message_t.ml (renamed from lib/models/message_t.ml) | 14 | ||||
| -rw-r--r-- | lib/models/gen/message_t.mli (renamed from lib/models/message_t.mli) | 14 | ||||
| -rw-r--r-- | lib/models/gen/presence.atd (renamed from lib/models/presence.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/presence_j.ml (renamed from lib/models/presence_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/presence_j.mli (renamed from lib/models/presence_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/presence_t.ml (renamed from lib/models/presence_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/presence_t.mli (renamed from lib/models/presence_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/reaction.atd (renamed from lib/models/reaction.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/reaction_j.ml (renamed from lib/models/reaction_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/reaction_j.mli (renamed from lib/models/reaction_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/reaction_t.ml (renamed from lib/models/reaction_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/reaction_t.mli (renamed from lib/models/reaction_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/role.atd (renamed from lib/models/role.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/role_j.ml (renamed from lib/models/role_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/role_j.mli (renamed from lib/models/role_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/role_t.ml (renamed from lib/models/role_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/role_t.mli (renamed from lib/models/role_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/snowflake.atd (renamed from lib/models/snowflake.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/snowflake_j.ml (renamed from lib/models/snowflake_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/snowflake_j.mli (renamed from lib/models/snowflake_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/snowflake_t.ml (renamed from lib/models/snowflake_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/snowflake_t.mli (renamed from lib/models/snowflake_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/user.atd (renamed from lib/models/user.atd) | 0 | ||||
| -rw-r--r-- | lib/models/gen/user_j.ml (renamed from lib/models/user_j.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/user_j.mli (renamed from lib/models/user_j.mli) | 0 | ||||
| -rw-r--r-- | lib/models/gen/user_t.ml (renamed from lib/models/user_t.ml) | 0 | ||||
| -rw-r--r-- | lib/models/gen/user_t.mli (renamed from lib/models/user_t.mli) | 0 | ||||
| -rw-r--r-- | lib/models/guild.ml | 2 | ||||
| -rw-r--r-- | lib/models/member.ml | 2 | ||||
| -rw-r--r-- | lib/models/message.ml | 43 | ||||
| -rw-r--r-- | lib/models/message.mli | 1 | ||||
| -rw-r--r-- | lib/models/presence.ml | 2 | ||||
| -rw-r--r-- | lib/models/reaction.ml | 2 | ||||
| -rw-r--r-- | lib/models/role.ml | 2 | ||||
| -rw-r--r-- | lib/models/snowflake.ml | 2 | ||||
| -rw-r--r-- | lib/models/user.ml | 2 | ||||
| -rw-r--r-- | lib/s.ml | 331 | ||||
| -rw-r--r-- | lib/sharder.ml | 1 |
93 files changed, 608 insertions, 654 deletions
diff --git a/lib/client.ml b/lib/client.ml index 9211281..229c9cc 100644 --- a/lib/client.ml +++ b/lib/client.ml @@ -1,10 +1,12 @@ open Async -module Make(T : S.Token)(H : S.Handler) = struct +module Make(T : S.Token)(H : S.Handler_f) = struct include T module Http = Http.Make(T) - module Dispatch = Dispatch.Make(H) + module Models = Models.Make(Http) + module Handler = H.Make(Models) + module Dispatch = Dispatch.Make(Handler) module Sharder = Sharder.Make(Http)(Dispatch) type t = { diff --git a/lib/dispatch.ml b/lib/dispatch.ml index a4341e1..c38afe2 100644 --- a/lib/dispatch.ml +++ b/lib/dispatch.ml @@ -1,85 +1,6 @@ -open Core - module Make(H : S.Handler) : S.Dispatch = struct - 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 - - let event_of_string ~contents t = match t with - | "HELLO" -> HELLO (Yojson.Safe.from_string contents) - | "READY" -> READY (Yojson.Safe.from_string contents) - | "RESUMED" -> RESUMED (Yojson.Safe.from_string contents) - | "INVALID_SESSION" -> INVALID_SESSION (Yojson.Safe.from_string contents) - | "CHANNEL_CREATE" -> CHANNEL_CREATE (Channel_j.t_of_string contents) - | "CHANNEL_UPDATE" -> CHANNEL_UPDATE (Channel_j.t_of_string contents) - | "CHANNEL_DELETE" -> CHANNEL_DELETE (Channel_j.t_of_string contents) - | "CHANNEL_PINS_UPDATE" -> CHANNEL_PINS_UPDATE (Yojson.Safe.from_string contents) - | "GUILD_CREATE" -> GUILD_CREATE (Guild_j.t_of_string contents) - | "GUILD_UPDATE" -> GUILD_UPDATE (Guild_j.t_of_string contents) - | "GUILD_DELETE" -> GUILD_DELETE (Guild_j.t_of_string contents) - | "GUILD_BAN_ADD" -> GUILD_BAN_ADD (Ban_j.t_of_string contents) - | "GUILD_BAN_REMOVE" -> GUILD_BAN_REMOVE (Ban_j.t_of_string contents) - | "GUILD_EMOJIS_UPDATE" -> GUILD_EMOJIS_UPDATE (Yojson.Safe.from_string contents) - | "GUILD_INTEGRATIONS_UPDATE" -> GUILD_INTEGRATIONS_UPDATE (Yojson.Safe.from_string contents) - | "GUILD_MEMBER_ADD" -> GUILD_MEMBER_ADD (Member_j.t_of_string contents) - | "GUILD_MEMBER_REMOVE" -> GUILD_MEMBER_REMOVE (Member_j.t_of_string contents) - | "GUILD_MEMBER_UPDATE" -> GUILD_MEMBER_UPDATE (Member_j.t_of_string contents) - | "GUILD_MEMBERS_CHUNK" -> GUILD_MEMBERS_CHUNK (Yojson.Safe.(from_string contents |> Util.to_list) |> List.map ~f:(fun m -> Yojson.Safe.to_string m |> Member_j.t_of_string)) - | "GUILD_ROLE_CREATE" -> GUILD_ROLE_CREATE (Role_j.t_of_string contents) - | "GUILD_ROLE_UPDATE" -> GUILD_ROLE_UPDATE (Role_j.t_of_string contents) - | "GUILD_ROLE_DELETE" -> GUILD_ROLE_DELETE (Role_j.t_of_string contents) - | "MESSAGE_CREATE" -> MESSAGE_CREATE (Message_j.t_of_string contents) - | "MESSAGE_UPDATE" -> MESSAGE_UPDATE (Message_j.t_of_string contents) - | "MESSAGE_DELETE" -> MESSAGE_DELETE (Message_j.t_of_string contents) - | "MESSAGE_BULK_DELETE" -> MESSAGE_BULK_DELETE (Yojson.Safe.(from_string contents |> Util.to_list) |> List.map ~f:(fun m -> Yojson.Safe.to_string m |> Message_j.t_of_string)) - | "MESSAGE_REACTION_ADD" -> MESSAGE_REACTION_ADD (Reaction_j.t_of_string contents) - | "MESSAGE_REACTION_REMOVE" -> MESSAGE_REACTION_REMOVE (Reaction_j.t_of_string contents) - | "MESSAGE_REACTION_REMOVE_ALL" -> MESSAGE_REACTION_REMOVE_ALL (Yojson.Safe.(from_string contents |> Util.to_list) |> List.map ~f:(fun m -> Yojson.Safe.to_string m |> Reaction_j.t_of_string)) - | "PRESENCE_UPDATE" -> PRESENCE_UPDATE (Presence_j.t_of_string contents) - | "TYPING_START" -> TYPING_START (Yojson.Safe.from_string contents) - | "USER_UPDATE" -> USER_UPDATE (Yojson.Safe.from_string contents) - | "VOICE_STATE_UPDATE" -> VOICE_STATE_UPDATE (Yojson.Safe.from_string contents) - | "VOICE_SERVER_UPDATE" -> VOICE_SERVER_UPDATE (Yojson.Safe.from_string contents) - | "WEBHOOKS_UPDATE" -> WEBHOOKS_UPDATE (Yojson.Safe.from_string contents) - | s -> raise (Invalid_event s) - let dispatch ~ev contents = - let ctx = () in - event_of_string ~contents ev - |> H.handle_event ctx + print_endline (Yojson.Safe.prettify contents); + Event.event_of_string ~contents ev + |> H.handle_event end
\ No newline at end of file diff --git a/lib/dispatch.mli b/lib/dispatch.mli new file mode 100644 index 0000000..100a34b --- /dev/null +++ b/lib/dispatch.mli @@ -0,0 +1 @@ +module Make(H : S.Handler) : S.Dispatch
\ No newline at end of file diff --git a/lib/endpoints.ml b/lib/endpoints.ml index 4fc2d1a..12563b0 100644 --- a/lib/endpoints.ml +++ b/lib/endpoints.ml @@ -1,96 +1,62 @@ +open Printf + let gateway = "/gateway" let gateway_bot = "/gateway/bot" - -let channel channel_id = "/channels/"^channel_id -let channel_messages channel_id = "/channels/"^channel_id^"/messages" - -let channel_message channel_id msg_id = - "/channels/"^channel_id^"/messages/"^msg_id - -let channel_reaction_me channel_id msg_id emoji = - "/channels/"^channel_id^"/messages/"^msg_id^"/reactions/"^emoji^"/@me" - -let channel_reaction channel_id msg_id emoji user_id = - "/channels/"^channel_id^"/messages/"^msg_id^"/reactions/"^emoji^"/"^user_id - -let channel_reactions_get channel_id msg_id emoji = - "/channels/"^channel_id^"/messages/"^msg_id^"/reactions/"^emoji - -let channel_reactions_delete channel_id msg_id = - "/channels/"^channel_id^"/messages/"^msg_id^"/reactions" - -let channel_bulk_delete channel_id = "/channels/"^channel_id - -let channel_permission channel_id overwrite_id = - "/channels/"^channel_id^"/permissions/"^overwrite_id - -let channel_permissions channel_id = "/channels"^channel_id^"/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 channel_id = "/channels/"^channel_id^"/call/ring" -let channel_invites channel_id = "/channels/"^channel_id^"/invites" -let channel_typing channel_id = "/channels/"^channel_id^"/typing" -let channel_pins channel_id = "/channels/"^channel_id^"/pins" -let channel_pin channel_id msg_id = "/channels/"^channel_id^"/pins/"^msg_id - +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 guild_id = "/guilds/"^guild_id -let guild_channels guild_id = "/guilds/"^guild_id^"/channels" -let guild_members guild_id = "/guilds/"^guild_id^"/members" -let guild_member guild_id user_id = "/guilds/"^guild_id^"/members/"^user_id - -let guild_member_role guild_id user_id role_id = - "/guilds/"^guild_id^"/members/"^user_id^"/roles/"^role_id - -let guild_bans guild_id = "/guilds/"^guild_id^"/bans" -let guild_ban guild_id user_id = "/guilds/"^guild_id^"/bans"^user_id -let guild_roles guild_id = "/guilds/"^guild_id^"/roles" -let guild_role guild_id role_id = "/guilds/"^guild_id^"/roles"^role_id -let guild_prune guild_id = "/guilds/"^guild_id^"/prune" -let guild_voice_regions guild_id = "/guilds/"^guild_id^"/regions" -let guild_invites guild_id = "/guilds/"^guild_id^"/invites" -let guild_integrations guild_id = "/guilds/"^guild_id^"/integrations" - -let guild_integration guild_id integration_id = - "/guilds/"^guild_id^"/integrations/"^integration_id - -let guild_integration_sync guild_id integration_id = - "/guilds/"^guild_id^"/integrations/"^integration_id^"/sync" - -let guild_embed guild_id = "/guilds/"^guild_id^"/embed" -let guild_emojis guild_id = "/guilds/"^guild_id^"/emojis" -let guild_emoji guild_id emoji_id = "/guilds/"^guild_id^"/emojis/"^emoji_id - -let webhooks_guild guild_id = "/guilds/"^guild_id^"/webhooks" -let webhooks_channel channel_id = "/channels/"^channel_id^"/webhooks" -let webhook webhook_id = "/webhooks/"^webhook_id -let webhook_token webhook_id token = "/webhooks/"^webhook_id^"/"^token - -let webhook_git webhook_id token = - "/webhooks/"^webhook_id^"/"^token^"/github" - -let webhook_slack webhook_id token = - "/webhooks/"^webhook_id^"/"^token^"/slack" - -let user user_id = "/users/"^user_id - +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 guild_id = "/users/@me/guilds/"^guild_id +let me_guild = sprintf "/users/@me/guilds/%d" let me_channels = "/users/@me/channels" let me_connections = "/users/@me/connections" - -let invite code = "/invites/"^code +let invite = sprintf "/invites/%s" let regions = "/voice/regions" - let application_information = "/oauth2/applications/@me" - -let group_recipient group_id user_id = "/channels/"^group_id^"/recipients/"^user_id -let guild_me_nick guild_id = "/guilds/"^guild_id^"/members/@me/nick" -let guild_vanity_url guild_id = "/guilds/"^guild_id^"/vanity-url" -let guild_audit_logs guild_id = "/guilds/"^guild_id^"/audit-logs" - -(* let cdn_avatar id avatar image_format = "/avatars/"^id^"/"^avatar^"."^image_format *) -let cdn_embed_avatar image_name = "/embed/avatars/"^image_name^".png" -let cdn_emoji id image_format = "/emojis/"^id^"."^image_format -let cdn_icon id icon image_format = "/icons/"^id^"/"^icon^"."^image_format -let cdn_avatar id splash image_format = "/splashes/"^id^"/"^splash^"."^image_format
\ No newline at end of file +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/%d/%s.%s" +let cdn_avatar = sprintf "/splashes/%d/%s.%s"
\ No newline at end of file diff --git a/lib/event.ml b/lib/event.ml index 8b5b125..6e35c75 100644 --- a/lib/event.ml +++ b/lib/event.ml @@ -1,113 +1,78 @@ -type t = -| HELLO -| READY -| RESUMED -| INVALID_SESSION -| CHANNEL_CREATE -| CHANNEL_UPDATE -| CHANNEL_DELETE -| CHANNEL_PINS_UPDATE -| GUILD_CREATE -| GUILD_UPDATE -| GUILD_DELETE -| GUILD_BAN_ADD -| GUILD_BAN_REMOVE -| GUILD_EMOJIS_UPDATE -| GUILD_INTEGRATIONS_UPDATE -| GUILD_MEMBER_ADD -| GUILD_MEMBER_REMOVE -| GUILD_MEMBER_UPDATE -| GUILD_MEMBERS_CHUNK -| GUILD_ROLE_CREATE -| GUILD_ROLE_UPDATE -| GUILD_ROLE_DELETE -| MESSAGE_CREATE -| MESSAGE_UPDATE -| MESSAGE_DELETE -| MESSAGE_BULK_DELETE -| MESSAGE_REACTION_ADD -| MESSAGE_REACTION_REMOVE -| MESSAGE_REACTION_REMOVE_ALL -| PRESENCE_UPDATE -| TYPING_START -| USER_UPDATE -| VOICE_STATE_UPDATE -| VOICE_SERVER_UPDATE -| WEBHOOKS_UPDATE +open Core -exception Invalid_Event of string +type t = +| 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 -let from_string = function - | "HELLO" -> HELLO - | "READY" -> READY - | "RESUMED" -> RESUMED - | "INVALID_SESSION" -> INVALID_SESSION - | "CHANNEL_CREATE" -> CHANNEL_CREATE - | "CHANNEL_UPDATE" -> CHANNEL_UPDATE - | "CHANNEL_DELETE" -> CHANNEL_DELETE - | "CHANNEL_PINS_UPDATE" -> CHANNEL_PINS_UPDATE - | "GUILD_CREATE" -> GUILD_CREATE - | "GUILD_UPDATE" -> GUILD_UPDATE - | "GUILD_DELETE" -> GUILD_DELETE - | "GUILD_BAN_ADD" -> GUILD_BAN_ADD - | "GUILD_BAN_REMOVE" -> GUILD_BAN_REMOVE - | "GUILD_EMOJIS_UPDATE" -> GUILD_EMOJIS_UPDATE - | "GUILD_INTEGRATIONS_UPDATE" -> GUILD_INTEGRATIONS_UPDATE - | "GUILD_MEMBER_ADD" -> GUILD_MEMBER_ADD - | "GUILD_MEMBER_REMOVE" -> GUILD_MEMBER_REMOVE - | "GUILD_MEMBER_UPDATE" -> GUILD_MEMBER_UPDATE - | "GUILD_MEMBERS_CHUNK" -> GUILD_MEMBERS_CHUNK - | "GUILD_ROLE_CREATE" -> GUILD_ROLE_CREATE - | "GUILD_ROLE_UPDATE" -> GUILD_ROLE_UPDATE - | "GUILD_ROLE_DELETE" -> GUILD_ROLE_DELETE - | "MESSAGE_CREATE" -> MESSAGE_CREATE - | "MESSAGE_UPDATE" -> MESSAGE_UPDATE - | "MESSAGE_DELETE" -> MESSAGE_DELETE - | "MESSAGE_BULK_DELETE" -> MESSAGE_BULK_DELETE - | "MESSAGE_REACTION_ADD" -> MESSAGE_REACTION_ADD - | "MESSAGE_REACTION_REMOVE" -> MESSAGE_REACTION_REMOVE - | "MESSAGE_REACTION_REMOVE_ALL" -> MESSAGE_REACTION_REMOVE_ALL - | "PRESENCE_UPDATE" -> PRESENCE_UPDATE - | "TYPING_START" -> TYPING_START - | "USER_UPDATE" -> USER_UPDATE - | "VOICE_STATE_UPDATE" -> VOICE_STATE_UPDATE - | "VOICE_SERVER_UPDATE" -> VOICE_SERVER_UPDATE - | "WEBHOOKS_UPDATE" -> WEBHOOKS_UPDATE - | ev -> raise (Invalid_Event ev) +exception Invalid_event of string -let to_string = function - | HELLO -> "HELLO" - | READY -> "READY" - | RESUMED -> "RESUMED" - | INVALID_SESSION -> "INVALID_SESSION" - | CHANNEL_CREATE -> "CHANNEL_CREATE" - | CHANNEL_UPDATE -> "CHANNEL_UPDATE" - | CHANNEL_DELETE -> "CHANNEL_DELETE" - | CHANNEL_PINS_UPDATE -> "CHANNEL_PINS_UPDATE" - | GUILD_CREATE -> "GUILD_CREATE" - | GUILD_UPDATE -> "GUILD_UPDATE" - | GUILD_DELETE -> "GUILD_DELETE" - | GUILD_BAN_ADD -> "GUILD_BAN_ADD" - | GUILD_BAN_REMOVE -> "GUILD_BAN_REMOVE" - | GUILD_EMOJIS_UPDATE -> "GUILD_EMOJIS_UPDATE" - | GUILD_INTEGRATIONS_UPDATE -> "GUILD_INTEGRATIONS_UPDATE" - | GUILD_MEMBER_ADD -> "GUILD_MEMBER_ADD" - | GUILD_MEMBER_REMOVE -> "GUILD_MEMBER_REMOVE" - | GUILD_MEMBER_UPDATE -> "GUILD_MEMBER_UPDATE" - | GUILD_MEMBERS_CHUNK -> "GUILD_MEMBERS_CHUNK" - | GUILD_ROLE_CREATE -> "GUILD_ROLE_CREATE" - | GUILD_ROLE_UPDATE -> "GUILD_ROLE_UPDATE" - | GUILD_ROLE_DELETE -> "GUILD_ROLE_DELETE" - | MESSAGE_CREATE -> "MESSAGE_CREATE" - | MESSAGE_UPDATE -> "MESSAGE_UPDATE" - | MESSAGE_DELETE -> "MESSAGE_DELETE" - | MESSAGE_BULK_DELETE -> "MESSAGE_BULK_DELETE" - | MESSAGE_REACTION_ADD -> "MESSAGE_REACTION_ADD" - | MESSAGE_REACTION_REMOVE -> "MESSAGE_REACTION_REMOVE" - | MESSAGE_REACTION_REMOVE_ALL -> "MESSAGE_REACTION_REMOVE_ALL" - | PRESENCE_UPDATE -> "PRESENCE_UPDATE" - | TYPING_START -> "TYPING_START" - | USER_UPDATE -> "USER_UPDATE" - | VOICE_STATE_UPDATE -> "VOICE_STATE_UPDATE" - | VOICE_SERVER_UPDATE -> "VOICE_SERVER_UPDATE" - | WEBHOOKS_UPDATE -> "WEBHOOKS_UPDATE"
\ No newline at end of file +let event_of_string ~contents t = match t with + | "HELLO" -> HELLO (Yojson.Safe.from_string contents) + | "READY" -> READY (Yojson.Safe.from_string contents) + | "RESUMED" -> RESUMED (Yojson.Safe.from_string contents) + | "INVALID_SESSION" -> INVALID_SESSION (Yojson.Safe.from_string contents) + | "CHANNEL_CREATE" -> CHANNEL_CREATE (Channel_j.t_of_string contents) + | "CHANNEL_UPDATE" -> CHANNEL_UPDATE (Channel_j.t_of_string contents) + | "CHANNEL_DELETE" -> CHANNEL_DELETE (Channel_j.t_of_string contents) + | "CHANNEL_PINS_UPDATE" -> CHANNEL_PINS_UPDATE (Yojson.Safe.from_string contents) + | "GUILD_CREATE" -> GUILD_CREATE (Guild_j.t_of_string contents) + | "GUILD_UPDATE" -> GUILD_UPDATE (Guild_j.t_of_string contents) + | "GUILD_DELETE" -> GUILD_DELETE (Guild_j.t_of_string contents) + | "GUILD_BAN_ADD" -> GUILD_BAN_ADD (Ban_j.t_of_string contents) + | "GUILD_BAN_REMOVE" -> GUILD_BAN_REMOVE (Ban_j.t_of_string contents) + | "GUILD_EMOJIS_UPDATE" -> GUILD_EMOJIS_UPDATE (Yojson.Safe.from_string contents) + | "GUILD_INTEGRATIONS_UPDATE" -> GUILD_INTEGRATIONS_UPDATE (Yojson.Safe.from_string contents) + | "GUILD_MEMBER_ADD" -> GUILD_MEMBER_ADD (Member_j.t_of_string contents) + | "GUILD_MEMBER_REMOVE" -> GUILD_MEMBER_REMOVE (Member_j.t_of_string contents) + | "GUILD_MEMBER_UPDATE" -> GUILD_MEMBER_UPDATE (Member_j.t_of_string contents) + | "GUILD_MEMBERS_CHUNK" -> GUILD_MEMBERS_CHUNK (Yojson.Safe.(from_string contents |> Util.to_list) |> List.map ~f:(fun m -> Yojson.Safe.to_string m |> Member_j.t_of_string)) + | "GUILD_ROLE_CREATE" -> GUILD_ROLE_CREATE (Role_j.t_of_string contents) + | "GUILD_ROLE_UPDATE" -> GUILD_ROLE_UPDATE (Role_j.t_of_string contents) + | "GUILD_ROLE_DELETE" -> GUILD_ROLE_DELETE (Role_j.t_of_string contents) + | "MESSAGE_CREATE" -> MESSAGE_CREATE (Message_j.t_of_string contents) + | "MESSAGE_UPDATE" -> MESSAGE_UPDATE (Message_j.t_of_string contents) + | "MESSAGE_DELETE" -> MESSAGE_DELETE (Message_j.t_of_string contents) + | "MESSAGE_BULK_DELETE" -> MESSAGE_BULK_DELETE (Yojson.Safe.(from_string contents |> Util.to_list) |> List.map ~f:(fun m -> Yojson.Safe.to_string m |> Message_j.t_of_string)) + | "MESSAGE_REACTION_ADD" -> MESSAGE_REACTION_ADD (Reaction_j.t_of_string contents) + | "MESSAGE_REACTION_REMOVE" -> MESSAGE_REACTION_REMOVE (Reaction_j.t_of_string contents) + | "MESSAGE_REACTION_REMOVE_ALL" -> MESSAGE_REACTION_REMOVE_ALL (Yojson.Safe.(from_string contents |> Util.to_list) |> List.map ~f:(fun m -> Yojson.Safe.to_string m |> Reaction_j.t_of_string)) + | "PRESENCE_UPDATE" -> PRESENCE_UPDATE (Presence_j.t_of_string contents) + | "TYPING_START" -> TYPING_START (Yojson.Safe.from_string contents) + | "USER_UPDATE" -> USER_UPDATE (Yojson.Safe.from_string contents) + | "VOICE_STATE_UPDATE" -> VOICE_STATE_UPDATE (Yojson.Safe.from_string contents) + | "VOICE_SERVER_UPDATE" -> VOICE_SERVER_UPDATE (Yojson.Safe.from_string contents) + | "WEBHOOKS_UPDATE" -> WEBHOOKS_UPDATE (Yojson.Safe.from_string contents) + | s -> raise (Invalid_event s)
\ No newline at end of file diff --git a/lib/models.ml b/lib/models.ml new file mode 100644 index 0000000..250de34 --- /dev/null +++ b/lib/models.ml @@ -0,0 +1,17 @@ +module Make(H : S.Http) = struct + module Http = H + module Activity = Activity.Make(H) + module Attachment = Attachment.Make(H) + module Ban = Ban.Make(H) + module Channel = Channel.Make(H) + module Embed = Embed.Make(H) + module Emoji = Emoji.Make(H) + module Guild = Guild.Make(H) + module Member = Member.Make(H) + module Message = Message.Make(H) + module Presence = Presence.Make(H) + module Reaction = Reaction.Make(H) + module Role = Role.Make(H) + module Snowflake = Snowflake.Make(H) + module User = User.Make(H) +end
\ No newline at end of file diff --git a/lib/models/activity.ml b/lib/models/activity.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/activity.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/attachment.ml b/lib/models/attachment.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/attachment.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/ban.ml b/lib/models/ban.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/ban.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/channel.ml b/lib/models/channel.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/channel.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/embed.ml b/lib/models/embed.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/embed.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/emoji.ml b/lib/models/emoji.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/emoji.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/activity.atd b/lib/models/gen/activity.atd index 8e02191..8e02191 100644 --- a/lib/models/activity.atd +++ b/lib/models/gen/activity.atd diff --git a/lib/models/activity_j.ml b/lib/models/gen/activity_j.ml index eb1a62e..eb1a62e 100644 --- a/lib/models/activity_j.ml +++ b/lib/models/gen/activity_j.ml diff --git a/lib/models/activity_j.mli b/lib/models/gen/activity_j.mli index c179efb..c179efb 100644 --- a/lib/models/activity_j.mli +++ b/lib/models/gen/activity_j.mli diff --git a/lib/models/activity_t.ml b/lib/models/gen/activity_t.ml index 6bb2049..6bb2049 100644 --- a/lib/models/activity_t.ml +++ b/lib/models/gen/activity_t.ml diff --git a/lib/models/activity_t.mli b/lib/models/gen/activity_t.mli index 6bb2049..6bb2049 100644 --- a/lib/models/activity_t.mli +++ b/lib/models/gen/activity_t.mli diff --git a/lib/models/attachment.atd b/lib/models/gen/attachment.atd index 9757b49..9757b49 100644 --- a/lib/models/attachment.atd +++ b/lib/models/gen/attachment.atd diff --git a/lib/models/attachment_j.ml b/lib/models/gen/attachment_j.ml index 28f909d..28f909d 100644 --- a/lib/models/attachment_j.ml +++ b/lib/models/gen/attachment_j.ml diff --git a/lib/models/attachment_j.mli b/lib/models/gen/attachment_j.mli index 6b11b08..6b11b08 100644 --- a/lib/models/attachment_j.mli +++ b/lib/models/gen/attachment_j.mli diff --git a/lib/models/attachment_t.ml b/lib/models/gen/attachment_t.ml index 0485dcc..0485dcc 100644 --- a/lib/models/attachment_t.ml +++ b/lib/models/gen/attachment_t.ml diff --git a/lib/models/attachment_t.mli b/lib/models/gen/attachment_t.mli index 0485dcc..0485dcc 100644 --- a/lib/models/attachment_t.mli +++ b/lib/models/gen/attachment_t.mli diff --git a/lib/models/ban.atd b/lib/models/gen/ban.atd index 0a87338..0a87338 100644 --- a/lib/models/ban.atd +++ b/lib/models/gen/ban.atd diff --git a/lib/models/ban_j.ml b/lib/models/gen/ban_j.ml index e608f67..e608f67 100644 --- a/lib/models/ban_j.ml +++ b/lib/models/gen/ban_j.ml diff --git a/lib/models/ban_j.mli b/lib/models/gen/ban_j.mli index 9449b5c..9449b5c 100644 --- a/lib/models/ban_j.mli +++ b/lib/models/gen/ban_j.mli diff --git a/lib/models/ban_t.ml b/lib/models/gen/ban_t.ml index 7d9c5a0..7d9c5a0 100644 --- a/lib/models/ban_t.ml +++ b/lib/models/gen/ban_t.ml diff --git a/lib/models/ban_t.mli b/lib/models/gen/ban_t.mli index 7d9c5a0..7d9c5a0 100644 --- a/lib/models/ban_t.mli +++ b/lib/models/gen/ban_t.mli diff --git a/lib/models/channel.atd b/lib/models/gen/channel.atd index 6ab58cf..6ab58cf 100644 --- a/lib/models/channel.atd +++ b/lib/models/gen/channel.atd diff --git a/lib/models/channel_j.ml b/lib/models/gen/channel_j.ml index 7369230..7369230 100644 --- a/lib/models/channel_j.ml +++ b/lib/models/gen/channel_j.ml diff --git a/lib/models/channel_j.mli b/lib/models/gen/channel_j.mli index ec4048c..ec4048c 100644 --- a/lib/models/channel_j.mli +++ b/lib/models/gen/channel_j.mli diff --git a/lib/models/channel_t.ml b/lib/models/gen/channel_t.ml index a5c9ce4..a5c9ce4 100644 --- a/lib/models/channel_t.ml +++ b/lib/models/gen/channel_t.ml diff --git a/lib/models/channel_t.mli b/lib/models/gen/channel_t.mli index a5c9ce4..a5c9ce4 100644 --- a/lib/models/channel_t.mli +++ b/lib/models/gen/channel_t.mli diff --git a/lib/models/embed.atd b/lib/models/gen/embed.atd index 0d3aed4..0d3aed4 100644 --- a/lib/models/embed.atd +++ b/lib/models/gen/embed.atd diff --git a/lib/models/embed_j.ml b/lib/models/gen/embed_j.ml index 560c517..560c517 100644 --- a/lib/models/embed_j.ml +++ b/lib/models/gen/embed_j.ml diff --git a/lib/models/embed_j.mli b/lib/models/gen/embed_j.mli index 8872d89..8872d89 100644 --- a/lib/models/embed_j.mli +++ b/lib/models/gen/embed_j.mli diff --git a/lib/models/embed_t.ml b/lib/models/gen/embed_t.ml index 9eb5059..9eb5059 100644 --- a/lib/models/embed_t.ml +++ b/lib/models/gen/embed_t.ml diff --git a/lib/models/embed_t.mli b/lib/models/gen/embed_t.mli index 9eb5059..9eb5059 100644 --- a/lib/models/embed_t.mli +++ b/lib/models/gen/embed_t.mli diff --git a/lib/models/emoji.atd b/lib/models/gen/emoji.atd index 877323b..877323b 100644 --- a/lib/models/emoji.atd +++ b/lib/models/gen/emoji.atd diff --git a/lib/models/emoji_j.ml b/lib/models/gen/emoji_j.ml index d621de2..d621de2 100644 --- a/lib/models/emoji_j.ml +++ b/lib/models/gen/emoji_j.ml diff --git a/lib/models/emoji_j.mli b/lib/models/gen/emoji_j.mli index 596deeb..596deeb 100644 --- a/lib/models/emoji_j.mli +++ b/lib/models/gen/emoji_j.mli diff --git a/lib/models/emoji_t.ml b/lib/models/gen/emoji_t.ml index 333939d..333939d 100644 --- a/lib/models/emoji_t.ml +++ b/lib/models/gen/emoji_t.ml diff --git a/lib/models/emoji_t.mli b/lib/models/gen/emoji_t.mli index 333939d..333939d 100644 --- a/lib/models/emoji_t.mli +++ b/lib/models/gen/emoji_t.mli diff --git a/lib/models/guild.atd b/lib/models/gen/guild.atd index c622eea..c622eea 100644 --- a/lib/models/guild.atd +++ b/lib/models/gen/guild.atd diff --git a/lib/models/guild_j.ml b/lib/models/gen/guild_j.ml index 9f7b069..9f7b069 100644 --- a/lib/models/guild_j.ml +++ b/lib/models/gen/guild_j.ml diff --git a/lib/models/guild_j.mli b/lib/models/gen/guild_j.mli index d430b2a..d430b2a 100644 --- a/lib/models/guild_j.mli +++ b/lib/models/gen/guild_j.mli diff --git a/lib/models/guild_t.ml b/lib/models/gen/guild_t.ml index 9ffe83f..9ffe83f 100644 --- a/lib/models/guild_t.ml +++ b/lib/models/gen/guild_t.ml diff --git a/lib/models/guild_t.mli b/lib/models/gen/guild_t.mli index 9ffe83f..9ffe83f 100644 --- a/lib/models/guild_t.mli +++ b/lib/models/gen/guild_t.mli diff --git a/lib/models/member.atd b/lib/models/gen/member.atd index 11d8b62..11d8b62 100644 --- a/lib/models/member.atd +++ b/lib/models/gen/member.atd diff --git a/lib/models/member_j.ml b/lib/models/gen/member_j.ml index 7fd4aec..7fd4aec 100644 --- a/lib/models/member_j.ml +++ b/lib/models/gen/member_j.ml diff --git a/lib/models/member_j.mli b/lib/models/gen/member_j.mli index f160b6d..f160b6d 100644 --- a/lib/models/member_j.mli +++ b/lib/models/gen/member_j.mli diff --git a/lib/models/member_t.ml b/lib/models/gen/member_t.ml index 6262e1b..6262e1b 100644 --- a/lib/models/member_t.ml +++ b/lib/models/gen/member_t.ml diff --git a/lib/models/member_t.mli b/lib/models/gen/member_t.mli index 6262e1b..6262e1b 100644 --- a/lib/models/member_t.mli +++ b/lib/models/gen/member_t.mli diff --git a/lib/models/message.atd b/lib/models/gen/message.atd index 1c90be9..8611f6a 100644 --- a/lib/models/message.atd +++ b/lib/models/gen/message.atd @@ -2,7 +2,6 @@ type snowflake <ocaml from="Snowflake" t="t"> = abstract type user <ocaml from="User" t="t"> = abstract type member <ocaml from="Member" t="t"> = abstract type partial_member <ocaml from="Member" t="partial_member"> = abstract -type role <ocaml from="Role" t="t"> = abstract type attachment <ocaml from="Attachment" t="t"> = abstract type embed <ocaml from="Embed" t="t"> = abstract type reaction <ocaml from="Reaction" t="t"> = abstract @@ -18,13 +17,13 @@ type t = { ?edited_timestamp: string option; tts: bool; mention_everyone: bool; - mentions: user list; - role_mentions: role list; + mentions: snowflake list; + ?role_mentions: snowflake list option; attachments: attachment list; embeds: embed list; - reactions: reaction list; + ?reactions: snowflake list option; ?nonce: snowflake option; pinned: bool; - webhook_id: snowflake; + ?webhook_id: snowflake option; kind <json name="type">: int; }
\ No newline at end of file diff --git a/lib/models/message_j.ml b/lib/models/gen/message_j.ml index 206d69c..faea836 100644 --- a/lib/models/message_j.ml +++ b/lib/models/gen/message_j.ml @@ -5,10 +5,6 @@ type user = User_t.t type snowflake = Snowflake_t.t -type role = Role_t.t - -type reaction = Reaction_t.t - type partial_member = Member_t.partial_member type embed = Embed_t.t @@ -26,17 +22,19 @@ type t = Message_t.t = { edited_timestamp: string option; tts: bool; mention_everyone: bool; - mentions: user list; - role_mentions: role list; + mentions: snowflake list; + role_mentions: snowflake list option; attachments: attachment list; embeds: embed list; - reactions: reaction list; + reactions: snowflake list option; nonce: snowflake option; pinned: bool; - webhook_id: snowflake; + webhook_id: snowflake option; kind: int } +type reaction = Reaction_t.t + type member = Member_t.t let write_user = ( @@ -63,30 +61,6 @@ let read_snowflake = ( ) let snowflake_of_string s = read_snowflake (Yojson.Safe.init_lexer ()) (Lexing.from_string s) -let write_role = ( - Role_j.write_t -) -let string_of_role ?(len = 1024) x = - let ob = Bi_outbuf.create len in - write_role ob x; - Bi_outbuf.contents ob -let read_role = ( - Role_j.read_t -) -let role_of_string s = - read_role (Yojson.Safe.init_lexer ()) (Lexing.from_string s) -let write_reaction = ( - Reaction_j.write_t -) -let string_of_reaction ?(len = 1024) x = - let ob = Bi_outbuf.create len in - write_reaction ob x; - Bi_outbuf.contents ob -let read_reaction = ( - Reaction_j.read_t -) -let reaction_of_string s = - read_reaction (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write_partial_member = ( Member_j.write_partial_member ) @@ -123,22 +97,6 @@ let read_attachment = ( ) let attachment_of_string s = read_attachment (Yojson.Safe.init_lexer ()) (Lexing.from_string s) -let write__8 = ( - Atdgen_runtime.Oj_run.write_list ( - write_reaction - ) -) -let string_of__8 ?(len = 1024) x = - let ob = Bi_outbuf.create len in - write__8 ob x; - Bi_outbuf.contents ob -let read__8 = ( - Atdgen_runtime.Oj_run.read_list ( - read_reaction - ) -) -let _8_of_string s = - read__8 (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write__7 = ( Atdgen_runtime.Oj_run.write_list ( write_embed @@ -171,25 +129,9 @@ let read__6 = ( ) let _6_of_string s = read__6 (Yojson.Safe.init_lexer ()) (Lexing.from_string s) -let write__5 = ( - Atdgen_runtime.Oj_run.write_list ( - write_role - ) -) -let string_of__5 ?(len = 1024) x = - let ob = Bi_outbuf.create len in - write__5 ob x; - Bi_outbuf.contents ob -let read__5 = ( - Atdgen_runtime.Oj_run.read_list ( - read_role - ) -) -let _5_of_string s = - read__5 (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write__4 = ( Atdgen_runtime.Oj_run.write_list ( - write_user + write_snowflake ) ) let string_of__4 ?(len = 1024) x = @@ -198,11 +140,68 @@ let string_of__4 ?(len = 1024) x = Bi_outbuf.contents ob let read__4 = ( Atdgen_runtime.Oj_run.read_list ( - read_user + read_snowflake ) ) let _4_of_string s = read__4 (Yojson.Safe.init_lexer ()) (Lexing.from_string s) +let write__5 = ( + Atdgen_runtime.Oj_run.write_option ( + write__4 + ) +) +let string_of__5 ?(len = 1024) x = + let ob = Bi_outbuf.create len in + write__5 ob x; + Bi_outbuf.contents ob +let read__5 = ( + fun p lb -> + Yojson.Safe.read_space p lb; + match Yojson.Safe.start_any_variant p lb with + | `Edgy_bracket -> ( + match Yojson.Safe.read_ident p lb with + | "None" -> + Yojson.Safe.read_space p lb; + Yojson.Safe.read_gt p lb; + (None : _ option) + | "Some" -> + Atdgen_runtime.Oj_run.read_until_field_value p lb; + let x = ( + read__4 + ) p lb + in + Yojson.Safe.read_space p lb; + Yojson.Safe.read_gt p lb; + (Some x : _ option) + | x -> + Atdgen_runtime.Oj_run.invalid_variant_tag p x + ) + | `Double_quote -> ( + match Yojson.Safe.finish_string p lb with + | "None" -> + (None : _ option) + | x -> + Atdgen_runtime.Oj_run.invalid_variant_tag p x + ) + | `Square_bracket -> ( + match Atdgen_runtime.Oj_run.read_string p lb with + | "Some" -> + Yojson.Safe.read_space p lb; + Yojson.Safe.read_comma p lb; + Yojson.Safe.read_space p lb; + let x = ( + read__4 + ) p lb + in + Yojson.Safe.read_space p lb; + Yojson.Safe.read_rbr p lb; + (Some x : _ option) + | x -> + Atdgen_runtime.Oj_run.invalid_variant_tag p x + ) +) +let _5_of_string s = + read__5 (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write__3 = ( Atdgen_runtime.Oj_run.write_option ( Yojson.Safe.write_string @@ -483,15 +482,17 @@ let write_t : _ -> t -> _ = ( write__4 ) ob x.mentions; - if !is_first then - is_first := false - else - Bi_outbuf.add_char ob ','; - Bi_outbuf.add_string ob "\"role_mentions\":"; - ( - write__5 - ) - ob x.role_mentions; + (match x.role_mentions with None -> () | Some x -> + if !is_first then + is_first := false + else + Bi_outbuf.add_char ob ','; + Bi_outbuf.add_string ob "\"role_mentions\":"; + ( + write__4 + ) + ob x; + ); if !is_first then is_first := false else @@ -510,15 +511,17 @@ let write_t : _ -> t -> _ = ( write__7 ) ob x.embeds; - if !is_first then - is_first := false - else - Bi_outbuf.add_char ob ','; - Bi_outbuf.add_string ob "\"reactions\":"; - ( - write__8 - ) - ob x.reactions; + (match x.reactions with None -> () | Some x -> + if !is_first then + is_first := false + else + Bi_outbuf.add_char ob ','; + Bi_outbuf.add_string ob "\"reactions\":"; + ( + write__4 + ) + ob x; + ); (match x.nonce with None -> () | Some x -> if !is_first then is_first := false @@ -539,15 +542,17 @@ let write_t : _ -> t -> _ = ( Yojson.Safe.write_bool ) ob x.pinned; - if !is_first then - is_first := false - else - Bi_outbuf.add_char ob ','; - Bi_outbuf.add_string ob "\"webhook_id\":"; - ( - write_snowflake - ) - ob x.webhook_id; + (match x.webhook_id with None -> () | Some x -> + if !is_first then + is_first := false + else + Bi_outbuf.add_char ob ','; + Bi_outbuf.add_string ob "\"webhook_id\":"; + ( + write_snowflake + ) + ob x; + ); if !is_first then is_first := false else @@ -578,13 +583,13 @@ let read_t = ( let field_tts = ref (Obj.magic (Sys.opaque_identity 0.0)) in let field_mention_everyone = ref (Obj.magic (Sys.opaque_identity 0.0)) in let field_mentions = ref (Obj.magic (Sys.opaque_identity 0.0)) in - let field_role_mentions = ref (Obj.magic (Sys.opaque_identity 0.0)) in + let field_role_mentions = ref (None) in let field_attachments = ref (Obj.magic (Sys.opaque_identity 0.0)) in let field_embeds = ref (Obj.magic (Sys.opaque_identity 0.0)) in - let field_reactions = ref (Obj.magic (Sys.opaque_identity 0.0)) in + let field_reactions = ref (None) in let field_nonce = ref (None) in let field_pinned = ref (Obj.magic (Sys.opaque_identity 0.0)) in - let field_webhook_id = ref (Obj.magic (Sys.opaque_identity 0.0)) in + let field_webhook_id = ref (None) in let field_kind = ref (Obj.magic (Sys.opaque_identity 0.0)) in let bits0 = ref 0 in try @@ -873,33 +878,39 @@ let read_t = ( ); bits0 := !bits0 lor 0x80; | 11 -> - field_role_mentions := ( - ( - read__5 - ) p lb - ); - bits0 := !bits0 lor 0x100; + if not (Yojson.Safe.read_null_if_possible p lb) then ( + field_role_mentions := ( + Some ( + ( + read__4 + ) p lb + ) + ); + ) | 12 -> field_attachments := ( ( read__6 ) p lb ); - bits0 := !bits0 lor 0x200; + bits0 := !bits0 lor 0x100; | 13 -> field_embeds := ( ( read__7 ) p lb ); - bits0 := !bits0 lor 0x400; + bits0 := !bits0 lor 0x200; | 14 -> - field_reactions := ( - ( - read__8 - ) p lb - ); - bits0 := !bits0 lor 0x800; + if not (Yojson.Safe.read_null_if_possible p lb) then ( + field_reactions := ( + Some ( + ( + read__4 + ) p lb + ) + ); + ) | 15 -> if not (Yojson.Safe.read_null_if_possible p lb) then ( field_nonce := ( @@ -916,21 +927,24 @@ let read_t = ( Atdgen_runtime.Oj_run.read_bool ) p lb ); - bits0 := !bits0 lor 0x1000; + bits0 := !bits0 lor 0x400; | 17 -> - field_webhook_id := ( - ( - read_snowflake - ) p lb - ); - bits0 := !bits0 lor 0x2000; + if not (Yojson.Safe.read_null_if_possible p lb) then ( + field_webhook_id := ( + Some ( + ( + read_snowflake + ) p lb + ) + ); + ) | 18 -> field_kind := ( ( Atdgen_runtime.Oj_run.read_int ) p lb ); - bits0 := !bits0 lor 0x4000; + bits0 := !bits0 lor 0x800; | _ -> ( Yojson.Safe.skip_json p lb ) @@ -1221,33 +1235,39 @@ let read_t = ( ); bits0 := !bits0 lor 0x80; | 11 -> - field_role_mentions := ( - ( - read__5 - ) p lb - ); - bits0 := !bits0 lor 0x100; + if not (Yojson.Safe.read_null_if_possible p lb) then ( + field_role_mentions := ( + Some ( + ( + read__4 + ) p lb + ) + ); + ) | 12 -> field_attachments := ( ( read__6 ) p lb ); - bits0 := !bits0 lor 0x200; + bits0 := !bits0 lor 0x100; | 13 -> field_embeds := ( ( read__7 ) p lb ); - bits0 := !bits0 lor 0x400; + bits0 := !bits0 lor 0x200; | 14 -> - field_reactions := ( - ( - read__8 - ) p lb - ); - bits0 := !bits0 lor 0x800; + if not (Yojson.Safe.read_null_if_possible p lb) then ( + field_reactions := ( + Some ( + ( + read__4 + ) p lb + ) + ); + ) | 15 -> if not (Yojson.Safe.read_null_if_possible p lb) then ( field_nonce := ( @@ -1264,21 +1284,24 @@ let read_t = ( Atdgen_runtime.Oj_run.read_bool ) p lb ); - bits0 := !bits0 lor 0x1000; + bits0 := !bits0 lor 0x400; | 17 -> - field_webhook_id := ( - ( - read_snowflake - ) p lb - ); - bits0 := !bits0 lor 0x2000; + if not (Yojson.Safe.read_null_if_possible p lb) then ( + field_webhook_id := ( + Some ( + ( + read_snowflake + ) p lb + ) + ); + ) | 18 -> field_kind := ( ( Atdgen_runtime.Oj_run.read_int ) p lb ); - bits0 := !bits0 lor 0x4000; + bits0 := !bits0 lor 0x800; | _ -> ( Yojson.Safe.skip_json p lb ) @@ -1286,7 +1309,7 @@ let read_t = ( done; assert false; with Yojson.End_of_object -> ( - if !bits0 <> 0x7fff then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "id"; "author"; "channel_id"; "content"; "timestamp"; "tts"; "mention_everyone"; "mentions"; "role_mentions"; "attachments"; "embeds"; "reactions"; "pinned"; "webhook_id"; "kind" |]; + if !bits0 <> 0xfff then Atdgen_runtime.Oj_run.missing_fields p [| !bits0 |] [| "id"; "author"; "channel_id"; "content"; "timestamp"; "tts"; "mention_everyone"; "mentions"; "attachments"; "embeds"; "pinned"; "kind" |]; ( { id = !field_id; @@ -1314,6 +1337,18 @@ let read_t = ( ) let t_of_string s = read_t (Yojson.Safe.init_lexer ()) (Lexing.from_string s) +let write_reaction = ( + Reaction_j.write_t +) +let string_of_reaction ?(len = 1024) x = + let ob = Bi_outbuf.create len in + write_reaction ob x; + Bi_outbuf.contents ob +let read_reaction = ( + Reaction_j.read_t +) +let reaction_of_string s = + read_reaction (Yojson.Safe.init_lexer ()) (Lexing.from_string s) let write_member = ( Member_j.write_t ) diff --git a/lib/models/message_j.mli b/lib/models/gen/message_j.mli index e3a3e5b..04aa440 100644 --- a/lib/models/message_j.mli +++ b/lib/models/gen/message_j.mli @@ -5,10 +5,6 @@ type user = User_t.t type snowflake = Snowflake_t.t -type role = Role_t.t - -type reaction = Reaction_t.t - type partial_member = Member_t.partial_member type embed = Embed_t.t @@ -26,17 +22,19 @@ type t = Message_t.t = { edited_timestamp: string option; tts: bool; mention_everyone: bool; - mentions: user list; - role_mentions: role list; + mentions: snowflake list; + role_mentions: snowflake list option; attachments: attachment list; embeds: embed list; - reactions: reaction list; + reactions: snowflake list option; nonce: snowflake option; pinned: bool; - webhook_id: snowflake; + webhook_id: snowflake option; kind: int } +type reaction = Reaction_t.t + type member = Member_t.t val write_user : @@ -79,46 +77,6 @@ val snowflake_of_string : string -> snowflake (** Deserialize JSON data of type {!snowflake}. *) -val write_role : - Bi_outbuf.t -> role -> unit - (** Output a JSON value of type {!role}. *) - -val string_of_role : - ?len:int -> role -> string - (** Serialize a value of type {!role} - into a JSON string. - @param len specifies the initial length - of the buffer used internally. - Default: 1024. *) - -val read_role : - Yojson.Safe.lexer_state -> Lexing.lexbuf -> role - (** Input JSON data of type {!role}. *) - -val role_of_string : - string -> role - (** Deserialize JSON data of type {!role}. *) - -val write_reaction : - Bi_outbuf.t -> reaction -> unit - (** Output a JSON value of type {!reaction}. *) - -val string_of_reaction : - ?len:int -> reaction -> string - (** Serialize a value of type {!reaction} - into a JSON string. - @param len specifies the initial length - of the buffer used internally. - Default: 1024. *) - -val read_reaction : - Yojson.Safe.lexer_state -> Lexing.lexbuf -> reaction - (** Input JSON data of type {!reaction}. *) - -val reaction_of_string : - string -> reaction - (** Deserialize JSON data of type {!reaction}. *) - val write_partial_member : Bi_outbuf.t -> partial_member -> unit (** Output a JSON value of type {!partial_member}. *) @@ -199,6 +157,26 @@ val t_of_string : string -> t (** Deserialize JSON data of type {!t}. *) +val write_reaction : + Bi_outbuf.t -> reaction -> unit + (** Output a JSON value of type {!reaction}. *) + +val string_of_reaction : + ?len:int -> reaction -> string + (** Serialize a value of type {!reaction} + into a JSON string. + @param len specifies the initial length + of the buffer used internally. + Default: 1024. *) + +val read_reaction : + Yojson.Safe.lexer_state -> Lexing.lexbuf -> reaction + (** Input JSON data of type {!reaction}. *) + +val reaction_of_string : + string -> reaction + (** Deserialize JSON data of type {!reaction}. *) + val write_member : Bi_outbuf.t -> member -> unit (** Output a JSON value of type {!member}. *) diff --git a/lib/models/message_t.ml b/lib/models/gen/message_t.ml index 2442d76..ce2d5a4 100644 --- a/lib/models/message_t.ml +++ b/lib/models/gen/message_t.ml @@ -5,10 +5,6 @@ type user = User_t.t type snowflake = Snowflake_t.t -type role = Role_t.t - -type reaction = Reaction_t.t - type partial_member = Member_t.partial_member type embed = Embed_t.t @@ -26,15 +22,17 @@ type t = { edited_timestamp: string option; tts: bool; mention_everyone: bool; - mentions: user list; - role_mentions: role list; + mentions: snowflake list; + role_mentions: snowflake list option; attachments: attachment list; embeds: embed list; - reactions: reaction list; + reactions: snowflake list option; nonce: snowflake option; pinned: bool; - webhook_id: snowflake; + webhook_id: snowflake option; kind: int } +type reaction = Reaction_t.t + type member = Member_t.t diff --git a/lib/models/message_t.mli b/lib/models/gen/message_t.mli index 2442d76..ce2d5a4 100644 --- a/lib/models/message_t.mli +++ b/lib/models/gen/message_t.mli @@ -5,10 +5,6 @@ type user = User_t.t type snowflake = Snowflake_t.t -type role = Role_t.t - -type reaction = Reaction_t.t - type partial_member = Member_t.partial_member type embed = Embed_t.t @@ -26,15 +22,17 @@ type t = { edited_timestamp: string option; tts: bool; mention_everyone: bool; - mentions: user list; - role_mentions: role list; + mentions: snowflake list; + role_mentions: snowflake list option; attachments: attachment list; embeds: embed list; - reactions: reaction list; + reactions: snowflake list option; nonce: snowflake option; pinned: bool; - webhook_id: snowflake; + webhook_id: snowflake option; kind: int } +type reaction = Reaction_t.t + type member = Member_t.t diff --git a/lib/models/presence.atd b/lib/models/gen/presence.atd index da9b3fd..da9b3fd 100644 --- a/lib/models/presence.atd +++ b/lib/models/gen/presence.atd diff --git a/lib/models/presence_j.ml b/lib/models/gen/presence_j.ml index b4ea497..b4ea497 100644 --- a/lib/models/presence_j.ml +++ b/lib/models/gen/presence_j.ml diff --git a/lib/models/presence_j.mli b/lib/models/gen/presence_j.mli index be68b3f..be68b3f 100644 --- a/lib/models/presence_j.mli +++ b/lib/models/gen/presence_j.mli diff --git a/lib/models/presence_t.ml b/lib/models/gen/presence_t.ml index 940d986..940d986 100644 --- a/lib/models/presence_t.ml +++ b/lib/models/gen/presence_t.ml diff --git a/lib/models/presence_t.mli b/lib/models/gen/presence_t.mli index 940d986..940d986 100644 --- a/lib/models/presence_t.mli +++ b/lib/models/gen/presence_t.mli diff --git a/lib/models/reaction.atd b/lib/models/gen/reaction.atd index aa41483..aa41483 100644 --- a/lib/models/reaction.atd +++ b/lib/models/gen/reaction.atd diff --git a/lib/models/reaction_j.ml b/lib/models/gen/reaction_j.ml index fe91833..fe91833 100644 --- a/lib/models/reaction_j.ml +++ b/lib/models/gen/reaction_j.ml diff --git a/lib/models/reaction_j.mli b/lib/models/gen/reaction_j.mli index 0d6a598..0d6a598 100644 --- a/lib/models/reaction_j.mli +++ b/lib/models/gen/reaction_j.mli diff --git a/lib/models/reaction_t.ml b/lib/models/gen/reaction_t.ml index 666030b..666030b 100644 --- a/lib/models/reaction_t.ml +++ b/lib/models/gen/reaction_t.ml diff --git a/lib/models/reaction_t.mli b/lib/models/gen/reaction_t.mli index 666030b..666030b 100644 --- a/lib/models/reaction_t.mli +++ b/lib/models/gen/reaction_t.mli diff --git a/lib/models/role.atd b/lib/models/gen/role.atd index a6bdcba..a6bdcba 100644 --- a/lib/models/role.atd +++ b/lib/models/gen/role.atd diff --git a/lib/models/role_j.ml b/lib/models/gen/role_j.ml index a15b6cf..a15b6cf 100644 --- a/lib/models/role_j.ml +++ b/lib/models/gen/role_j.ml diff --git a/lib/models/role_j.mli b/lib/models/gen/role_j.mli index b4ea78c..b4ea78c 100644 --- a/lib/models/role_j.mli +++ b/lib/models/gen/role_j.mli diff --git a/lib/models/role_t.ml b/lib/models/gen/role_t.ml index a4e83c5..a4e83c5 100644 --- a/lib/models/role_t.ml +++ b/lib/models/gen/role_t.ml diff --git a/lib/models/role_t.mli b/lib/models/gen/role_t.mli index a4e83c5..a4e83c5 100644 --- a/lib/models/role_t.mli +++ b/lib/models/gen/role_t.mli diff --git a/lib/models/snowflake.atd b/lib/models/gen/snowflake.atd index 98dc032..98dc032 100644 --- a/lib/models/snowflake.atd +++ b/lib/models/gen/snowflake.atd diff --git a/lib/models/snowflake_j.ml b/lib/models/gen/snowflake_j.ml index 80f6f63..80f6f63 100644 --- a/lib/models/snowflake_j.ml +++ b/lib/models/gen/snowflake_j.ml diff --git a/lib/models/snowflake_j.mli b/lib/models/gen/snowflake_j.mli index fed97a4..fed97a4 100644 --- a/lib/models/snowflake_j.mli +++ b/lib/models/gen/snowflake_j.mli diff --git a/lib/models/snowflake_t.ml b/lib/models/gen/snowflake_t.ml index a7bdb08..a7bdb08 100644 --- a/lib/models/snowflake_t.ml +++ b/lib/models/gen/snowflake_t.ml diff --git a/lib/models/snowflake_t.mli b/lib/models/gen/snowflake_t.mli index a7bdb08..a7bdb08 100644 --- a/lib/models/snowflake_t.mli +++ b/lib/models/gen/snowflake_t.mli diff --git a/lib/models/user.atd b/lib/models/gen/user.atd index 106b3b0..106b3b0 100644 --- a/lib/models/user.atd +++ b/lib/models/gen/user.atd diff --git a/lib/models/user_j.ml b/lib/models/gen/user_j.ml index 552a20d..552a20d 100644 --- a/lib/models/user_j.ml +++ b/lib/models/gen/user_j.ml diff --git a/lib/models/user_j.mli b/lib/models/gen/user_j.mli index 576768e..576768e 100644 --- a/lib/models/user_j.mli +++ b/lib/models/gen/user_j.mli diff --git a/lib/models/user_t.ml b/lib/models/gen/user_t.ml index 294cf0a..294cf0a 100644 --- a/lib/models/user_t.ml +++ b/lib/models/gen/user_t.ml diff --git a/lib/models/user_t.mli b/lib/models/gen/user_t.mli index 294cf0a..294cf0a 100644 --- a/lib/models/user_t.mli +++ b/lib/models/gen/user_t.mli diff --git a/lib/models/guild.ml b/lib/models/guild.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/guild.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/member.ml b/lib/models/member.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/member.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/message.ml b/lib/models/message.ml new file mode 100644 index 0000000..29148ee --- /dev/null +++ b/lib/models/message.ml @@ -0,0 +1,43 @@ +module Make(Http : S.Http) = struct + open Message_t + + let add_reaction msg (emoji:Emoji_t.t) = + let e = match emoji.id with + | Some i -> Printf.sprintf "%s:%d" emoji.name i + | None -> emoji.name + in + Http.create_reaction msg.channel_id msg.id e + + let remove_reaction msg (emoji:Emoji_t.t) (user:User_t.t) = + let e = match emoji.id with + | Some i -> Printf.sprintf "%s:%d" emoji.name i + | None -> emoji.name + in + Http.delete_reaction msg.channel_id msg.id e user.id + + let clear_reactions msg = + Http.delete_reactions msg.channel_id msg.id + + let delete msg = + Http.delete_message msg.channel_id msg.id + + let pin msg = + Http.pin_message msg.channel_id msg.id + + let unpin msg = + Http.unpin_message msg.channel_id msg.id + + let reply msg cont = + let rep = `Assoc [("content", `String cont)] in + Http.create_message msg.channel_id rep + + let set_content msg cont = + Message_j.string_of_t { msg with content = cont; } + |> Yojson.Safe.from_string + |> Http.edit_message msg.channel_id msg.id + + let set_embed msg embed = + Message_j.string_of_t { msg with embeds = [embed]; } + |> Yojson.Safe.from_string + |> Http.edit_message msg.channel_id msg.id +end
\ No newline at end of file diff --git a/lib/models/message.mli b/lib/models/message.mli new file mode 100644 index 0000000..6f6242f --- /dev/null +++ b/lib/models/message.mli @@ -0,0 +1 @@ +module Make(Http : S.Http) : S.Message
\ No newline at end of file diff --git a/lib/models/presence.ml b/lib/models/presence.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/presence.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/reaction.ml b/lib/models/reaction.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/reaction.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/role.ml b/lib/models/role.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/role.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/snowflake.ml b/lib/models/snowflake.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/snowflake.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file diff --git a/lib/models/user.ml b/lib/models/user.ml new file mode 100644 index 0000000..36b7d4b --- /dev/null +++ b/lib/models/user.ml @@ -0,0 +1,2 @@ +module Make(Http : S.Http) = struct +end
\ No newline at end of file @@ -4,57 +4,54 @@ module type Token = sig val token : string end -module type Handler = sig - val handle_event : - 'a -> - 'b -> - unit +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 + (* 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 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 - - val event_of_string : contents:string -> string -> dispatch_event - val dispatch : ev: -> string -> unit +module type Message = sig + 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 + +module type Reaction = sig end + +module type Role = sig end + +module type Snowflake = sig end + +module type User = sig end + module type Http = sig val token : string @@ -80,163 +77,171 @@ 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 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 diff --git a/lib/sharder.ml b/lib/sharder.ml index 7366fd9..98df132 100644 --- a/lib/sharder.ml +++ b/lib/sharder.ml @@ -70,7 +70,6 @@ module Make(H : S.Http)(D : S.Dispatch) : S.Sharder = struct if t = "READY" then begin Ivar.fill_if_empty shard.ready () end; - print_endline @@ Yojson.Safe.pretty_to_string data; D.dispatch ~ev:t (Yojson.Safe.to_string data); return { shard with seq = seq; |