discorb 0.13.3 → 0.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/discorb/event.rb CHANGED
@@ -164,7 +164,7 @@ module Discorb
164
164
  else
165
165
  raise ArgumentError, "Invalid scheduled event type: #{type}"
166
166
  end
167
- @client.http.patch("/guilds/#{@guild_id}/scheduled-events/#{@id}", payload).wait
167
+ @client.http.request(Route.new("/guilds/#{@guild_id}/scheduled-events/#{@id}", "//guilds/:guild_id/scheduled-events/:scheduled_event_id", :patch), payload).wait
168
168
  end
169
169
  end
170
170
 
@@ -201,7 +201,7 @@ module Discorb
201
201
  #
202
202
  def delete!
203
203
  Async do
204
- @client.http.delete("/guilds/#{@guild_id}/scheduled-events/#{@id}").wait
204
+ @client.http.request(Route.new("/guilds/#{@guild_id}/scheduled-events/#{@id}", "//guilds/:guild_id/scheduled-events/:scheduled_event_id", :delete)).wait
205
205
  end
206
206
  end
207
207
 
@@ -227,7 +227,7 @@ module Discorb
227
227
  after = 0
228
228
  res = []
229
229
  while true
230
- _resp, users = @client.http.get("/guilds/#{@guild_id}/scheduled-events/#{@id}/users?limit=100&after=#{after}&with_member=true").wait
230
+ _resp, users = @client.http.request(Route.new("/guilds/#{@guild_id}/scheduled-events/#{@id}/users?limit=100&after=#{after}&with_member=true", "//guilds/:guild_id/scheduled-events/:scheduled_event_id/users", :get)).wait
231
231
  if users.empty?
232
232
  break
233
233
  end
@@ -242,7 +242,7 @@ module Discorb
242
242
  after: Discorb::Utils.try(around, :id),
243
243
  with_member: with_member,
244
244
  }.filter { |_k, v| !v.nil? }.to_h
245
- _resp, messages = @client.http.get("/channels/#{channel_id.wait}/messages?#{URI.encode_www_form(params)}").wait
245
+ _resp, messages = @client.http.request(Route.new("/channels/#{channel_id.wait}/messages?#{URI.encode_www_form(params)}", "//channels/:channel_id/messages", :get)).wait
246
246
  messages.map { |m| Message.new(@client, m.merge({ guild_id: @guild_id.to_s })) }
247
247
  end
248
248
  end
@@ -528,16 +528,24 @@ module Discorb
528
528
  module Handler
529
529
  private
530
530
 
531
- def connect_gateway(reconnect, no_close: false)
531
+ def connect_gateway(reconnect, force_close: false)
532
532
  if reconnect
533
533
  @log.info "Reconnecting to gateway..."
534
534
  else
535
535
  @log.info "Connecting to gateway..."
536
536
  end
537
537
  Async do
538
- @connection&.close rescue nil unless no_close
538
+ if @connection
539
+ Async do
540
+ if force_close
541
+ @connection.force_close
542
+ else
543
+ @connection.close
544
+ end
545
+ end
546
+ end
539
547
  @http = HTTP.new(self)
540
- _, gateway_response = @http.get("/gateway").wait
548
+ _, gateway_response = @http.request(Route.new("/gateway", "//gateway", :get)).wait
541
549
  gateway_url = gateway_response[:url]
542
550
  endpoint = Async::HTTP::Endpoint.parse("#{gateway_url}?v=9&encoding=json&compress=zlib-stream",
543
551
  alpn_protocols: Async::HTTP::Protocol::HTTP11.names)
@@ -562,9 +570,15 @@ module Discorb
562
570
  end
563
571
  end
564
572
  end
565
- rescue Async::Wrapper::Cancelled, OpenSSL::SSL::SSLError, Async::Wrapper::WaitError, EOFError, Errno::EPIPE => e
573
+ rescue Async::Wrapper::Cancelled,
574
+ OpenSSL::SSL::SSLError,
575
+ Async::Wrapper::WaitError,
576
+ EOFError,
577
+ Errno::EPIPE,
578
+ Errno::ECONNRESET,
579
+ IOError => e
566
580
  @log.error "Gateway connection closed accidentally: #{e.class}: #{e.message}"
567
- connect_gateway(true, no_close: true)
581
+ connect_gateway(true, force_close: true)
568
582
  else # should never happen
569
583
  connect_gateway(true)
570
584
  end
@@ -1168,6 +1182,13 @@ module Discorb
1168
1182
  def close
