Skip to content

Commit 7e8c825

Browse files
author
mlnrDev
committed
Address Discord having shitty API design
1 parent c9a2364 commit 7e8c825

File tree

1 file changed

+26
-7
lines changed

1 file changed

+26
-7
lines changed

discord/guild_onboarding.go

+26-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package discord
22

3-
import "github.com/disgoorg/snowflake/v2"
3+
import (
4+
"github.com/disgoorg/json"
5+
"github.com/disgoorg/snowflake/v2"
6+
)
47

58
type GuildOnboarding struct {
69
GuildID snowflake.ID `json:"guild_id"`
@@ -21,12 +24,28 @@ type GuildOnboardingPrompt struct {
2124
}
2225

2326
type GuildOnboardingPromptOption struct {
24-
ID snowflake.ID `json:"id"`
25-
ChannelIDs []snowflake.ID `json:"channel_ids"`
26-
RoleIDs []snowflake.ID `json:"role_ids"`
27-
Emoji PartialEmoji `json:"emoji"`
28-
Title string `json:"title"`
29-
Description *string `json:"description"`
27+
ID snowflake.ID `json:"id"`
28+
ChannelIDs []snowflake.ID `json:"channel_ids"`
29+
RoleIDs []snowflake.ID `json:"role_ids"`
30+
// When creating or updating prompts and their options, this field will be broken down into 3 separate fields in the payload: https://github.com/discord/discord-api-docs/pull/6479
31+
Emoji PartialEmoji `json:"emoji"`
32+
Title string `json:"title"`
33+
Description *string `json:"description"`
34+
}
35+
36+
func (o GuildOnboardingPromptOption) MarshalJSON() ([]byte, error) {
37+
type onboardingPromptOption GuildOnboardingPromptOption
38+
return json.Marshal(struct {
39+
EmojiID *snowflake.ID `json:"emoji_id,omitempty"`
40+
EmojiName *string `json:"emoji_name,omitempty"`
41+
EmojiAnimated bool `json:"emoji_animated"`
42+
onboardingPromptOption
43+
}{
44+
EmojiID: o.Emoji.ID,
45+
EmojiName: o.Emoji.Name,
46+
EmojiAnimated: o.Emoji.Animated,
47+
onboardingPromptOption: onboardingPromptOption(o),
48+
})
3049
}
3150

3251
type GuildOnboardingPromptType int

0 commit comments

Comments
 (0)