Skip to content

Commit 7782501

Browse files
author
Sebastian
authored
Add bulk ban endpoint (#342)
1 parent 9b1dddf commit 7782501

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

discord/ban.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package discord
22

3+
import "github.com/disgoorg/snowflake/v2"
4+
35
// Ban represents a banned User from a Guild (https://discord.com/developers/docs/resources/guild#ban-object)
46
type Ban struct {
57
Reason *string `json:"reason,omitempty"`
@@ -10,3 +12,15 @@ type Ban struct {
1012
type AddBan struct {
1113
DeleteMessageSeconds int `json:"delete_message_seconds,omitempty"`
1214
}
15+
16+
// BulkBan is used to bulk ban Users
17+
type BulkBan struct {
18+
UserIDs []snowflake.ID `json:"user_ids"`
19+
DeleteMessageSeconds int `json:"delete_message_seconds,omitempty"`
20+
}
21+
22+
// BulkBanResult is the result of a BulkBan request
23+
type BulkBanResult struct {
24+
BannedUsers []snowflake.ID `json:"banned_users"`
25+
FailedUsers []snowflake.ID `json:"failed_users"`
26+
}

rest/guilds.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ type Guilds interface {
4040
GetBan(guildID snowflake.ID, userID snowflake.ID, opts ...RequestOpt) (*discord.Ban, error)
4141
AddBan(guildID snowflake.ID, userID snowflake.ID, deleteMessageDuration time.Duration, opts ...RequestOpt) error
4242
DeleteBan(guildID snowflake.ID, userID snowflake.ID, opts ...RequestOpt) error
43+
BulkBan(guildID snowflake.ID, ban discord.BulkBan, opts ...RequestOpt) (*discord.BulkBanResult, error)
4344

4445
GetIntegrations(guildID snowflake.ID, opts ...RequestOpt) ([]discord.Integration, error)
4546
DeleteIntegration(guildID snowflake.ID, integrationID snowflake.ID, opts ...RequestOpt) error
@@ -210,6 +211,11 @@ func (s *guildImpl) DeleteBan(guildID snowflake.ID, userID snowflake.ID, opts ..
210211
return s.client.Do(DeleteBan.Compile(nil, guildID, userID), nil, nil, opts...)
211212
}
212213

214+
func (s *guildImpl) BulkBan(guildID snowflake.ID, ban discord.BulkBan, opts ...RequestOpt) (result *discord.BulkBanResult, err error) {
215+
err = s.client.Do(BulkBan.Compile(nil, guildID), ban, &result, opts...)
216+
return
217+
}
218+
213219
func (s *guildImpl) GetIntegrations(guildID snowflake.ID, opts ...RequestOpt) (integrations []discord.Integration, err error) {
214220
err = s.client.Do(GetIntegrations.Compile(nil, guildID), nil, &integrations, opts...)
215221
return

rest/rest_endpoints.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ var (
6565
GetBan = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/bans/{user.id}")
6666
AddBan = NewEndpoint(http.MethodPut, "/guilds/{guild.id}/bans/{user.id}")
6767
DeleteBan = NewEndpoint(http.MethodDelete, "/guilds/{guild.id}/bans/{user.id}")
68+
BulkBan = NewEndpoint(http.MethodPost, "/guilds/{guild.id}/bulk-ban")
6869

6970
GetMember = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/members/{user.id}")
7071
GetMembers = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/members")

0 commit comments

Comments
 (0)