1169
1183
  super
1170
1184
  @closed = true
1185
+ rescue
1186
+ force_close
1187
+ end
1188
+
1189
+ def force_close
1190
+ @framer.instance_variable_get(:@stream).close
1191
+ @closed = true
1171
1192
  end
1172
1193
 
1173
1194
  def parse(buffer)
data/lib/discorb/guild.rb CHANGED
@@ -168,7 +168,7 @@ module Discorb
168
168
  #
169
169
  def leave!
170
170
  Async do
171
- @client.http.delete("/users/@me/guilds/#{@id}").wait
171
+ @client.http.request(Route.new("/users/@me/guilds/#{@id}", "//users/@me/guilds/:guild_id", :delete)).wait
172
172
  @client.guilds.delete(@id)
173
173
  end
174
174
  end
@@ -184,7 +184,7 @@ module Discorb
184
184
  #
185
185
  def fetch_scheduled_events(with_user_count: true)
186
186
  Async do
187
- _resp, events = @client.http.get("/guilds/#{@id}/scheduled-events?with_user_count=#{with_user_count}").wait
187
+ _resp, events = @client.http.request(Route.new("/guilds/#{@id}/scheduled-events?with_user_count=#{with_user_count}", "//guilds/:guild_id/scheduled-events", :get)).wait
188
188
  @scheduled_events = events.map { |e| ScheduledEvent.new(@client, e) }
189
189
  end
190
190
  end
@@ -200,7 +200,7 @@ module Discorb
200
200
  #
201
201
  def fetch_scheduled_event(id)
202
202
  Async do
203
- _resp, event = @client.http.get("/guilds/#{@id}/scheduled-events/#{id}").wait
203
+ _resp, event = @client.http.request(Route.new("/guilds/#{@id}/scheduled-events/#{id}", "//guilds/:guild_id/scheduled-events/:scheduled_event_id", :get)).wait
204
204
  rescue Discorb::NotFoundError
205
205
  return nil
206
206
  else
@@ -274,7 +274,7 @@ module Discorb
274
274
  else
275
275
  raise ArgumentError, "Invalid scheduled event type: #{type}"
276
276
  end
277
- _resp, event = @client.http.post("/guilds/#{@id}/scheduled-events", payload).wait
277
+ _resp, event = @client.http.request(Route.new("/guilds/#{@id}/scheduled-events", "//guilds/:guild_id/scheduled-events", :post), payload).wait
278
278
  Discorb::ScheduledEvent.new(@client, event)
279
279
  end
280
280
  end
@@ -288,7 +288,7 @@ module Discorb
288
288
  #
289
289
  def fetch_emoji_list
290
290
  Async do
291
- _resp, data = @client.http.get("/guilds/#{@id}/emojis").wait
291
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/emojis", "//guilds/:guild_id/emojis", :get)).wait
292
292
  @emojis = Dictionary.new
293
293
  ids = @emojis.map(&:id).map(&:to_s)
294
294
  data.map do |e|
@@ -312,7 +312,7 @@ module Discorb
312
312
  # @return [Async::Task<Discorb::CustomEmoji>] The emoji with the given id.
313
313
  #
314
314
  def fetch_emoji(id)
315
- _resp, data = @client.http.get("/guilds/#{@id}/emojis/#{id}").wait
315
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/emojis/#{id}", "//guilds/:guild_id/emojis/:emoji_id", :get)).wait
316
316
  @emojis[e[:id]] = CustomEmoji.new(@client, self, data)
317
317
  end
318
318
 
@@ -327,14 +327,12 @@ module Discorb
327
327
  # @return [Async::Task<Discorb::CustomEmoji>] The created emoji.
328
328
  #
329
329
  def create_emoji(name, image, roles: [])
330
- _resp, data = @client.http.post(
331
- "/guilds/#{@id}/emojis",
332
- {
333
- name: name,
334
- image: image.to_s,
335
- roles: roles.map { |r| Discorb::Utils.try(r, :id) },
336
- }
337
- ).wait
330
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/emojis", "//guilds/:guild_id/emojis", :post),
331
+ {
332
+ name: name,
333
+ image: image.to_s,
334
+ roles: roles.map { |r| Discorb::Utils.try(r, :id) },
335
+ }).wait
338
336
  @emojis[data[:id]] = CustomEmoji.new(@client, self, data)
339
337
  end
340
338
 
@@ -346,7 +344,7 @@ module Discorb
346
344
  #
347
345
  def fetch_webhooks
348
346
  Async do
