Skip to content

Commit

Permalink
add guild onboarding (#238)
Browse files Browse the repository at this point in the history
  • Loading branch information
sebm253 committed Apr 1, 2023
1 parent cb10239 commit bbc3a1b
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
37 changes: 37 additions & 0 deletions discord/guild_onboarding.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package discord

import "github.com/disgoorg/snowflake/v2"

type GuildOnboarding struct {
GuildID snowflake.ID `json:"guild_id"`
Prompts []GuildOnboardingPrompt `json:"prompts"`
DefaultChannelIDs []snowflake.ID `json:"default_channel_ids"`
Enabled bool `json:"enabled"`
}

type GuildOnboardingPrompt struct {
ID snowflake.ID `json:"id"`
Options []GuildOnboardingPromptOption `json:"options"`
Title string `json:"title"`
SingleSelect bool `json:"single_select"`
Required bool `json:"required"`
InOnboarding bool `json:"in_onboarding"`
Type GuildOnboardingPromptType `json:"type"`
}

type GuildOnboardingPromptOption struct {
ID snowflake.ID `json:"id"`
ChannelIDs []snowflake.ID `json:"channel_ids"`
RoleIDs []snowflake.ID `json:"role_ids"`
EmojiID *snowflake.ID `json:"emoji_id"`
EmojiName *string `json:"emoji_name"`
Title string `json:"title"`
Description *string `json:"description"`
}

type GuildOnboardingPromptType int

const (
GuildOnboardingPromptTypeMultipleChoice GuildOnboardingPromptType = iota
GuildOnboardingPromptTypeDropdown
)
7 changes: 7 additions & 0 deletions rest/guilds.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ type Guilds interface {

GetGuildWelcomeScreen(guildID snowflake.ID, opts ...RequestOpt) (*discord.GuildWelcomeScreen, error)
UpdateGuildWelcomeScreen(guildID snowflake.ID, screenUpdate discord.GuildWelcomeScreenUpdate, opts ...RequestOpt) (*discord.GuildWelcomeScreen, error)

GetGuildOnboarding(guildID snowflake.ID, opts ...RequestOpt) (*discord.GuildOnboarding, error)
}

type guildImpl struct {
Expand Down Expand Up @@ -290,3 +292,8 @@ func (s *guildImpl) UpdateGuildWelcomeScreen(guildID snowflake.ID, screenUpdate
err = s.client.Do(UpdateGuildWelcomeScreen.Compile(nil, guildID), screenUpdate, &welcomeScreen, opts...)
return
}

func (s *guildImpl) GetGuildOnboarding(guildID snowflake.ID, opts ...RequestOpt) (onboarding *discord.GuildOnboarding, err error) {
err = s.client.Do(GetGuildOnboarding.Compile(nil, guildID), nil, &onboarding, opts...)
return
}
2 changes: 2 additions & 0 deletions rest/rest_endpoints.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ var (
GetGuildWelcomeScreen = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/welcome-screen")
UpdateGuildWelcomeScreen = NewEndpoint(http.MethodPatch, "/guilds/{guild.id}/welcome-screen")

GetGuildOnboarding = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/onboarding")

UpdateCurrentUserVoiceState = NewEndpoint(http.MethodPatch, "/guilds/{guild.id}/voice-states/@me")
UpdateUserVoiceState = NewEndpoint(http.MethodPatch, "/guilds/{guild.id}/voice-states/{user.id}")
)
Expand Down

0 comments on commit bbc3a1b

Please sign in to comment.