42 lines
788 B
Go
42 lines
788 B
Go
package discord
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.sapphic.engineer/roleypoly/v4/utils"
|
|
)
|
|
|
|
type GuildService struct {
|
|
client IDiscordClient
|
|
}
|
|
|
|
func NewGuildService(client IDiscordClient) *GuildService {
|
|
return &GuildService{
|
|
client: client,
|
|
}
|
|
}
|
|
|
|
func (gs *GuildService) Client() IDiscordClient {
|
|
return gs.client
|
|
}
|
|
|
|
func (gs *GuildService) GetGuild(guildID string) (*Guild, error) {
|
|
|
|
req := NewRequest("GET", utils.J("guilds", guildID))
|
|
gs.client.BotAuth(req)
|
|
|
|
resp, err := gs.client.Do(req)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("GuildService.GetGuild: request failed: %w", err)
|
|
}
|
|
|
|
guild := &Guild{
|
|
Client: gs.client,
|
|
}
|
|
err = OutputResponse(resp, guild)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("GuildService.GetGuild: response decode failed: %w", err)
|
|
}
|
|
|
|
return guild, nil
|
|
}
|