349
- _resp, data = @client.http.get("/guilds/#{@id}/webhooks").wait
347
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/webhooks", "//guilds/:guild_id/webhooks", :get)).wait
350
348
  data.map { |webhook| Webhook.new([@client, webhook]) }
351
349
  end
352
350
  end
@@ -359,7 +357,7 @@ module Discorb
359
357
  #
360
358
  def fetch_audit_log
361
359
  Async do
362
- _resp, data = @client.http.get("/guilds/#{@id}/audit-logs").wait
360
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/audit-logs", "//guilds/:guild_id/audit-logs", :get)).wait
363
361
  AuditLog.new(@client, data, self)
364
362
  end
365
363
  end
@@ -372,7 +370,7 @@ module Discorb
372
370
  #
373
371
  def fetch_channels
374
372
  Async do
375
- _resp, data = @client.http.get("/guilds/#{@id}/channels").wait
373
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/channels", "//guilds/:guild_id/channels", :get)).wait
376
374
  data.map { |c| Channel.make_channel(@client, c) }
377
375
  end
378
376
  end
@@ -415,9 +413,7 @@ module Discorb
415
413
  end
416
414
  end
417
415
  payload[:parent_id] = parent.id if parent
418
- _resp, data = @client.http.post(
419
- "/guilds/#{@id}/channels", payload, audit_log_reason: reason,
420
- ).wait
416
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/channels", "//guilds/:guild_id/channels", :post), payload, audit_log_reason: reason).wait
421
417
  payload[:parent_id] = parent&.id
422
418
  Channel.make_channel(@client, data)
423
419
  end
@@ -457,9 +453,7 @@ module Discorb
457
453
  end
458
454
  end
459
455
  payload[:parent_id] = parent.id if parent
460
- _resp, data = @client.http.post(
461
- "/guilds/#{@id}/channels", payload, audit_log_reason: reason,
462
- ).wait
456
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/channels", "//guilds/:guild_id/channels", :post), payload, audit_log_reason: reason).wait
463
457
  payload[:parent_id] = parent&.id
464
458
  Channel.make_channel(@client, data)
465
459
  end
@@ -492,9 +486,7 @@ module Discorb
492
486
  end
493
487
  end
494
488
  payload[:parent_id] = parent&.id
495
- _resp, data = @client.http.post(
496
- "/guilds/#{@id}/channels", payload, audit_log_reason: reason,
497
- ).wait
489
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/channels", "//guilds/:guild_id/channels", :post), payload, audit_log_reason: reason).wait
498
490
  Channel.make_channel(@client, data)
499
491
  end
500
492
  end
@@ -531,9 +523,7 @@ module Discorb
531
523
  end
532
524
  end
533
525
  payload[:parent_id] = parent&.id
534
- _resp, data = @client.http.post(
535
- "/guilds/#{@id}/channels", payload, audit_log_reason: reason,
536
- ).wait
526
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/channels", "//guilds/:guild_id/channels", :post), payload, audit_log_reason: reason).wait
537
527
  Channel.make_channel(@client, data)
538
528
  end
539
529
  end
@@ -576,9 +566,7 @@ module Discorb
576
566
  end
577
567
  payload[:nsfw] = nsfw unless nsfw.nil?
578
568
  payload[:parent_id] = parent&.id
579
- _resp, data = @client.http.post(
580
- "/guilds/#{@id}/channels", payload, audit_log_reason: reason,
581
- ).wait
569
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/channels", "//guilds/:guild_id/channels", :post), payload, audit_log_reason: reason).wait
582
570
  Channel.make_channel(@client, data)
583
571
  end
584
572
  end
@@ -591,7 +579,7 @@ module Discorb
591
579
  #
592
580
  def fetch_active_threads
593
581
  Async do
594
- _resp, data = @client.http.get("/guilds/#{@id}/threads/active").wait
582
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/threads/active", "//guilds/:guild_id/threads/active", :get)).wait
595
583
  data[:threads].map { |t| Channel.make_thread(@client, t) }
596
584
  end
597
585
  end
@@ -607,7 +595,7 @@ module Discorb
607
595
  #
608
596
  def fetch_member(id)
609
597
  Async do
610
- _resp, data = @client.http.get("/guilds/#{@id}/members/#{id}").wait
598
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/members/#{id}", "//guilds/:guild_id/members/:user_id", :get)).wait
611
599
  rescue Discorb::NotFoundError
612
600
  nil
613
601
  else
@@ -627,14 +615,14 @@ module Discorb
627
615
  def fetch_members(limit: 0, after: nil)
