slack_resources 0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.circleci/config.yml +87 -0
- data/.circleci/gem_deployment.rb +53 -0
- data/.gitignore +13 -0
- data/.rubocop.yml +104 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +93 -0
- data/README.md +29 -0
- data/Rakefile +6 -0
- data/lib/generate_event_api_resources.rb +8 -0
- data/lib/slack_resources.rb +11 -0
- data/lib/slack_resources/generator/event_api/examples_preparation.rb +71 -0
- data/lib/slack_resources/generator/event_api/fetch.rb +111 -0
- data/lib/slack_resources/generator/event_api/strong_hash.rb +25 -0
- data/lib/slack_resources/generator/event_api/to_schema.rb +200 -0
- data/lib/slack_resources/generator/event_api/type_detection.rb +272 -0
- data/lib/slack_resources/generator/event_api/write.rb +123 -0
- data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.add.json +7 -0
- data/lib/slack_resources/raw_data/event_api/_added_examples/emoji_changed.remove.json +6 -0
- data/lib/slack_resources/raw_data/event_api/_added_examples/event_callback.json +13 -0
- data/lib/slack_resources/raw_data/event_api/examples/app_mention.json +8 -0
- data/lib/slack_resources/raw_data/event_api/examples/app_rate_limited.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/app_uninstalled.json +11 -0
- data/lib/slack_resources/raw_data/event_api/examples/channel_archive.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/channel_created.json +9 -0
- data/lib/slack_resources/raw_data/event_api/examples/channel_deleted.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/channel_history_changed.json +6 -0
- data/lib/slack_resources/raw_data/event_api/examples/channel_left.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/channel_rename.json +8 -0
- data/lib/slack_resources/raw_data/event_api/examples/channel_unarchive.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/dnd_updated.json +11 -0
- data/lib/slack_resources/raw_data/event_api/examples/dnd_updated_user.json +9 -0
- data/lib/slack_resources/raw_data/event_api/examples/email_domain_changed.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/emoji_changed.json +8 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_change.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_comment_added.json +9 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_comment_deleted.json +8 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_comment_edited.json +9 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_created.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_deleted.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_public.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_shared.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/file_unshared.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/grid_migration_finished.json +12 -0
- data/lib/slack_resources/raw_data/event_api/examples/grid_migration_started.json +12 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_archive.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_close.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_deleted.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_history_changed.json +6 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_left.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_open.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_rename.json +8 -0
- data/lib/slack_resources/raw_data/event_api/examples/group_unarchive.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/im_close.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/im_created.json +6 -0
- data/lib/slack_resources/raw_data/event_api/examples/im_history_changed.json +6 -0
- data/lib/slack_resources/raw_data/event_api/examples/im_open.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/link_shared.json +33 -0
- data/lib/slack_resources/raw_data/event_api/examples/member_joined_channel.json +8 -0
- data/lib/slack_resources/raw_data/event_api/examples/member_left_channel.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/message.app_home.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/message.channels.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/message.groups.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/message.im.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/message.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/message.mpim.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/pin_added.json +8 -0
- data/lib/slack_resources/raw_data/event_api/examples/pin_removed.json +9 -0
- data/lib/slack_resources/raw_data/event_api/examples/reaction_added.json +12 -0
- data/lib/slack_resources/raw_data/event_api/examples/reaction_removed.json +12 -0
- data/lib/slack_resources/raw_data/event_api/examples/resources_added.json +31 -0
- data/lib/slack_resources/raw_data/event_api/examples/resources_removed.json +31 -0
- data/lib/slack_resources/raw_data/event_api/examples/scope_denied.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/scope_granted.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/star_added.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/star_removed.json +7 -0
- data/lib/slack_resources/raw_data/event_api/examples/subteam_created.json +28 -0
- data/lib/slack_resources/raw_data/event_api/examples/subteam_members_changed.json +17 -0
- data/lib/slack_resources/raw_data/event_api/examples/subteam_self_added.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/subteam_self_removed.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/subteam_updated.json +34 -0
- data/lib/slack_resources/raw_data/event_api/examples/team_domain_change.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/team_join.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/team_rename.json +4 -0
- data/lib/slack_resources/raw_data/event_api/examples/tokens_revoked.json +19 -0
- data/lib/slack_resources/raw_data/event_api/examples/url_verification.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/user_change.json +5 -0
- data/lib/slack_resources/raw_data/event_api/examples/user_resource_denied.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/user_resource_granted.json +20 -0
- data/lib/slack_resources/raw_data/event_api/examples/user_resource_removed.json +16 -0
- data/lib/slack_resources/raw_data/event_api/meta.json +834 -0
- data/lib/slack_resources/raw_data/event_api/preset_schemas.json +33 -0
- data/lib/slack_resources/resources/event_api.rb +38 -0
- data/lib/slack_resources/resources/event_api/details/app_mention.json +85 -0
- data/lib/slack_resources/resources/event_api/details/app_rate_limited.json +80 -0
- data/lib/slack_resources/resources/event_api/details/app_uninstalled.json +36 -0
- data/lib/slack_resources/resources/event_api/details/channel_archive.json +59 -0
- data/lib/slack_resources/resources/event_api/details/channel_created.json +82 -0
- data/lib/slack_resources/resources/event_api/details/channel_deleted.json +48 -0
- data/lib/slack_resources/resources/event_api/details/channel_history_changed.json +66 -0
- data/lib/slack_resources/resources/event_api/details/channel_left.json +48 -0
- data/lib/slack_resources/resources/event_api/details/channel_rename.json +77 -0
- data/lib/slack_resources/resources/event_api/details/channel_unarchive.json +59 -0
- data/lib/slack_resources/resources/event_api/details/dnd_updated.json +86 -0
- data/lib/slack_resources/resources/event_api/details/dnd_updated_user.json +82 -0
- data/lib/slack_resources/resources/event_api/details/email_domain_changed.json +56 -0
- data/lib/slack_resources/resources/event_api/details/emoji_changed.add.json +78 -0
- data/lib/slack_resources/resources/event_api/details/emoji_changed.json +103 -0
- data/lib/slack_resources/resources/event_api/details/emoji_changed.remove.json +77 -0
- data/lib/slack_resources/resources/event_api/details/event_callback.json +126 -0
- data/lib/slack_resources/resources/event_api/details/file_change.json +69 -0
- data/lib/slack_resources/resources/event_api/details/file_comment_added.json +85 -0
- data/lib/slack_resources/resources/event_api/details/file_comment_deleted.json +80 -0
- data/lib/slack_resources/resources/event_api/details/file_comment_edited.json +85 -0
- data/lib/slack_resources/resources/event_api/details/file_created.json +69 -0
- data/lib/slack_resources/resources/event_api/details/file_deleted.json +59 -0
- data/lib/slack_resources/resources/event_api/details/file_public.json +69 -0
- data/lib/slack_resources/resources/event_api/details/file_shared.json +69 -0
- data/lib/slack_resources/resources/event_api/details/file_unshared.json +69 -0
- data/lib/slack_resources/resources/event_api/details/grid_migration_finished.json +47 -0
- data/lib/slack_resources/resources/event_api/details/grid_migration_started.json +47 -0
- data/lib/slack_resources/resources/event_api/details/group_archive.json +48 -0
- data/lib/slack_resources/resources/event_api/details/group_close.json +59 -0
- data/lib/slack_resources/resources/event_api/details/group_deleted.json +48 -0
- data/lib/slack_resources/resources/event_api/details/group_history_changed.json +64 -0
- data/lib/slack_resources/resources/event_api/details/group_left.json +48 -0
- data/lib/slack_resources/resources/event_api/details/group_open.json +59 -0
- data/lib/slack_resources/resources/event_api/details/group_rename.json +77 -0
- data/lib/slack_resources/resources/event_api/details/group_unarchive.json +48 -0
- data/lib/slack_resources/resources/event_api/details/im_close.json +59 -0
- data/lib/slack_resources/resources/event_api/details/im_created.json +73 -0
- data/lib/slack_resources/resources/event_api/details/im_history_changed.json +64 -0
- data/lib/slack_resources/resources/event_api/details/im_open.json +59 -0
- data/lib/slack_resources/resources/event_api/details/link_shared.json +129 -0
- data/lib/slack_resources/resources/event_api/details/member_joined_channel.json +87 -0
- data/lib/slack_resources/resources/event_api/details/member_left_channel.json +79 -0
- data/lib/slack_resources/resources/event_api/details/message.app_home.json +93 -0
- data/lib/slack_resources/resources/event_api/details/message.channels.json +93 -0
- data/lib/slack_resources/resources/event_api/details/message.groups.json +93 -0
- data/lib/slack_resources/resources/event_api/details/message.im.json +93 -0
- data/lib/slack_resources/resources/event_api/details/message.json +129 -0
- data/lib/slack_resources/resources/event_api/details/message.mpim.json +93 -0
- data/lib/slack_resources/resources/event_api/details/pin_added.json +86 -0
- data/lib/slack_resources/resources/event_api/details/pin_removed.json +94 -0
- data/lib/slack_resources/resources/event_api/details/reaction_added.json +115 -0
- data/lib/slack_resources/resources/event_api/details/reaction_removed.json +115 -0
- data/lib/slack_resources/resources/event_api/details/resources_added.json +152 -0
- data/lib/slack_resources/resources/event_api/details/resources_removed.json +152 -0
- data/lib/slack_resources/resources/event_api/details/scope_denied.json +91 -0
- data/lib/slack_resources/resources/event_api/details/scope_granted.json +91 -0
- data/lib/slack_resources/resources/event_api/details/star_added.json +75 -0
- data/lib/slack_resources/resources/event_api/details/star_removed.json +75 -0
- data/lib/slack_resources/resources/event_api/details/subteam_created.json +198 -0
- data/lib/slack_resources/resources/event_api/details/subteam_members_changed.json +140 -0
- data/lib/slack_resources/resources/event_api/details/subteam_self_added.json +48 -0
- data/lib/slack_resources/resources/event_api/details/subteam_self_removed.json +48 -0
- data/lib/slack_resources/resources/event_api/details/subteam_updated.json +210 -0
- data/lib/slack_resources/resources/event_api/details/team_domain_change.json +53 -0
- data/lib/slack_resources/resources/event_api/details/team_join.json +53 -0
- data/lib/slack_resources/resources/event_api/details/team_rename.json +48 -0
- data/lib/slack_resources/resources/event_api/details/tokens_revoked.json +76 -0
- data/lib/slack_resources/resources/event_api/details/url_verification.json +52 -0
- data/lib/slack_resources/resources/event_api/details/user_change.json +53 -0
- data/lib/slack_resources/resources/event_api/details/user_resource_denied.json +100 -0
- data/lib/slack_resources/resources/event_api/details/user_resource_granted.json +100 -0
- data/lib/slack_resources/resources/event_api/details/user_resource_removed.json +58 -0
- data/lib/slack_resources/resources/event_api/examples/app_mention.json +8 -0
- data/lib/slack_resources/resources/event_api/examples/app_rate_limited.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/app_uninstalled.json +3 -0
- data/lib/slack_resources/resources/event_api/examples/channel_archive.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/channel_created.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/channel_deleted.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/channel_history_changed.json +6 -0
- data/lib/slack_resources/resources/event_api/examples/channel_left.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/channel_rename.json +8 -0
- data/lib/slack_resources/resources/event_api/examples/channel_unarchive.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/dnd_updated.json +11 -0
- data/lib/slack_resources/resources/event_api/examples/dnd_updated_user.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/email_domain_changed.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/emoji_changed.add.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/emoji_changed.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/emoji_changed.remove.json +8 -0
- data/lib/slack_resources/resources/event_api/examples/event_callback.json +14 -0
- data/lib/slack_resources/resources/event_api/examples/file_change.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/file_comment_added.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/file_comment_deleted.json +8 -0
- data/lib/slack_resources/resources/event_api/examples/file_comment_edited.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/file_created.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/file_deleted.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/file_public.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/file_shared.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/file_unshared.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/grid_migration_finished.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/grid_migration_started.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/group_archive.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/group_close.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/group_deleted.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/group_history_changed.json +6 -0
- data/lib/slack_resources/resources/event_api/examples/group_left.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/group_open.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/group_rename.json +8 -0
- data/lib/slack_resources/resources/event_api/examples/group_unarchive.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/im_close.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/im_created.json +6 -0
- data/lib/slack_resources/resources/event_api/examples/im_history_changed.json +6 -0
- data/lib/slack_resources/resources/event_api/examples/im_open.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/link_shared.json +21 -0
- data/lib/slack_resources/resources/event_api/examples/member_joined_channel.json +8 -0
- data/lib/slack_resources/resources/event_api/examples/member_left_channel.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/message.app_home.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/message.channels.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/message.groups.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/message.im.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/message.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/message.mpim.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/pin_added.json +8 -0
- data/lib/slack_resources/resources/event_api/examples/pin_removed.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/reaction_added.json +12 -0
- data/lib/slack_resources/resources/event_api/examples/reaction_removed.json +12 -0
- data/lib/slack_resources/resources/event_api/examples/resources_added.json +20 -0
- data/lib/slack_resources/resources/event_api/examples/resources_removed.json +20 -0
- data/lib/slack_resources/resources/event_api/examples/scope_denied.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/scope_granted.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/star_added.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/star_removed.json +7 -0
- data/lib/slack_resources/resources/event_api/examples/subteam_created.json +28 -0
- data/lib/slack_resources/resources/event_api/examples/subteam_members_changed.json +17 -0
- data/lib/slack_resources/resources/event_api/examples/subteam_self_added.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/subteam_self_removed.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/subteam_updated.json +34 -0
- data/lib/slack_resources/resources/event_api/examples/team_domain_change.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/team_join.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/team_rename.json +4 -0
- data/lib/slack_resources/resources/event_api/examples/tokens_revoked.json +11 -0
- data/lib/slack_resources/resources/event_api/examples/url_verification.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/user_change.json +5 -0
- data/lib/slack_resources/resources/event_api/examples/user_resource_denied.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/user_resource_granted.json +9 -0
- data/lib/slack_resources/resources/event_api/examples/user_resource_removed.json +5 -0
- data/lib/slack_resources/resources/event_api/schema.json +2261 -0
- data/lib/slack_resources/resources/event_api/schemas/app_mention.json +46 -0
- data/lib/slack_resources/resources/event_api/schemas/app_rate_limited.json +45 -0
- data/lib/slack_resources/resources/event_api/schemas/app_uninstalled.json +17 -0
- data/lib/slack_resources/resources/event_api/schemas/channel_archive.json +31 -0
- data/lib/slack_resources/resources/event_api/schemas/channel_created.json +53 -0
- data/lib/slack_resources/resources/event_api/schemas/channel_deleted.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/channel_history_changed.json +32 -0
- data/lib/slack_resources/resources/event_api/schemas/channel_left.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/channel_rename.json +49 -0
- data/lib/slack_resources/resources/event_api/schemas/channel_unarchive.json +31 -0
- data/lib/slack_resources/resources/event_api/schemas/dnd_updated.json +52 -0
- data/lib/slack_resources/resources/event_api/schemas/dnd_updated_user.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/email_domain_changed.json +28 -0
- data/lib/slack_resources/resources/event_api/schemas/emoji_changed.add.json +42 -0
- data/lib/slack_resources/resources/event_api/schemas/emoji_changed.json +61 -0
- data/lib/slack_resources/resources/event_api/schemas/emoji_changed.remove.json +40 -0
- data/lib/slack_resources/resources/event_api/schemas/event_callback.json +76 -0
- data/lib/slack_resources/resources/event_api/schemas/file_change.json +39 -0
- data/lib/slack_resources/resources/event_api/schemas/file_comment_added.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/file_comment_deleted.json +46 -0
- data/lib/slack_resources/resources/event_api/schemas/file_comment_edited.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/file_created.json +39 -0
- data/lib/slack_resources/resources/event_api/schemas/file_deleted.json +31 -0
- data/lib/slack_resources/resources/event_api/schemas/file_public.json +39 -0
- data/lib/slack_resources/resources/event_api/schemas/file_shared.json +39 -0
- data/lib/slack_resources/resources/event_api/schemas/file_unshared.json +39 -0
- data/lib/slack_resources/resources/event_api/schemas/grid_migration_finished.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/grid_migration_started.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/group_archive.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/group_close.json +31 -0
- data/lib/slack_resources/resources/event_api/schemas/group_deleted.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/group_history_changed.json +32 -0
- data/lib/slack_resources/resources/event_api/schemas/group_left.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/group_open.json +31 -0
- data/lib/slack_resources/resources/event_api/schemas/group_rename.json +49 -0
- data/lib/slack_resources/resources/event_api/schemas/group_unarchive.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/im_close.json +31 -0
- data/lib/slack_resources/resources/event_api/schemas/im_created.json +44 -0
- data/lib/slack_resources/resources/event_api/schemas/im_history_changed.json +32 -0
- data/lib/slack_resources/resources/event_api/schemas/im_open.json +31 -0
- data/lib/slack_resources/resources/event_api/schemas/link_shared.json +74 -0
- data/lib/slack_resources/resources/event_api/schemas/member_joined_channel.json +46 -0
- data/lib/slack_resources/resources/event_api/schemas/member_left_channel.json +42 -0
- data/lib/slack_resources/resources/event_api/schemas/message.app_home.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/message.channels.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/message.groups.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/message.im.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/message.json +82 -0
- data/lib/slack_resources/resources/event_api/schemas/message.mpim.json +50 -0
- data/lib/slack_resources/resources/event_api/schemas/pin_added.json +49 -0
- data/lib/slack_resources/resources/event_api/schemas/pin_removed.json +53 -0
- data/lib/slack_resources/resources/event_api/schemas/reaction_added.json +71 -0
- data/lib/slack_resources/resources/event_api/schemas/reaction_removed.json +71 -0
- data/lib/slack_resources/resources/event_api/schemas/resources_added.json +110 -0
- data/lib/slack_resources/resources/event_api/schemas/resources_removed.json +110 -0
- data/lib/slack_resources/resources/event_api/schemas/scope_denied.json +57 -0
- data/lib/slack_resources/resources/event_api/schemas/scope_granted.json +57 -0
- data/lib/slack_resources/resources/event_api/schemas/star_added.json +42 -0
- data/lib/slack_resources/resources/event_api/schemas/star_removed.json +42 -0
- data/lib/slack_resources/resources/event_api/schemas/subteam_created.json +150 -0
- data/lib/slack_resources/resources/event_api/schemas/subteam_members_changed.json +76 -0
- data/lib/slack_resources/resources/event_api/schemas/subteam_self_added.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/subteam_self_removed.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/subteam_updated.json +156 -0
- data/lib/slack_resources/resources/event_api/schemas/team_domain_change.json +25 -0
- data/lib/slack_resources/resources/event_api/schemas/team_join.json +28 -0
- data/lib/slack_resources/resources/event_api/schemas/team_rename.json +24 -0
- data/lib/slack_resources/resources/event_api/schemas/tokens_revoked.json +46 -0
- data/lib/slack_resources/resources/event_api/schemas/url_verification.json +25 -0
- data/lib/slack_resources/resources/event_api/schemas/user_change.json +28 -0
- data/lib/slack_resources/resources/event_api/schemas/user_resource_denied.json +63 -0
- data/lib/slack_resources/resources/event_api/schemas/user_resource_granted.json +63 -0
- data/lib/slack_resources/resources/event_api/schemas/user_resource_removed.json +31 -0
- data/lib/slack_resources/resources/event_api/summary.json +5876 -0
- data/slack_resources.gemspec +33 -0
- metadata +470 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'rest-client'
|
3
|
+
require 'nokogiri'
|
4
|
+
require 'json'
|
5
|
+
require 'active_support/core_ext/object/blank'
|
6
|
+
require 'active_support/core_ext/string/inflections'
|
7
|
+
|
8
|
+
module SlackResources
|
9
|
+
module Generator
|
10
|
+
class Writer
|
11
|
+
using StrongHash
|
12
|
+
|
13
|
+
def initialize(output_dir:, data_dir:)
|
14
|
+
@output_dir = Pathname(output_dir)
|
15
|
+
@details_output_dir = @output_dir.join('details')
|
16
|
+
@schemas_output_dir = @output_dir.join('schemas')
|
17
|
+
@example_output_dir = @output_dir.join('examples')
|
18
|
+
|
19
|
+
@data_dir = Pathname(data_dir)
|
20
|
+
@meta = JSON.parse(File.read(@data_dir.join('meta.json')))
|
21
|
+
@preset_schema = JSON.parse(File.read(@data_dir.join('preset_schemas.json')))
|
22
|
+
@preset_definitions = @preset_schema['definitions']
|
23
|
+
|
24
|
+
@examples_dir = @data_dir.join('examples')
|
25
|
+
@added_examples_dir = @data_dir.join('_added_examples')
|
26
|
+
end
|
27
|
+
|
28
|
+
def execute!
|
29
|
+
FileUtils.mkdir_p(@details_output_dir)
|
30
|
+
FileUtils.mkdir_p(@schemas_output_dir)
|
31
|
+
FileUtils.mkdir_p(@example_output_dir)
|
32
|
+
|
33
|
+
alt_event_type_mapped_examples = ExamplePreparation.new(
|
34
|
+
examples_dir: @examples_dir,
|
35
|
+
added_examples_dir: @added_examples_dir
|
36
|
+
).execute!
|
37
|
+
|
38
|
+
examples_with_metadata = alt_event_type_mapped_examples.map do |alt_event_type, example|
|
39
|
+
info = @meta['subscriptions'][alt_event_type] || @meta['subscriptions'][example['type']] || {}
|
40
|
+
[info['url'], alt_event_type, example, info['compatibility'], info['scopes']]
|
41
|
+
end
|
42
|
+
|
43
|
+
all_sub_schemas = @preset_definitions.merge(
|
44
|
+
'scope' => {
|
45
|
+
"type": 'string',
|
46
|
+
"enum": @meta['scopes'],
|
47
|
+
}
|
48
|
+
)
|
49
|
+
|
50
|
+
main_schemas = {}
|
51
|
+
|
52
|
+
all_details = examples_with_metadata.map do |url, alt_event_type, example, compatibility, scopes|
|
53
|
+
raw_example = example.delete('_raw_example')
|
54
|
+
schema, new_definition, included_props_names = ToSchema.new(
|
55
|
+
example: example,
|
56
|
+
url: url,
|
57
|
+
preset: all_sub_schemas
|
58
|
+
).execute!
|
59
|
+
|
60
|
+
all_sub_schemas.protect_merge!(new_definition)
|
61
|
+
|
62
|
+
included_schemas = included_props_names.inject({}) do |a, included_prop|
|
63
|
+
all_sub_schemas[included_prop] ? a.protect_merge!(included_prop => all_sub_schemas[included_prop]) : a
|
64
|
+
end
|
65
|
+
|
66
|
+
schema['description'] = "learn more: #{url}"
|
67
|
+
schema['example'] = raw_example
|
68
|
+
|
69
|
+
main_schemas[alt_event_type] = schema
|
70
|
+
|
71
|
+
[
|
72
|
+
alt_event_type,
|
73
|
+
{
|
74
|
+
url: url,
|
75
|
+
event: alt_event_type,
|
76
|
+
sub_schemas: included_schemas,
|
77
|
+
schema: schema,
|
78
|
+
compatibility: compatibility,
|
79
|
+
scopes: scopes,
|
80
|
+
},
|
81
|
+
{
|
82
|
+
"$schema": 'http://json-schema.org/draft-07/schema',
|
83
|
+
'definitions' => included_schemas.protect_merge!(alt_event_type => schema),
|
84
|
+
},
|
85
|
+
raw_example,
|
86
|
+
]
|
87
|
+
end
|
88
|
+
|
89
|
+
write_each_data_json!(all_details)
|
90
|
+
write_all_schemas_json!(all_sub_schemas, main_schemas)
|
91
|
+
write_summary!(all_details.map { |d| d[1] })
|
92
|
+
|
93
|
+
all_details
|
94
|
+
end
|
95
|
+
|
96
|
+
# @output_dir = Pathname('./lib/slack_resources/resources/event_api/')
|
97
|
+
|
98
|
+
private
|
99
|
+
|
100
|
+
def write_each_data_json!(all_details)
|
101
|
+
all_details.each do |alt_event_type, data, single_schema, example|
|
102
|
+
File.write(@details_output_dir.join("#{alt_event_type}.json").to_s, JSON.pretty_generate(data))
|
103
|
+
File.write(@example_output_dir.join("#{alt_event_type}.json").to_s, JSON.pretty_generate(example))
|
104
|
+
File.write(@schemas_output_dir.join("#{alt_event_type}.json").to_s, JSON.pretty_generate(single_schema))
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def write_all_schemas_json!(all_sub_schemas, main_schemas)
|
109
|
+
File.write(
|
110
|
+
@output_dir.join('schema.json').to_s,
|
111
|
+
JSON.pretty_generate(
|
112
|
+
"$schema": 'http://json-schema.org/draft-07/schema',
|
113
|
+
'definitions' => all_sub_schemas.protect_merge!(main_schemas).key_ordered
|
114
|
+
)
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
118
|
+
def write_summary!(data)
|
119
|
+
File.write(@output_dir.join('summary.json').to_s, JSON.pretty_generate(data.sort_by { |a| a[:type] }))
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|