Skip to content

Commit fe9acb7

Browse files
committed
refactor client interfaces to structs (#454)
1 parent ca16cf5 commit fe9acb7

File tree

135 files changed

+2616
-2884
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+2616
-2884
lines changed

_examples/application_commands/gateway/example.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func main() {
5454

5555
defer client.Close(context.TODO())
5656

57-
if _, err = client.Rest().SetGuildCommands(client.ApplicationID(), guildID, commands); err != nil {
57+
if _, err = client.Rest.SetGuildCommands(client.ApplicationID, guildID, commands); err != nil {
5858
slog.Error("error while registering commands", slog.Any("err", err))
5959
}
6060

_examples/application_commands/http/example.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,26 @@ var (
4242
}
4343
)
4444

45+
type customVerifier struct{}
46+
47+
func (customVerifier) Verify(publicKey httpserver.PublicKey, message, sig []byte) bool {
48+
return ed25519.Verify(publicKey, message, sig)
49+
}
50+
51+
func (customVerifier) SignatureSize() int {
52+
return ed25519.SignatureSize
53+
}
54+
4555
func main() {
4656
slog.Info("starting example...")
4757
slog.Info("disgo version", slog.String("version", disgo.Version))
4858

49-
// use custom ed25519 verify implementation
50-
httpserver.Verify = func(publicKey httpserver.PublicKey, message, sig []byte) bool {
51-
return ed25519.Verify(publicKey, message, sig)
52-
}
53-
5459
client, err := disgo.New(token,
5560
bot.WithHTTPServerConfigOpts(publicKey,
5661
httpserver.WithURL("/interactions/callback"),
5762
httpserver.WithAddress(":80"),
63+
// use custom ed25519 verify implementation
64+
httpserver.WithVerifier(customVerifier{}),
5865
),
5966
bot.WithEventListenerFunc(commandListener),
6067
)
@@ -64,7 +71,7 @@ func main() {
6471

6572
defer client.Close(context.TODO())
6673

67-
if _, err = client.Rest().SetGuildCommands(client.ApplicationID(), guildID, commands); err != nil {
74+
if _, err = client.Rest.SetGuildCommands(client.ApplicationID, guildID, commands); err != nil {
6875
panic("error while registering commands: " + err.Error())
6976
}
7077

@@ -86,7 +93,7 @@ func commandListener(event *events.ApplicationCommandInteractionCreate) {
8693
SetEphemeral(data.Bool("ephemeral")).
8794
Build(),
8895
); err != nil {
89-
event.Client().Logger().Error("error on sending response", slog.Any("err", err))
96+
event.Client().Logger.Error("error on sending response", slog.Any("err", err))
9097
}
9198
}
9299
}

_examples/application_commands/localization/example.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func main() {
7777

7878
defer client.Close(context.TODO())
7979

80-
if _, err = client.Rest().SetGuildCommands(client.ApplicationID(), guildID, commands); err != nil {
80+
if _, err = client.Rest.SetGuildCommands(client.ApplicationID, guildID, commands); err != nil {
8181
panic("error while registering commands: " + err.Error())
8282
}
8383

@@ -100,7 +100,7 @@ func commandListener(event *events.ApplicationCommandInteractionCreate) {
100100
Build(),
101101
)
102102
if err != nil {
103-
event.Client().Logger().Error("error on sending response", slog.Any("err", err))
103+
event.Client().Logger.Error("error on sending response", slog.Any("err", err))
104104
}
105105
}
106106
}

_examples/auto_moderation/example.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ func main() {
6565
<-s
6666
}
6767

68-
func showCaseAutoMod(client bot.Client) {
69-
rule, err := client.Rest().CreateAutoModerationRule(guildID, discord.AutoModerationRuleCreate{
68+
func showCaseAutoMod(client *bot.Client) {
69+
rule, err := client.Rest.CreateAutoModerationRule(guildID, discord.AutoModerationRuleCreate{
7070
Name: "test-rule",
7171
EventType: discord.AutoModerationEventTypeMessageSend,
7272
TriggerType: discord.AutoModerationTriggerTypeKeyword,
@@ -93,7 +93,7 @@ func showCaseAutoMod(client bot.Client) {
9393

9494
time.Sleep(time.Second * 10)
9595

96-
rule, err = client.Rest().UpdateAutoModerationRule(guildID, rule.ID, discord.AutoModerationRuleUpdate{
96+
rule, err = client.Rest.UpdateAutoModerationRule(guildID, rule.ID, discord.AutoModerationRuleUpdate{
9797
Name: omit.Ptr("test-rule-updated"),
9898
TriggerMetadata: &discord.AutoModerationTriggerMetadata{
9999
KeywordFilter: []string{"*test2*"},
@@ -114,7 +114,7 @@ func showCaseAutoMod(client bot.Client) {
114114

115115
time.Sleep(time.Second * 10)
116116

117-
err = client.Rest().DeleteAutoModerationRule(guildID, rule.ID)
117+
err = client.Rest.DeleteAutoModerationRule(guildID, rule.ID)
118118
if err != nil {
119119
slog.Error("error while deleting rule", slog.Any("err", err))
120120
return

_examples/components/example.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ func main() {
2929
return
3030
}
3131
if event.Message.Content == "test" {
32-
_, _ = event.Client().Rest().CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().
32+
_, _ = event.Client().Rest.CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().
3333
AddActionRow(discord.NewDangerButton("danger", "danger")).
3434
SetMessageReferenceByID(event.Message.ID).
3535
Build(),

_examples/custom_cache/example.go

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"context"
5+
"iter"
56
"log/slog"
67
"os"
78
"os/signal"
@@ -174,27 +175,32 @@ func (g *groupedCache[T]) GroupLen(groupID snowflake.ID) int {
174175
return len(groupEntities)
175176
}
176177

177-
func (g *groupedCache[T]) ForEach(f func(groupID snowflake.ID, entity T)) {
178-
g.mu.Lock()
179-
defer g.mu.Unlock()
178+
func (g *groupedCache[T]) All() iter.Seq2[snowflake.ID, T] {
179+
return func(yield func(snowflake.ID, T) bool) {
180+
g.mu.Lock()
181+
defer g.mu.Unlock()
180182

181-
for groupID, groupEntities := range g.cache {
182-
for _, entity := range groupEntities {
183-
f(groupID, entity)
183+
for groupID, groupEntities := range g.cache {
184+
for _, entity := range groupEntities {
185+
if !yield(groupID, entity) {
186+
return
187+
}
188+
}
184189
}
185190
}
186191
}
187192

188-
func (g *groupedCache[T]) GroupForEach(groupID snowflake.ID, forEachFunc func(entity T)) {
189-
g.mu.Lock()
190-
defer g.mu.Unlock()
193+
func (g *groupedCache[T]) GroupAll(groupID snowflake.ID) iter.Seq[T] {
194+
return func(yield func(T) bool) {
195+
g.mu.Lock()
196+
defer g.mu.Unlock()
191197

192-
groupEntities, ok := g.cache[groupID]
193-
if !ok {
194-
return
195-
}
196-
197-
for _, entity := range groupEntities {
198-
forEachFunc(entity)
198+
if groupEntities, ok := g.cache[groupID]; ok {
199+
for _, entity := range groupEntities {
200+
if !yield(entity) {
201+
return
202+
}
203+
}
204+
}
199205
}
200206
}

_examples/echo/echo.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ func main() {
5252
<-s
5353
}
5454

55-
func play(client bot.Client) {
56-
conn := client.VoiceManager().CreateConn(guildID)
55+
func play(client *bot.Client) {
56+
conn := client.VoiceManager.CreateConn(guildID)
5757

5858
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
5959
defer cancel()

_examples/guild_scheduled_events/example.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func main() {
5252
if event.Message.Content != "test" {
5353
return
5454
}
55-
gse, _ := event.Client().Rest().CreateGuildScheduledEvent(*event.GuildID, discord.GuildScheduledEventCreate{
55+
gse, _ := event.Client().Rest.CreateGuildScheduledEvent(*event.GuildID, discord.GuildScheduledEventCreate{
5656
ChannelID: 885677988916641802,
5757
Name: "test",
5858
PrivacyLevel: discord.ScheduledEventPrivacyLevelGuildOnly,
@@ -62,14 +62,14 @@ func main() {
6262
})
6363

6464
status := discord.ScheduledEventStatusActive
65-
gse, _ = event.Client().Rest().UpdateGuildScheduledEvent(gse.GuildID, gse.ID, discord.GuildScheduledEventUpdate{
65+
gse, _ = event.Client().Rest.UpdateGuildScheduledEvent(gse.GuildID, gse.ID, discord.GuildScheduledEventUpdate{
6666
Status: &status,
6767
})
6868

6969
time.Sleep(time.Second * 10)
7070

7171
status = discord.ScheduledEventStatusCompleted
72-
gse, _ = event.Client().Rest().UpdateGuildScheduledEvent(gse.GuildID, gse.ID, discord.GuildScheduledEventUpdate{
72+
gse, _ = event.Client().Rest.UpdateGuildScheduledEvent(gse.GuildID, gse.ID, discord.GuildScheduledEventUpdate{
7373
Status: &status,
7474
})
7575
},

_examples/listening_events/example.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func main() {
4848
}
4949

5050
func eventListenerFunc(event *events.MessageCreate) {
51-
_, _ = event.Client().Rest().CreateMessage(event.ChannelID, discord.MessageCreate{
51+
_, _ = event.Client().Rest.CreateMessage(event.ChannelID, discord.MessageCreate{
5252
Content: "pong",
5353
})
5454
}
@@ -59,7 +59,7 @@ func eventListenerChan() chan<- *events.MessageCreate {
5959
defer close(c)
6060
for event := range c {
6161
if event.Message.Content == "ping" {
62-
_, _ = event.Client().Rest().CreateMessage(event.ChannelID, discord.MessageCreate{
62+
_, _ = event.Client().Rest.CreateMessage(event.ChannelID, discord.MessageCreate{
6363
Content: "pong",
6464
})
6565
}

_examples/message_collector/example.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,14 +63,14 @@ func onMessageCreate(event *events.MessageCreate) {
6363
for {
6464
select {
6565
case <-ctx.Done():
66-
_, _ = event.Client().Rest().CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().SetContent("cancelled").Build())
66+
_, _ = event.Client().Rest.CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().SetContent("cancelled").Build())
6767
return
6868

6969
case messageEvent := <-ch:
7070
str += strconv.Itoa(i) + ". " + messageEvent.Message.Content + "\n\n"
7171

7272
if i == 3 {
73-
_, _ = event.Client().Rest().CreateMessage(messageEvent.ChannelID, discord.NewMessageCreateBuilder().SetContent(str).Build())
73+
_, _ = event.Client().Rest.CreateMessage(messageEvent.ChannelID, discord.NewMessageCreateBuilder().SetContent(str).Build())
7474
return
7575
}
7676
i++

_examples/oauth2/example.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ var (
2222
clientSecret = os.Getenv("client_secret")
2323
baseURL = os.Getenv("base_url")
2424
httpClient = http.DefaultClient
25-
client oauth2.Client
25+
client *oauth2.Client
2626
sessions map[string]oauth2.Session
2727
)
2828

_examples/ping_pong/example.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@ func onMessageCreate(event *events.MessageCreate) {
5656
message = "ping"
5757
}
5858
if message != "" {
59-
_, _ = event.Client().Rest().CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().SetContent(message).Build())
59+
_, _ = event.Client().Rest.CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().SetContent(message).Build())
6060
}
6161
}

_examples/proxy/example.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func main() {
7070

7171
defer client.Close(context.TODO())
7272

73-
if _, err = client.Rest().SetGuildCommands(client.ApplicationID(), guildID, commands); err != nil {
73+
if _, err = client.Rest.SetGuildCommands(client.ApplicationID, guildID, commands); err != nil {
7474
slog.Error("error while registering commands", slog.Any("err", err))
7575
return
7676
}

_examples/sharding/example.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,5 +65,5 @@ func onMessageCreate(event *events.MessageCreate) {
6565
if event.Message.Author.Bot {
6666
return
6767
}
68-
_, _ = event.Client().Rest().CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().SetContent(event.Message.Content).Build())
68+
_, _ = event.Client().Rest.CreateMessage(event.ChannelID, discord.NewMessageCreateBuilder().SetContent(event.Message.Content).Build())
6969
}

_examples/test/commands.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ var commands = []discord.ApplicationCommandCreate{
3838
},
3939
}
4040

41-
func registerCommands(client bot.Client) {
42-
if _, err := client.Rest().SetGuildCommands(client.ApplicationID(), guildID, commands); err != nil {
41+
func registerCommands(client *bot.Client) {
42+
if _, err := client.Rest.SetGuildCommands(client.ApplicationID, guildID, commands); err != nil {
4343
slog.Error("error while registering guild commands", slog.Any("err", err))
4444
}
4545
}

0 commit comments

Comments
 (0)