628
616
  Async do
629
617
  unless limit == 0
630
- _resp, data = @client.http.get("/guilds/#{@id}/members?#{URI.encode_www_form({ after: after, limit: limit })}").wait
618
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/members?#{URI.encode_www_form({ after: after, limit: limit })}", "//guilds/:guild_id/members", :get)).wait
631
619
  next data[:members].map { |m| Member.new(@client, @id, m[:user], m) }
632
620
  end
633
621
  ret = []
634
622
  after = 0
635
623
  loop do
636
624
  params = { after: after, limit: 100 }
637
- _resp, data = @client.http.get("/guilds/#{@id}/members?#{URI.encode_www_form(params)}").wait
625
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/members?#{URI.encode_www_form(params)}", "//guilds/:guild_id/members", :get)).wait
638
626
  ret += data.map { |m| Member.new(@client, @id, m[:user], m) }
639
627
  after = data.last[:user][:id]
640
628
  if data.length != 1000
@@ -658,7 +646,7 @@ module Discorb
658
646
  #
659
647
  def fetch_members_named(name, limit: 1)
660
648
  Async do
661
- _resp, data = @client.http.get("/guilds/#{@id}/members/search?#{URI.encode_www_form({ query: name, limit: limit })}").wait
649
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/members/search?#{URI.encode_www_form({ query: name, limit: limit })}", "//guilds/:guild_id/members/search", :get)).wait
662
650
  data.map { |d| Member.new(@client, @id, d[:user], d) }
663
651
  end
664
652
  end
@@ -687,7 +675,7 @@ module Discorb
687
675
  #
688
676
  def edit_nickname(nickname, reason: nil)
689
677
  Async do
690
- @client.http.patch("/guilds/#{@id}/members/@me/nick", { nick: nickname }, audit_log_reason: reason).wait
678
+ @client.http.request(Route.new("/guilds/#{@id}/members/@me/nick", "//guilds/:guild_id/members/@me/nick", :patch), { nick: nickname }, audit_log_reason: reason).wait
691
679
  end
692
680
  end
693
681
 
@@ -706,7 +694,7 @@ module Discorb
706
694
  #
707
695
  def kick_member(member, reason: nil)
708
696
  Async do
709
- @client.http.delete("/guilds/#{@id}/members/#{member.id}", audit_log_reason: reason).wait
697
+ @client.http.request(Route.new("/guilds/#{@id}/members/#{member.id}", "//guilds/:guild_id/members/:user_id", :delete), audit_log_reason: reason).wait
710
698
  end
711
699
  end
712
700
 
@@ -718,7 +706,7 @@ module Discorb
718
706
  #
719
707
  def fetch_bans
720
708
  Async do
721
- _resp, data = @client.http.get("/guilds/#{@id}/bans").wait
709
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/bans", "//guilds/:guild_id/bans", :get)).wait
722
710
  data.map { |d| Ban.new(@client, self, d) }
723
711
  end
724
712
  end
@@ -734,7 +722,7 @@ module Discorb
734
722
  #
735
723
  def fetch_ban(user)
736
724
  Async do
737
- _resp, data = @client.http.get("/guilds/#{@id}/bans/#{user.id}").wait
725
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/bans/#{user.id}", "//guilds/:guild_id/bans/:user_id", :get)).wait
738
726
  rescue Discorb::NotFoundError
739
727
  nil
740
728
  else
@@ -768,9 +756,7 @@ module Discorb
768
756
  #
769
757
  def ban_member(member, delete_message_days: 0, reason: nil)
770
758
  Async do
771
- _resp, data = @client.http.post(
772
- "/guilds/#{@id}/bans", { user: member.id, delete_message_days: delete_message_days }, audit_log_reason: reason,
773
- ).wait
759
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/bans", "//guilds/:guild_id/bans", :post), { user: member.id, delete_message_days: delete_message_days }, audit_log_reason: reason).wait
774
760
  Ban.new(@client, self, data)
775
761
  end
776
762
  end
@@ -786,7 +772,7 @@ module Discorb
786
772
  #
787
773
  def unban_user(user, reason: nil)
788
774
  Async do
789
- @client.http.delete("/guilds/#{@id}/bans/#{user.id}", audit_log_reason: reason).wait
775
+ @client.http.request(Route.new("/guilds/#{@id}/bans/#{user.id}", "//guilds/:guild_id/bans/:user_id", :delete), audit_log_reason: reason).wait
790
776
  end
791
777
  end
792
778
 
