v4/discord/guild.go
2025-03-26 13:35:47 -07:00

39 lines
771 B
Go

package discord
import (
"fmt"
"git.sapphic.engineer/roleypoly/v4/types"
"git.sapphic.engineer/roleypoly/v4/utils"
)
type IGuild interface {
GetMember(memberID string) (IMember, error)
}
type Guild struct {
types.DiscordGuild
Client IDiscordClient `json:"-"`
}
func (g *Guild) GetMember(memberID string) (*Member, error) {
guildID := g.ID
req := NewRequest("GET", utils.J("guilds", guildID, "members", memberID))
g.Client.BotAuth(req)
resp, err := g.Client.Do(req)
if err != nil {
return nil, fmt.Errorf("Guild.GetMember: request failed: %w", err)
}
member := &Member{
Client: g.Client,
}
err = OutputResponse(resp, member)
if err != nil {
return nil, fmt.Errorf("Guild.GetMember: response decode failed: %w", err)
}
return member, nil
}