lib_discord 0.1.0.pre2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/lib/lib_discord/application.rb +43 -0
  3. data/lib/lib_discord/application_command.rb +341 -0
  4. data/lib/lib_discord/application_role_connection_metadata.rb +52 -0
  5. data/lib/lib_discord/audit_log.rb +36 -0
  6. data/lib/lib_discord/auto_moderation.rb +106 -0
  7. data/lib/lib_discord/channel.rb +716 -0
  8. data/lib/lib_discord/client.rb +124 -14
  9. data/lib/lib_discord/emoji.rb +106 -0
  10. data/lib/lib_discord/errors.rb +24 -0
  11. data/lib/lib_discord/guild.rb +830 -0
  12. data/lib/lib_discord/guild_scheduled_event.rb +133 -0
  13. data/lib/lib_discord/guild_template.rb +128 -0
  14. data/lib/lib_discord/interaction.rb +163 -0
  15. data/lib/lib_discord/invite.rb +47 -0
  16. data/lib/lib_discord/mappers/application_command_option_types.rb +22 -0
  17. data/lib/lib_discord/mappers/application_command_permission_types.rb +14 -0
  18. data/lib/lib_discord/mappers/application_command_types.rb +14 -0
  19. data/lib/lib_discord/mappers/application_integration_types.rb +13 -0
  20. data/lib/lib_discord/mappers/application_role_connection_metadata_types.rb +19 -0
  21. data/lib/lib_discord/mappers/audit_log_events.rb +67 -0
  22. data/lib/lib_discord/mappers/auto_moderation_action_types.rb +14 -0
  23. data/lib/lib_discord/mappers/auto_moderation_event_types.rb +12 -0
  24. data/lib/lib_discord/mappers/auto_moderation_keyword_preset_types.rb +14 -0
  25. data/lib/lib_discord/mappers/auto_moderation_trigger_types.rb +15 -0
  26. data/lib/lib_discord/mappers/channel_forum_layout_types.rb +14 -0
  27. data/lib/lib_discord/mappers/channel_message_activity_types.rb +15 -0
  28. data/lib/lib_discord/mappers/channel_message_types.rb +42 -0
  29. data/lib/lib_discord/mappers/channel_sort_order_types.rb +13 -0
  30. data/lib/lib_discord/mappers/channel_types.rb +24 -0
  31. data/lib/lib_discord/mappers/channel_video_quality_modes.rb +13 -0
  32. data/lib/lib_discord/mappers/guild_default_message_notification_levels.rb +13 -0
  33. data/lib/lib_discord/mappers/guild_explicit_content_filter_levels.rb +14 -0
  34. data/lib/lib_discord/mappers/guild_integration_expire_behaviors.rb +13 -0
  35. data/lib/lib_discord/mappers/guild_mfa_levels.rb +13 -0
  36. data/lib/lib_discord/mappers/guild_nsfw_levels.rb +15 -0
  37. data/lib/lib_discord/mappers/guild_onboarding_modes.rb +13 -0
  38. data/lib/lib_discord/mappers/guild_premium_tiers.rb +15 -0
  39. data/lib/lib_discord/mappers/guild_prompt_types.rb +13 -0
  40. data/lib/lib_discord/mappers/guild_scheduled_event_entity_types.rb +14 -0
  41. data/lib/lib_discord/mappers/guild_scheduled_event_privacy_levels.rb +12 -0
  42. data/lib/lib_discord/mappers/guild_scheduled_event_statuses.rb +15 -0
  43. data/lib/lib_discord/mappers/guild_verification_levels.rb +16 -0
  44. data/lib/lib_discord/mappers/interaction_callback_types.rb +19 -0
  45. data/lib/lib_discord/mappers/interaction_context_types.rb +14 -0
  46. data/lib/lib_discord/mappers/interaction_types.rb +16 -0
  47. data/lib/lib_discord/mappers/invite_target_types.rb +13 -0
  48. data/lib/lib_discord/mappers/message_component_button_styles.rb +16 -0
  49. data/lib/lib_discord/mappers/message_component_text_input_styles.rb +13 -0
  50. data/lib/lib_discord/mappers/message_component_types.rb +19 -0
  51. data/lib/lib_discord/mappers/poll_layout_types.rb +12 -0
  52. data/lib/lib_discord/mappers/stage_instance_privacy_levels.rb +13 -0
  53. data/lib/lib_discord/mappers/sticker_format_types.rb +15 -0
  54. data/lib/lib_discord/mappers/sticker_types.rb +13 -0
  55. data/lib/lib_discord/mappers/user_premium_types.rb +15 -0
  56. data/lib/lib_discord/mappers/user_visibility_types.rb +13 -0
  57. data/lib/lib_discord/mappers/webhooks_types.rb +14 -0
  58. data/lib/lib_discord/mappers.rb +87 -0
  59. data/lib/lib_discord/poll.rb +62 -0
  60. data/lib/lib_discord/resource.rb +91 -21
  61. data/lib/lib_discord/response.rb +39 -7
  62. data/lib/lib_discord/stage_instance.rb +79 -0
  63. data/lib/lib_discord/sticker.rb +132 -0
  64. data/lib/lib_discord/types.rb +35 -11
  65. data/lib/lib_discord/urls.rb +20 -12
  66. data/lib/lib_discord/user.rb +174 -0
  67. data/lib/lib_discord/version.rb +5 -1
  68. data/lib/lib_discord/voice.rb +29 -0
  69. data/lib/lib_discord/webhook.rb +299 -0
  70. data/lib/lib_discord.rb +5 -0
  71. metadata +77 -20
  72. data/lib/lib_discord/resources/application.rb +0 -15
  73. data/lib/lib_discord/resources/application_command.rb +0 -71
  74. data/lib/lib_discord/resources/application_role_connection_metadata.rb +0 -15
  75. data/lib/lib_discord/resources/audit_log.rb +0 -11
  76. data/lib/lib_discord/resources/auto_moderation.rb +0 -27
  77. data/lib/lib_discord/resources/channel.rb +0 -168
  78. data/lib/lib_discord/resources/emoji.rb +0 -27
  79. data/lib/lib_discord/resources/guild.rb +0 -196
  80. data/lib/lib_discord/resources/guild_scheduled_event.rb +0 -31
  81. data/lib/lib_discord/resources/guild_template.rb +0 -35
  82. data/lib/lib_discord/resources/interaction.rb +0 -39
  83. data/lib/lib_discord/resources/invite.rb +0 -15
  84. data/lib/lib_discord/resources/stage_instance.rb +0 -23
  85. data/lib/lib_discord/resources/sticker.rb +0 -35
  86. data/lib/lib_discord/resources/user.rb +0 -51
  87. data/lib/lib_discord/resources/voice.rb +0 -11
  88. data/lib/lib_discord/resources/webhook.rb +0 -67
  89. data/lib/lib_discord/resources.rb +0 -19