@@ -798,7 +784,7 @@ module Discorb
798
784
  #
799
785
  def fetch_roles
800
786
  Async do
801
- _resp, data = @client.http.get("/guilds/#{@id}/roles").wait
787
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/roles", "//guilds/:guild_id/roles", :get)).wait
802
788
  data.map { |d| Role.new(@client, self, d) }
803
789
  end
804
790
  end
@@ -822,9 +808,7 @@ module Discorb
822
808
  payload[:color] = color.to_i if color
823
809
  payload[:hoist] = hoist if hoist
824
810
  payload[:mentionable] = mentionable if mentionable
825
- _resp, data = @client.http.post(
826
- "/guilds/#{@id}/roles", payload, audit_log_reason: reason,
827
- ).wait
811
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/roles", "//guilds/:guild_id/roles", :post), payload, audit_log_reason: reason).wait
828
812
  Role.new(@client, self, data)
829
813
  end
830
814
  end
@@ -845,7 +829,7 @@ module Discorb
845
829
  include_roles: @id.to_s,
846
830
  }
847
831
  param[:include_roles] = roles.map(&:id).map(&:to_s).join(";") if roles.any?
848
- _resp, data = @client.http.get("/guilds/#{@id}/prune?#{URI.encode_www_form(params)}").wait
832
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/prune?#{URI.encode_www_form(params)}", "//guilds/:guild_id/prune", :get)).wait
849
833
  data[:pruned]
850
834
  end
851
835
  end
@@ -862,9 +846,7 @@ module Discorb
862
846
  #
863
847
  def prune(days = 7, roles: [], reason: nil)
864
848
  Async do
865
- _resp, data = @client.http.post(
866
- "/guilds/#{@id}/prune", { days: days, roles: roles.map(&:id) }, audit_log_reason: reason,
867
- ).wait
849
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/prune", "//guilds/:guild_id/prune", :post), { days: days, roles: roles.map(&:id) }, audit_log_reason: reason).wait
868
850
  data[:pruned]
869
851
  end
870
852
  end
@@ -877,7 +859,7 @@ module Discorb
877
859
  #
878
860
  def fetch_voice_regions
879
861
  Async do
880
- _resp, data = @client.http.get("/guilds/#{@id}/voice").wait
862
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/voice", "//guilds/:guild_id/voice", :get)).wait
881
863
  data.map { |d| VoiceRegion.new(@client, d) }
882
864
  end
883
865
  end
@@ -890,7 +872,7 @@ module Discorb
890
872
  #
891
873
  def fetch_invites
892
874
  Async do
893
- _resp, data = @client.http.get("/guilds/#{@id}/invites").wait
875
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/invites", "//guilds/:guild_id/invites", :get)).wait
894
876
  data.map { |d| Invite.new(@client, d) }
895
877
  end
896
878
  end
@@ -903,7 +885,7 @@ module Discorb
903
885
  #
904
886
  def fetch_integrations
905
887
  Async do
906
- _resp, data = @client.http.get("/guilds/#{@id}/integrations").wait
888
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/integrations", "//guilds/:guild_id/integrations", :get)).wait
907
889
  data.map { |d| Integration.new(@client, d) }
908
890
  end
909
891
  end
@@ -916,7 +898,7 @@ module Discorb
916
898
  #
917
899
  def fetch_widget
918
900
  Async do
919
- _resp, data = @client.http.get("/guilds/#{@id}/widget").wait
901
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/widget", "//guilds/:guild_id/widget", :get)).wait
920
902
  Widget.new(@client, @id, data)
921
903
  end
922
904
  end
@@ -929,7 +911,7 @@ module Discorb
929
911
  #
930
912
  def fetch_vanity_invite
931
913
  Async do
932
- _resp, data = @client.http.get("/guilds/#{@id}/vanity-url").wait
914
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/vanity-url", "//guilds/:guild_id/vanity-url", :get)).wait
933
915
  VanityInvite.new(@client, self, data)
934
916
  end
935
917
  end
@@ -942,7 +924,7 @@ module Discorb
942
924
  #
943
925
  def fetch_welcome_screen
944
926
  Async do
945
- _resp, data = @client.http.get("/guilds/#{@id}/welcome-screen").wait
927
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/welcome-screen", "//guilds/:guild_id/welcome-screen", :get)).wait
946
928
  WelcomeScreen.new(@client, self, data)
947
929
  end
948
930
  end
@@ -955,7 +937,7 @@ module Discorb
955
937
  #
956
938
  def fetch_stickers
