lib_discord 0.1.0.pre2 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +129 -0
  3. data/CODE_OF_CONDUCT.md +134 -0
  4. data/LICENSES/AGPL-3.0-only.txt +661 -0
  5. data/README.md +122 -0
  6. data/lib/lib_discord/application.rb +43 -0
  7. data/lib/lib_discord/application_command.rb +341 -0
  8. data/lib/lib_discord/application_role_connection_metadata.rb +52 -0
  9. data/lib/lib_discord/audit_log.rb +36 -0
  10. data/lib/lib_discord/auto_moderation.rb +106 -0
  11. data/lib/lib_discord/channel.rb +716 -0
  12. data/lib/lib_discord/client.rb +124 -14
  13. data/lib/lib_discord/emoji.rb +106 -0
  14. data/lib/lib_discord/errors.rb +24 -0
  15. data/lib/lib_discord/guild.rb +830 -0
  16. data/lib/lib_discord/guild_scheduled_event.rb +133 -0
  17. data/lib/lib_discord/guild_template.rb +128 -0
  18. data/lib/lib_discord/interaction.rb +163 -0
  19. data/lib/lib_discord/invite.rb +47 -0
  20. data/lib/lib_discord/mappers/application_command_option_types.rb +22 -0
  21. data/lib/lib_discord/mappers/application_command_permission_types.rb +14 -0
  22. data/lib/lib_discord/mappers/application_command_types.rb +14 -0
  23. data/lib/lib_discord/mappers/application_integration_types.rb +13 -0
  24. data/lib/lib_discord/mappers/application_role_connection_metadata_types.rb +19 -0
  25. data/lib/lib_discord/mappers/audit_log_events.rb +67 -0
  26. data/lib/lib_discord/mappers/auto_moderation_action_types.rb +14 -0
  27. data/lib/lib_discord/mappers/auto_moderation_event_types.rb +12 -0
  28. data/lib/lib_discord/mappers/auto_moderation_keyword_preset_types.rb +14 -0
  29. data/lib/lib_discord/mappers/auto_moderation_trigger_types.rb +15 -0
  30. data/lib/lib_discord/mappers/channel_forum_layout_types.rb +14 -0
  31. data/lib/lib_discord/mappers/channel_message_activity_types.rb +15 -0
  32. data/lib/lib_discord/mappers/channel_message_types.rb +42 -0
  33. data/lib/lib_discord/mappers/channel_sort_order_types.rb +13 -0
  34. data/lib/lib_discord/mappers/channel_types.rb +24 -0
  35. data/lib/lib_discord/mappers/channel_video_quality_modes.rb +13 -0
  36. data/lib/lib_discord/mappers/guild_default_message_notification_levels.rb +13 -0
  37. data/lib/lib_discord/mappers/guild_explicit_content_filter_levels.rb +14 -0
  38. data/lib/lib_discord/mappers/guild_integration_expire_behaviors.rb +13 -0
  39. data/lib/lib_discord/mappers/guild_mfa_levels.rb +13 -0
  40. data/lib/lib_discord/mappers/guild_nsfw_levels.rb +15 -0
  41. data/lib/lib_discord/mappers/guild_onboarding_modes.rb +13 -0
  42. data/lib/lib_discord/mappers/guild_premium_tiers.rb +15 -0
  43. data/lib/lib_discord/mappers/guild_prompt_types.rb +13 -0
  44. data/lib/lib_discord/mappers/guild_scheduled_event_entity_types.rb +14 -0
  45. data/lib/lib_discord/mappers/guild_scheduled_event_privacy_levels.rb +12 -0
  46. data/lib/lib_discord/mappers/guild_scheduled_event_statuses.rb +15 -0
  47. data/lib/lib_discord/mappers/guild_verification_levels.rb +16 -0
  48. data/lib/lib_discord/mappers/interaction_callback_types.rb +19 -0
  49. data/lib/lib_discord/mappers/interaction_context_types.rb +14 -0
  50. data/lib/lib_discord/mappers/interaction_types.rb +16 -0
  51. data/lib/lib_discord/mappers/invite_target_types.rb +13 -0
  52. data/lib/lib_discord/mappers/message_component_button_styles.rb +16 -0
  53. data/lib/lib_discord/mappers/message_component_text_input_styles.rb +13 -0
  54. data/lib/lib_discord/mappers/message_component_types.rb +19 -0
  55. data/lib/lib_discord/mappers/poll_layout_types.rb +12 -0
  56. data/lib/lib_discord/mappers/stage_instance_privacy_levels.rb +13 -0
  57. data/lib/lib_discord/mappers/sticker_format_types.rb +15 -0
  58. data/lib/lib_discord/mappers/sticker_types.rb +13 -0
  59. data/lib/lib_discord/mappers/user_premium_types.rb +15 -0
  60. data/lib/lib_discord/mappers/user_visibility_types.rb +13 -0
  61. data/lib/lib_discord/mappers/webhooks_types.rb +14 -0
  62. data/lib/lib_discord/mappers.rb +87 -0
  63. data/lib/lib_discord/poll.rb +62 -0
  64. data/lib/lib_discord/resource.rb +91 -21
  65. data/lib/lib_discord/response.rb +39 -7
  66. data/lib/lib_discord/stage_instance.rb +79 -0
  67. data/lib/lib_discord/sticker.rb +132 -0
  68. data/lib/lib_discord/types.rb +35 -11
  69. data/lib/lib_discord/urls.rb +20 -12
  70. data/lib/lib_discord/user.rb +174 -0
  71. data/lib/lib_discord/version.rb +5 -1
  72. data/lib/lib_discord/voice.rb +29 -0
  73. data/lib/lib_discord/webhook.rb +299 -0
  74. data/lib/lib_discord.rb +5 -0
  75. metadata +81 -20
  76. data/lib/lib_discord/resources/application.rb +0 -15
  77. data/lib/lib_discord/resources/application_command.rb +0 -71
  78. data/lib/lib_discord/resources/application_role_connection_metadata.rb +0 -15
  79. data/lib/lib_discord/resources/audit_log.rb +0 -11
  80. data/lib/lib_discord/resources/auto_moderation.rb +0 -27
  81. data/lib/lib_discord/resources/channel.rb +0 -168
  82. data/lib/lib_discord/resources/emoji.rb +0 -27
  83. data/lib/lib_discord/resources/guild.rb +0 -196
  84. data/lib/lib_discord/resources/guild_scheduled_event.rb +0 -31
  85. data/lib/lib_discord/resources/guild_template.rb +0 -35
  86. data/lib/lib_discord/resources/interaction.rb +0 -39
  87. data/lib/lib_discord/resources/invite.rb +0 -15
  88. data/lib/lib_discord/resources/stage_instance.rb +0 -23
  89. data/lib/lib_discord/resources/sticker.rb +0 -35
  90. data/lib/lib_discord/resources/user.rb +0 -51
  91. data/lib/lib_discord/resources/voice.rb +0 -11
  92. data/lib/lib_discord/resources/webhook.rb +0 -67
  93. data/lib/lib_discord/resources.rb +0 -19
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lib_discord/resource"
4
+
5
+ module LibDiscord
6
+ ##
7
+ # Auto Moderation
8
+ #
9
+ # Do not instantiate an {AutoModeration} directly. Instead request one from
10
+ # an instance of {Client}.
11
+ #
12
+ # client = LibDiscord::Client.new("Bot auth.token")
13
+ # a = client["auto_moderation"]
14
+ #
15
+ # @see https://discord.com/developers/docs/resources/auto-moderation Discord
16
+ # documentation "Auto Moderation"
17
+ class AutoModeration < Resource
18
+ ##
19
+ # @param guild_id [#to_s]
20
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
21
+ # documentation "Snowflakes"}
22
+ #
23
+ # @return [Response]
24
+ #
25
+ # @raise [TimeoutError] if the HTTP request times out
26
+ #
27
+ # @see https://discord.com/developers/docs/resources/auto-moderation#list-auto-moderation-rules-for-guild
28
+ # Discord documentation "List Auto Moderation Rules for Guild"
29
+ def list_auto_moderation_rules_for_guild(guild_id:)
30
+ send_request(:get, "/guilds/#{guild_id}/auto-moderation/rules")
31
+ end
32
+
33
+ ##
34
+ # @param guild_id [#to_s]
35
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
36
+ # documentation "Snowflakes"}
37
+ # @param auto_moderation_rule_id [#to_s]
38
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
39
+ # documentation "Snowflakes"}
40
+ #
41
+ # @return [Response]
42
+ #
43
+ # @raise [TimeoutError] if the HTTP request times out
44
+ #
45
+ # @see https://discord.com/developers/docs/resources/auto-moderation#get-auto-moderation-rule
46
+ # Discord documentation "Get Auto Moderation Rule"
47
+ def get_auto_moderation_rule(guild_id:, auto_moderation_rule_id:)
48
+ send_request(:get, "/guilds/#{guild_id}/auto-moderation/rules/#{auto_moderation_rule_id}")
49
+ end
50
+
51
+ ##
52
+ # @param guild_id [#to_s]
53
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
54
+ # documentation "Snowflakes"}
55
+ # @param json [Hash] JSON serializable payload
56
+ #
57
+ # @return [Response]
58
+ #
59
+ # @raise [TimeoutError] if the HTTP request times out
60
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
61
+ #
62
+ # @see https://discord.com/developers/docs/resources/auto-moderation#create-auto-moderation-rule
63
+ # Discord documentation "Create Auto Moderation Rule"
64
+ def create_auto_moderation_rule(guild_id:, json:)
65
+ send_request(:post, "/guilds/#{guild_id}/auto-moderation/rules", json:)
66
+ end
67
+
68
+ ##
69
+ # @param guild_id [#to_s]
70
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
71
+ # documentation "Snowflakes"}
72
+ # @param auto_moderation_rule_id [#to_s]
73
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
74
+ # documentation "Snowflakes"}
75
+ # @param json [Hash] JSON serializable payload
76
+ #
77
+ # @return [Response]
78
+ #
79
+ # @raise [TimeoutError] if the HTTP request times out
80
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
81
+ #
82
+ # @see https://discord.com/developers/docs/resources/auto-moderation#modify-auto-moderation-rule
83
+ # Discord documentation "Modify Auto Moderation Rule"
84
+ def modify_auto_moderation_rule(guild_id:, auto_moderation_rule_id:, json:)
85
+ send_request(:patch, "/guilds/#{guild_id}/auto-moderation/rules/#{auto_moderation_rule_id}", json:)
86
+ end
87
+
88
+ ##
89
+ # @param guild_id [#to_s]
90
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
91
+ # documentation "Snowflakes"}
92
+ # @param auto_moderation_rule_id [#to_s]
93
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
94
+ # documentation "Snowflakes"}
95
+ #
96
+ # @return [Response]
97
+ #
98
+ # @raise [TimeoutError] if the HTTP request times out
99
+ #
100
+ # @see https://discord.com/developers/docs/resources/auto-moderation#delete-auto-moderation-rule
101
+ # Discord documentation "Delete Auto Moderation Rule"
102
+ def delete_auto_moderation_rule(guild_id:, auto_moderation_rule_id:)
103
+ send_request(:delete, "/guilds/#{guild_id}/auto-moderation/rules/#{auto_moderation_rule_id}")
104
+ end
105
+ end
106
+ end