@@ -0,0 +1,830 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lib_discord/resource"
4
+
5
+ module LibDiscord
6
+ ##
7
+ # Guild Resource
8
+ #
9
+ # Do not instantiate a {Guild} directly. Instead request one from an instance
10
+ # of {Client}.
11
+ #
12
+ # client = LibDiscord::Client.new("Bot auth.token")
13
+ # g = client["guild"]
14
+ #
15
+ # @see https://discord.com/developers/docs/resources/guild Discord
16
+ # documentation "Guild Resource"
17
+ class Guild < Resource
18
+ ##
19
+ # @param json [Hash] JSON serializable payload
20
+ #
21
+ # @return [Response]
22
+ #
23
+ # @raise [TimeoutError] if the HTTP request times out
24
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
25
+ #
26
+ # @see https://discord.com/developers/docs/resources/guild#create-guild
27
+ # Discord documentation "Create Guild"
28
+ def create_guild(json:)
29
+ send_request(:post, "/guilds", json:)
30
+ end
31
+
32
+ ##
33
+ # @param guild_id [#to_s]
34
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
35
+ # documentation "Snowflakes"}
36
+ # @param params [Hash] optional HTTP query parameters
37
+ #
38
+ # @return [Response]
39
+ #
40
+ # @raise [TimeoutError] if the HTTP request times out
41
+ # @raise [ConstraintError] if +params+ cannot be coerced into a valid query
42
+ # parameters string
43
+ #
44
+ # @see https://discord.com/developers/docs/resources/guild#get-guild
45
+ # Discord documentation "Get Guild"
46
+ def get_guild(guild_id:, params: {})
47
+ send_request(:get, "/guilds/#{guild_id}", params:)
48
+ end
49
+
50
+ ##
51
+ # @param guild_id [#to_s]
52
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
53
+ # documentation "Snowflakes"}
54
+ #
55
+ # @return [Response]
56
+ #
57
+ # @raise [TimeoutError] if the HTTP request times out
58
+ #
59
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-preview
60
+ # Discord documentation "Get Guild Preview"
61
+ def get_guild_preview(guild_id:)
62
+ send_request(:get, "/guilds/#{guild_id}/preview")
63
+ end
64
+
65
+ ##
66
+ # @param guild_id [#to_s]
67
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
68
+ # documentation "Snowflakes"}
69
+ # @param json [Hash] JSON serializable payload
70
+ #
71
+ # @return [Response]
72
+ #
73
+ # @raise [TimeoutError] if the HTTP request times out
74
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
75
+ #
76
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild
77
+ # Discord documentation "Modify Guild"
78
+ def modify_guild(guild_id:, json:)
79
+ send_request(:patch, "/guilds/#{guild_id}", json:)
80
+ end
81
+
82
+ ##
83
+ # @param guild_id [#to_s]
84
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
85
+ # documentation "Snowflakes"}
86
+ #
87
+ # @return [Response]
88
+ #
89
+ # @raise [TimeoutError] if the HTTP request times out
90
+ #
91
+ # @see https://discord.com/developers/docs/resources/guild#delete-guild
92
+ # Discord documentation "Delete Guild"
93
+ def delete_guild(guild_id:)
94
+ send_request(:delete, "/guilds/#{guild_id}")
95
+ end
96
+
97
+ ##
98
+ # @param guild_id [#to_s]
99
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
100
+ # documentation "Snowflakes"}
101
+ #
102
+ # @return [Response]
103
+ #
104
+ # @raise [TimeoutError] if the HTTP request times out
105
+ #
106
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-channels
107
+ # Discord documentation "Get Guild Channels"
108
+ def get_guild_channels(guild_id:)
109
+ send_request(:get, "/guilds/#{guild_id}/channels")
110
+ end
111
+
112
+ ##
113
+ # @param guild_id [#to_s]
114
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
115
+ # documentation "Snowflakes"}
116
+ # @param json [Hash] JSON serializable payload
117
+ #
118
+ # @return [Response]
119
+ #
120
+ # @raise [TimeoutError] if the HTTP request times out
121
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
122
+ #
123
+ # @see https://discord.com/developers/docs/resources/guild#create-guild-channel
124
+ # Discord documentation "Create Guild Channel"
125
+ def create_guild_channel(guild_id:, json:)
126
+ send_request(:post, "/guilds/#{guild_id}/channels", json:)
127
+ end
128
+
129
+ ##
130
+ # @param guild_id [#to_s]
131
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
132
+ # documentation "Snowflakes"}
133
+ # @param json [Hash] JSON serializable payload
134
+ #
135
+ # @return [Response]
136
+ #
137
+ # @raise [TimeoutError] if the HTTP request times out
138
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
139
+ #
140
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-channel-positions
141
+ # Discord documentation "Modify Guild Channel Positions"
142
+ def modify_guild_channel_positions(guild_id:, json:)
143
+ send_request(:patch, "/guilds/#{guild_id}/channels", json:)
144
+ end
145
+
146
+ ##
147
+ # @param guild_id [#to_s]
148
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
149
+ # documentation "Snowflakes"}
150
+ #
151
+ # @return [Response]
152
+ #
153
+ # @raise [TimeoutError] if the HTTP request times out
154
+ #
155
+ # @see https://discord.com/developers/docs/resources/guild#list-active-guild-threads
156
+ # Discord documentation "List Active Guild Threads"
157
+ def list_active_guild_threads(guild_id:)
158
+ send_request(:get, "/guilds/#{guild_id}/threads/active")
159
+ end
160
+
161
+ ##
162
+ # @param guild_id [#to_s]
163
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
164
+ # documentation "Snowflakes"}
165
+ # @param user_id [#to_s]
166
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
167
+ # documentation "Snowflakes"}
168
+ #
169
+ # @return [Response]
170
+ #
171
+ # @raise [TimeoutError] if the HTTP request times out
172
+ #
173
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-member
174
+ # Discord documentation "Get Guild Member"
175
+ def get_guild_member(guild_id:, user_id:)
176
+ send_request(:get, "/guilds/#{guild_id}/members/#{user_id}")
177
+ end
178
+
179
+ ##
180
+ # @param guild_id [#to_s]
181
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
182
+ # documentation "Snowflakes"}
183
+ # @param params [Hash] optional HTTP query parameters
184
+ #
185
+ # @return [Response]
186
+ #
187
+ # @raise [TimeoutError] if the HTTP request times out
188
+ # @raise [ConstraintError] if +params+ cannot be coerced into a valid query
189
+ # parameters string
190
+ #
191
+ # @see https://discord.com/developers/docs/resources/guild#list-guild-members
192
+ # Discord documentation "List Guild Members"
193
+ def list_guild_members(guild_id:, params: {})
194
+ send_request(:get, "/guilds/#{guild_id}/members", params:)
195
+ end
196
+
197
+ ##
198
+ # @param guild_id [#to_s]
199
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
200
+ # documentation "Snowflakes"}
201
+ # @param params [Hash] optional HTTP query parameters
202
+ #
203
+ # @return [Response]
204
+ #
205
+ # @raise [TimeoutError] if the HTTP request times out
206
+ # @raise [ConstraintError] if +params+ cannot be coerced into a valid query
207
+ # parameters string
208
+ #
209
+ # @see https://discord.com/developers/docs/resources/guild#search-guild-members
210
+ # Discord documentation "Search Guild Members"
211
+ def search_guild_members(guild_id:, params: {})
212
+ send_request(:get, "/guilds/#{guild_id}/members/search", params:)
213
+ end
214
+
215
+ ##
216
+ # @param guild_id [#to_s]
217
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
218
+ # documentation "Snowflakes"}
219
+ # @param user_id [#to_s]
220
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
221
+ # documentation "Snowflakes"}
222
+ # @param json [Hash] JSON serializable payload
223
+ #
224
+ # @return [Response]
225
+ #
226
+ # @raise [TimeoutError] if the HTTP request times out
227
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
228
+ #
229
+ # @see https://discord.com/developers/docs/resources/guild#add-guild-member
230
+ # Discord documentation "Add Guild Member"
231
+ def add_guild_member(guild_id:, user_id:, json:)
232
+ send_request(:put, "/guilds/#{guild_id}/members/#{user_id}", json:)
233
+ end
234
+
235
+ ##
236
+ # @param guild_id [#to_s]
237
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
238
+ # documentation "Snowflakes"}
239
+ # @param user_id [#to_s]
240
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
241
+ # documentation "Snowflakes"}
242
+ # @param json [Hash] JSON serializable payload
243
+ #
244
+ # @return [Response]
245
+ #
246
+ # @raise [TimeoutError] if the HTTP request times out
247
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
248
+ #
249
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-member
250
+ # Discord documentation "Modify Guild Member"
251
+ def modify_guild_member(guild_id:, user_id:, json:)
252
+ send_request(:patch, "/guilds/#{guild_id}/members/#{user_id}", json:)
253
+ end
254
+
255
+ ##
256
+ # @param guild_id [#to_s]
257
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
258
+ # documentation "Snowflakes"}
259
+ # @param json [Hash] JSON serializable payload
260
+ #
261
+ # @return [Response]
262
+ #
263
+ # @raise [TimeoutError] if the HTTP request times out
264
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
265
+ #
266
+ # @see https://discord.com/developers/docs/resources/guild#modify-current-member
267
+ # Discord documentation "Modify Current Member"
268
+ def modify_current_member(guild_id:, json:)
269
+ send_request(:patch, "/guilds/#{guild_id}/members/@me", json:)
270
+ end
271
+
272
+ ##
273
+ # @deprecated Use {#modify_current_member} instead.
274
+ #
275
+ # @param guild_id [#to_s]
276
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
277
+ # documentation "Snowflakes"}
278
+ # @param json [Hash] JSON serializable payload
279
+ #
280
+ # @return [Response]
281
+ #
282
+ # @raise [TimeoutError] if the HTTP request times out
283
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
284
+ #
285
+ # @see https://discord.com/developers/docs/resources/guild#modify-current-user-nick
286
+ # Discord documentation "Modify Current User Nick"
287
+ def modify_current_user_nick(guild_id:, json:)
288
+ send_request(:patch, "/guilds/#{guild_id}/members/@me/nick", json:)
289
+ end
290
+
291
+ ##
292
+ # @param guild_id [#to_s]
293
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
294
+ # documentation "Snowflakes"}
295
+ # @param user_id [#to_s]
296
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
297
+ # documentation "Snowflakes"}
298
+ # @param role_id [#to_s]
299
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
300
+ # documentation "Snowflakes"}
301
+ #
302
+ # @return [Response]
303
+ #
304
+ # @raise [TimeoutError] if the HTTP request times out
305
+ #
306
+ # @see https://discord.com/developers/docs/resources/guild#add-guild-member-role
307
+ # Discord documentation "Add Guild Member Role"
308
+ def add_guild_member_role(guild_id:, user_id:, role_id:)
309
+ send_request(:put, "/guilds/#{guild_id}/members/#{user_id}/roles/#{role_id}")
310
+ end
311
+
312
+ ##
313
+ # @param guild_id [#to_s]
314
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
315
+ # documentation "Snowflakes"}
316
+ # @param user_id [#to_s]
317
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
318
+ # documentation "Snowflakes"}
319
+ # @param role_id [#to_s]
320
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
321
+ # documentation "Snowflakes"}
322
+ #
323
+ # @return [Response]
324
+ #
325
+ # @raise [TimeoutError] if the HTTP request times out
326
+ #
327
+ # @see https://discord.com/developers/docs/resources/guild#remove-guild-member-role
328
+ # Discord documentation "Remove Guild Member Role"
329
+ def remove_guild_member_role(guild_id:, user_id:, role_id:)
330
+ send_request(:delete, "/guilds/#{guild_id}/members/#{user_id}/roles/#{role_id}")
331
+ end
332
+
333
+ ##
334
+ # @param guild_id [#to_s]
335
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
336
+ # documentation "Snowflakes"}
337
+ # @param user_id [#to_s]
338
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
339
+ # documentation "Snowflakes"}
340
+ #
341
+ # @return [Response]
342
+ #
343
+ # @raise [TimeoutError] if the HTTP request times out
344
+ #
345
+ # @see https://discord.com/developers/docs/resources/guild#remove-guild-member
346
+ # Discord documentation "Remove Guild Member"
347
+ def remove_guild_member(guild_id:, user_id:)
348
+ send_request(:delete, "/guilds/#{guild_id}/members/#{user_id}")
349
+ end
350
+
351
+ ##
352
+ # @param guild_id [#to_s]
353
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
354
+ # documentation "Snowflakes"}
355
+ # @param params [Hash] optional HTTP query parameters
356
+ #
357
+ # @return [Response]
358
+ #
359
+ # @raise [TimeoutError] if the HTTP request times out
360
+ # @raise [ConstraintError] if +params+ cannot be coerced into a valid query
361
+ # parameters string
362
+ #
363
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-bans
364
+ # Discord documentation "Get Guild Bans"
365
+ def get_guild_bans(guild_id:, params: {})
366
+ send_request(:get, "/guilds/#{guild_id}/bans", params:)
367
+ end
368
+
369
+ ##
370
+ # @param guild_id [#to_s]
371
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
372
+ # documentation "Snowflakes"}
373
+ # @param user_id [#to_s]
374
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
375
+ # documentation "Snowflakes"}
376
+ #
377
+ # @return [Response]
378
+ #
379
+ # @raise [TimeoutError] if the HTTP request times out
380
+ #
381
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-ban
382
+ # Discord documentation "Get Guild Ban"
383
+ def get_guild_ban(guild_id:, user_id:)
384
+ send_request(:get, "/guilds/#{guild_id}/bans/#{user_id}")
385
+ end
386
+
387
+ ##
388
+ # @param guild_id [#to_s]
389
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
390
+ # documentation "Snowflakes"}
391
+ # @param user_id [#to_s]
392
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
393
+ # documentation "Snowflakes"}
394
+ # @param json [Hash] JSON serializable payload
395
+ #
396
+ # @return [Response]
397
+ #
398
+ # @raise [TimeoutError] if the HTTP request times out
399
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
400
+ #
401
+ # @see https://discord.com/developers/docs/resources/guild#create-guild-ban
402
+ # Discord documentation "Create Guild Ban"
403
+ def create_guild_ban(guild_id:, user_id:, json:)
404
+ send_request(:put, "/guilds/#{guild_id}/bans/#{user_id}", json:)
405
+ end
406
+
407
+ ##
408
+ # @param guild_id [#to_s]
409
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
410
+ # documentation "Snowflakes"}
411
+ # @param user_id [#to_s]
412
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
413
+ # documentation "Snowflakes"}
414
+ #
415
+ # @return [Response]
416
+ #
417
+ # @raise [TimeoutError] if the HTTP request times out
418
+ #
419
+ # @see https://discord.com/developers/docs/resources/guild#remove-guild-ban
420
+ # Discord documentation "Remove Guild Ban"
421
+ def remove_guild_ban(guild_id:, user_id:)
422
+ send_request(:delete, "/guilds/#{guild_id}/bans/#{user_id}")
423
+ end
424
+
425
+ ##
426
+ # @param guild_id [#to_s]
427
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
428
+ # documentation "Snowflakes"}
429
+ # @param json [Hash] JSON serializable payload
430
+ #
431
+ # @return [Response]
432
+ #
433
+ # @raise [TimeoutError] if the HTTP request times out
434
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
435
+ #
436
+ # @see https://discord.com/developers/docs/resources/guild#bulk-guild-ban
437
+ # Discord documentation "Bulk Guild Ban"
438
+ def bulk_guild_ban(guild_id:, json:)
439
+ send_request(:post, "/guilds/#{guild_id}/bulk-ban", json:)
440
+ end
441
+
442
+ ##
443
+ # @param guild_id [#to_s]
444
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
445
+ # documentation "Snowflakes"}
446
+ #
447
+ # @return [Response]
448
+ #
449
+ # @raise [TimeoutError] if the HTTP request times out
450
+ #
451
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-roles
452
+ # Discord documentation "Get Guild Roles"
453
+ def get_guild_roles(guild_id:)
454
+ send_request(:get, "/guilds/#{guild_id}/roles")
455
+ end
456
+
457
+ ##
458
+ # @param guild_id [#to_s]
459
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
460
+ # documentation "Snowflakes"}
461
+ # @param json [Hash] JSON serializable payload
462
+ #
463
+ # @return [Response]
464
+ #
465
+ # @raise [TimeoutError] if the HTTP request times out
466
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
467
+ #
468
+ # @see https://discord.com/developers/docs/resources/guild#create-guild-role
469
+ # Discord documentation "Create Guild Role"
470
+ def create_guild_role(guild_id:, json:)
471
+ send_request(:post, "/guilds/#{guild_id}/roles", json:)
472
+ end
473
+
474
+ ##
475
+ # @param guild_id [#to_s]
476
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
477
+ # documentation "Snowflakes"}
478
+ # @param json [Hash] JSON serializable payload
479
+ #
480
+ # @return [Response]
481
+ #
482
+ # @raise [TimeoutError] if the HTTP request times out
483
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
484
+ #
485
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-role-positions
486
+ # Discord documentation "Modify Guild Role Positions"
487
+ def modify_guild_role_positions(guild_id:, json:)
488
+ send_request(:patch, "/guilds/#{guild_id}/roles", json:)
489
+ end
490
+
491
+ ##
492
+ # @param guild_id [#to_s]
493
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
494
+ # documentation "Snowflakes"}
495
+ # @param role_id [#to_s]
496
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
497
+ # documentation "Snowflakes"}
498
+ # @param json [Hash] JSON serializable payload
499
+ #
500
+ # @return [Response]
501
+ #
502
+ # @raise [TimeoutError] if the HTTP request times out
503
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
504
+ #
505
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-role
506
+ # Discord documentation "Modify Guild Role"
507
+ def modify_guild_role(guild_id:, role_id:, json:)
508
+ send_request(:patch, "/guilds/#{guild_id}/roles/#{role_id}", json:)
509
+ end
510
+
511
+ ##
512
+ # @param guild_id [#to_s]
513
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
514
+ # documentation "Snowflakes"}
515
+ # @param json [Hash] JSON serializable payload
516
+ #
517
+ # @return [Response]
518
+ #
519
+ # @raise [TimeoutError] if the HTTP request times out
520
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
521
+ #
522
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-mfa-level
523
+ # Discord documentation "Modify Guild MFA level"
524
+ def modify_guild_mfa_level(guild_id:, json:)
525
+ send_request(:post, "/guilds/#{guild_id}/mfa", json:)
526
+ end
527
+
528
+ ##
529
+ # @param guild_id [#to_s]
530
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
531
+ # documentation "Snowflakes"}
532
+ # @param role_id [#to_s]
533
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
534
+ # documentation "Snowflakes"}
535
+ #
536
+ # @return [Response]
537
+ #
538
+ # @raise [TimeoutError] if the HTTP request times out
539
+ #
540
+ # @see https://discord.com/developers/docs/resources/guild#delete-guild-role
541
+ # Discord documentation "Delete Guild Role"
542
+ def delete_guild_role(guild_id:, role_id:)
543
+ send_request(:delete, "/guilds/#{guild_id}/roles/#{role_id}")
544
+ end
545
+
546
+ ##
547
+ # @param guild_id [#to_s]
548
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
549
+ # documentation "Snowflakes"}
550
+ # @param params [Hash] optional HTTP query parameters
551
+ #
552
+ # @return [Response]
553
+ #
554
+ # @raise [TimeoutError] if the HTTP request times out
555
+ # @raise [ConstraintError] if +params+ cannot be coerced into a valid query
556
+ # parameters string
557
+ #
558
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-prune-count
559
+ # Discord documentation "Get Guild Prune Count"
560
+ def get_guild_prune_count(guild_id:, params: {})
561
+ send_request(:get, "/guilds/#{guild_id}/prune", params:)
562
+ end
563
+
564
+ ##
565
+ # @param guild_id [#to_s]
566
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
567
+ # documentation "Snowflakes"}
568
+ # @param json [Hash] JSON serializable payload
569
+ #
570
+ # @return [Response]
571
+ #
572
+ # @raise [TimeoutError] if the HTTP request times out
573
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
574
+ #
575
+ # @see https://discord.com/developers/docs/resources/guild#begin-guild-prune
576
+ # Discord documentation "Begin Guild Prune"
577
+ def begin_guild_prune(guild_id:, json:)
578
+ send_request(:post, "/guilds/#{guild_id}/prune", json:)
579
+ end
580
+
581
+ ##
582
+ # @param guild_id [#to_s]
583
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
584
+ # documentation "Snowflakes"}
585
+ #
586
+ # @return [Response]
587
+ #
588
+ # @raise [TimeoutError] if the HTTP request times out
589
+ #
590
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-voice-regions
591
+ # Discord documentation "Get Guild Voice Regions"
592
+ def get_guild_voice_regions(guild_id:)
593
+ send_request(:get, "/guilds/#{guild_id}/regions")
594
+ end
595
+
596
+ ##
597
+ # @param guild_id [#to_s]
598
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
599
+ # documentation "Snowflakes"}
600
+ #
601
+ # @return [Response]
602
+ #
603
+ # @raise [TimeoutError] if the HTTP request times out
604
+ #
605
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-invites
606
+ # Discord documentation "Get Guild Invites"
607
+ def get_guild_invites(guild_id:)
608
+ send_request(:get, "/guilds/#{guild_id}/invites")
609
+ end
610
+
611
+ ##
612
+ # @param guild_id [#to_s]
613
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
614
+ # documentation "Snowflakes"}
615
+ #
616
+ # @return [Response]
617
+ #
618
+ # @raise [TimeoutError] if the HTTP request times out
619
+ #
620
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-integrations
621
+ # Discord documentation "Get Guild Integrations"
622
+ def get_guild_integrations(guild_id:)
623
+ send_request(:get, "/guilds/#{guild_id}/integrations")
624
+ end
625
+
626
+ ##
627
+ # @param guild_id [#to_s]
628
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
629
+ # documentation "Snowflakes"}
630
+ # @param integration_id [#to_s]
631
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
632
+ # documentation "Snowflakes"}
633
+ #
634
+ # @return [Response]
635
+ #
636
+ # @raise [TimeoutError] if the HTTP request times out
637
+ #
638
+ # @see https://discord.com/developers/docs/resources/guild#delete-guild-integration
639
+ # Discord documentation "Delete Guild Integration"
640
+ def delete_guild_integration(guild_id:, integration_id:)
641
+ send_request(:delete, "/guilds/#{guild_id}/integrations/#{integration_id}")
642
+ end
643
+
644
+ ##
645
+ # @param guild_id [#to_s]
646
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
647
+ # documentation "Snowflakes"}
648
+ #
649
+ # @return [Response]
650
+ #
651
+ # @raise [TimeoutError] if the HTTP request times out
652
+ #
653
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-widget-settings
654
+ # Discord documentation "Get Guild Widget Settings"
655
+ def get_guild_widget_settings(guild_id:)
656
+ send_request(:get, "/guilds/#{guild_id}/widget")
657
+ end
658
+
659
+ ##
660
+ # @param guild_id [#to_s]
661
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
662
+ # documentation "Snowflakes"}
663
+ # @param json [Hash] JSON serializable payload
664
+ #
665
+ # @return [Response]
666
+ #
667
+ # @raise [TimeoutError] if the HTTP request times out
668
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
669
+ #
670
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-widget
671
+ # Discord documentation "Modify Guild Widget"
672
+ def modify_guild_widget(guild_id:, json:)
673
+ send_request(:patch, "/guilds/#{guild_id}/widget", json:)
674
+ end
675
+
676
+ ##
677
+ # @param guild_id [#to_s]
678
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
679
+ # documentation "Snowflakes"}
680
+ #
681
+ # @return [Response]
682
+ #
683
+ # @raise [TimeoutError] if the HTTP request times out
684
+ #
685
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-widget
686
+ # Discord documentation "Get Guild Widget"
687
+ def get_guild_widget(guild_id:)
688
+ send_request(:get, "/guilds/#{guild_id}/widget.json")
689
+ end
690
+
691
+ ##
692
+ # @param guild_id [#to_s]
693
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
694
+ # documentation "Snowflakes"}
695
+ #
696
+ # @return [Response]
697
+ #
698
+ # @raise [TimeoutError] if the HTTP request times out
699
+ #
700
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-vanity-url
701
+ # Discord documentation "Get Guild Vanity URL"
702
+ def get_guild_vanity_url(guild_id:)
703
+ send_request(:get, "/guilds/#{guild_id}/vanity-url")
704
+ end
705
+
706
+ ##
707
+ # @param guild_id [#to_s]
708
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
709
+ # documentation "Snowflakes"}
710
+ # @param params [Hash] optional HTTP query parameters
711
+ #
712
+ # @return [Response]
713
+ #
714
+ # @raise [TimeoutError] if the HTTP request times out
715
+ # @raise [ConstraintError] if +params+ cannot be coerced into a valid query
716
+ # parameters string
717
+ #
718
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-widget-image
719
+ # Discord documentation "Get Guild Widget Image"
720
+ def get_guild_widget_image(guild_id:, params: {})
721
+ send_request(
722
+ :get,
723
+ "/guilds/#{guild_id}/widget.png",
724
+ http_client: client,
725
+ params:
726
+ )
727
+ end
728
+
729
+ ##
730
+ # @param guild_id [#to_s]
731
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
732
+ # documentation "Snowflakes"}
733
+ #
734
+ # @return [Response]
735
+ #
736
+ # @raise [TimeoutError] if the HTTP request times out
737
+ #
738
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-welcome-screen
739
+ # Discord documentation "Get Guild Welcome Screen"
740
+ def get_guild_welcome_screen(guild_id:)
741
+ send_request(:get, "/guilds/#{guild_id}/welcome-screen")
742
+ end
743
+
744
+ ##
745
+ # @param guild_id [#to_s]
746
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
747
+ # documentation "Snowflakes"}
748
+ # @param json [Hash] JSON serializable payload
749
+ #
750
+ # @return [Response]
751
+ #
752
+ # @raise [TimeoutError] if the HTTP request times out
753
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
754
+ #
755
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-welcome-screen
756
+ # Discord documentation "Modify Guild Welcome Screen"
757
+ def modify_guild_welcome_screen(guild_id:, json:)
758
+ send_request(:patch, "/guilds/#{guild_id}/welcome-screen", json:)
759
+ end
760
+
761
+ ##
762
+ # @param guild_id [#to_s]
763
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
764
+ # documentation "Snowflakes"}
765
+ #
766
+ # @return [Response]
767
+ #
768
+ # @raise [TimeoutError] if the HTTP request times out
769
+ #
770
+ # @see https://discord.com/developers/docs/resources/guild#get-guild-onboarding
771
+ # Discord documentation "Get Guild Onboarding"
772
+ def get_guild_onboarding(guild_id:)
773
+ send_request(:get, "/guilds/#{guild_id}/onboarding")
774
+ end
775
+
776
+ ##
777
+ # @param guild_id [#to_s]
778
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
779
+ # documentation "Snowflakes"}
780
+ # @param json [Hash] JSON serializable payload
781
+ #
782
+ # @return [Response]
783
+ #
784
+ # @raise [TimeoutError] if the HTTP request times out
785
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
786
+ #
787
+ # @see https://discord.com/developers/docs/resources/guild#modify-guild-onboarding
788
+ # Discord documentation "Modify Guild Onboarding"
789
+ def modify_guild_onboarding(guild_id:, json:)
790
+ send_request(:put, "/guilds/#{guild_id}/onboarding", json:)
791
+ end
792
+
793
+ ##
794
+ # @param guild_id [#to_s]
795
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
796
+ # documentation "Snowflakes"}
797
+ # @param json [Hash] JSON serializable payload
798
+ #
799
+ # @return [Response]
800
+ #
801
+ # @raise [TimeoutError] if the HTTP request times out
802
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
803
+ #
804
+ # @see https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state
805
+ # Discord documentation "Modify Current User Voice State"
806
+ def modify_current_user_voice_state(guild_id:, json:)
807
+ send_request(:patch, "/guilds/#{guild_id}/voice-states/@me", json:)
808
+ end
809
+
810
+ ##
811
+ # @param guild_id [#to_s]
812
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
813
+ # documentation "Snowflakes"}
814
+ # @param user_id [#to_s]
815
+ # {https://discord.com/developers/docs/reference#snowflakes Discord
816
+ # documentation "Snowflakes"}
817
+ # @param json [Hash] JSON serializable payload
818
+ #
819
+ # @return [Response]
820
+ #
821
+ # @raise [TimeoutError] if the HTTP request times out
822
+ # @raise [ConstraintError] if +json+ cannot be serialized to JSON
823
+ #
824
+ # @see https://discord.com/developers/docs/resources/guild#modify-user-voice-state
825
+ # Discord documentation "Modify User Voice State"
826
+ def modify_user_voice_state(guild_id:, user_id:, json:)
827
+ send_request(:patch, "/guilds/#{guild_id}/voice-states/#{user_id}", json:)
828
+ end
829
+ end
830
+ end