957
939
  Async do
958
- _resp, data = @client.http.get("/guilds/#{@id}/stickers").wait
940
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/stickers", "//guilds/:guild_id/stickers", :get)).wait
959
941
  data.map { |d| Sticker::GuildSticker.new(@client, d) }
960
942
  end
961
943
  end
@@ -971,7 +953,7 @@ module Discorb
971
953
  #
972
954
  def fetch_sticker(id)
973
955
  Async do
974
- _resp, data = @client.http.get("/guilds/#{@id}/stickers/#{id}").wait
956
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/stickers/#{id}", "//guilds/:guild_id/stickers/:sticker_id", :get)).wait
975
957
  rescue Discorb::NotFoundError
976
958
  nil
977
959
  else
@@ -987,7 +969,7 @@ module Discorb
987
969
  #
988
970
  def fetch_templates
989
971
  Async do
990
- _resp, data = @client.http.get("/guilds/#{@id}/templates").wait
972
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/templates", "//guilds/:guild_id/templates", :get)).wait
991
973
  data.map { |d| GuildTemplate.new(@client, d) }
992
974
  end
993
975
  end
@@ -1015,9 +997,7 @@ module Discorb
1015
997
  #
1016
998
  def create_template(name, description = nil, reason: nil)
1017
999
  Async do
1018
- _resp, data = @client.http.post(
1019
- "/guilds/#{@id}/templates", { name: name, description: description }, audit_log_reason: reason,
1020
- ).wait
1000
+ _resp, data = @client.http.request(Route.new("/guilds/#{@id}/templates", "//guilds/:guild_id/templates", :post), { name: name, description: description }, audit_log_reason: reason).wait
1021
1001
  GuildTemplate.new(@client, data)
1022
1002
  end
1023
1003
  end
@@ -1097,7 +1077,7 @@ module Discorb
1097
1077
  payload = {}
1098
1078
  payload[:enabled] = enabled unless enabled.nil?
1099
1079
  payload[:channel_id] = channel.id if channel_id
1100
- @client.http.patch("/guilds/#{@guild_id}/widget", payload, audit_log_reason: reason).wait
1080
+ @client.http.request(Route.new("/guilds/#{@guild_id}/widget", "//guilds/:guild_id/widget", :patch), payload, audit_log_reason: reason).wait
1101
1081
  end
1102
1082
  end
1103
1083
 
@@ -1355,7 +1335,7 @@ module Discorb
1355
1335
  payload[:enabled] = enabled unless enabled == Discorb::Unset
1356
1336
  payload[:welcome_channels] = channels.map(&:to_hash) unless channels == Discorb::Unset
1357
1337
  payload[:description] = description unless description == Discorb::Unset
1358
- @client.http.patch("/guilds/#{@guild.id}/welcome-screen", payload, audit_log_reason: reason).wait
1338
+ @client.http.request(Route.new("/guilds/#{@guild.id}/welcome-screen", "//guilds/:guild_id/welcome-screen", :patch), payload, audit_log_reason: reason).wait
1359
1339
  end
1360
1340
  end
1361
1341
  end
@@ -58,7 +58,7 @@ module Discorb
58
58
  payload = {}
59
59
  payload[:name] = name if name
60
60
  payload[:description] = description if description != Discorb::Unset
61
- @client.http.patch("/guilds/#{@source_guild_id}/templates/#{@code}", payload).wait
61
+ @client.http.request(Route.new("/guilds/#{@source_guild_id}/templates/#{@code}", "//guilds/:guild_id/templates/:code", :patch), payload).wait
62
62
  end
63
63
  end
64
64
 
@@ -72,7 +72,7 @@ module Discorb
72
72
  #
73
73
  def update
74
74
  Async do
75
- _resp, data = @client.http.put("/guilds/#{@source_guild_id}/templates/#{@code}").wait
75
+ _resp, data = @client.http.request(Route.new("/guilds/#{@source_guild_id}/templates/#{@code}", "//guilds/:guild_id/templates/:code", :put)).wait
76
76
  _set_data(data)
77
77
  end
78
78
  end
@@ -85,7 +85,7 @@ module Discorb
85
85
  #
86
86
  def delete!
87
87
  Async do
88
- @client.http.delete("/guilds/#{@source_guild_id}/templates/#{@code}").wait
88
+ @client.http.request(Route.new("/guilds/#{@source_guild_id}/templates/#{@code}", "//guilds/:guild_id/templates/:code", :delete)).wait
89
89
  end
90
90
  end
91
91