Skip to content

Commit

Permalink
Add guild incidents (#303)
Browse files Browse the repository at this point in the history
* Add guild incidents

* add incident message types

* add new fields

* make new types deletable

* reformat

---------

Co-authored-by: mlnrDev <[email protected]>
  • Loading branch information
sebm253 and mlnrDev authored Jan 24, 2025
1 parent e5d0cac commit 25685c9
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 1 deletion.
13 changes: 13 additions & 0 deletions discord/guild.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ type Guild struct {
PremiumProgressBarEnabled bool `json:"premium_progress_bar_enabled"`
JoinedAt time.Time `json:"joined_at"`
SafetyAlertsChannelID *snowflake.ID `json:"safety_alerts_channel_id"`
IncidentsData *GuildIncidentsData `json:"incidents_data"`

// only over GET /guilds/{guild.id}
ApproximateMemberCount int `json:"approximate_member_count"`
Expand Down Expand Up @@ -319,6 +320,18 @@ type GuildPreview struct {
Stickers []Sticker `json:"stickers"`
}

type GuildIncidentsData struct {
InvitesDisabledUntil *time.Time `json:"invites_disabled_until"`
DMsDisabledUntil *time.Time `json:"dms_disabled_until"`
DMSpamDetectedAt *time.Time `json:"dm_spam_detected_at"`
RaidDetectedAt *time.Time `json:"raid_detected_at"`
}

type GuildIncidentActionsUpdate struct {
InvitesDisabledUntil *json.Nullable[time.Time] `json:"invites_disabled_until,omitempty"`
DMsDisabledUntil *json.Nullable[time.Time] `json:"dms_disabled_until,omitempty"`
}

// GuildCreate is the payload used to create a Guild
type GuildCreate struct {
Name string `json:"name"`
Expand Down
13 changes: 12 additions & 1 deletion discord/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,18 @@ const (
_
MessageTypeStageTopic
MessageTypeGuildApplicationPremiumSubscription
MessageTypePurchaseNotification MessageType = iota + 11
_
_
_
MessageTypeGuildIncidentAlertModeEnabled
MessageTypeGuildIncidentAlertModeDisabled
MessageTypeGuildIncidentReportRaid
MessageTypeGuildIncidentReportFalseAlarm
_
_
_
_
MessageTypePurchaseNotification
_
MessageTypePollResult
)
Expand Down
7 changes: 7 additions & 0 deletions rest/guilds.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ type Guilds interface {

GetGuildOnboarding(guildID snowflake.ID, opts ...RequestOpt) (*discord.GuildOnboarding, error)
UpdateGuildOnboarding(guildID snowflake.ID, onboardingUpdate discord.GuildOnboardingUpdate, opts ...RequestOpt) (*discord.GuildOnboarding, error)

UpdateGuildIncidentActions(guildID snowflake.ID, actionsUpdate discord.GuildIncidentActionsUpdate, opts ...RequestOpt) (*discord.GuildIncidentsData, error)
}

type guildImpl struct {
Expand Down Expand Up @@ -310,3 +312,8 @@ func (s *guildImpl) UpdateGuildOnboarding(guildID snowflake.ID, onboardingUpdate
err = s.client.Do(UpdateGuildOnboarding.Compile(nil, guildID), onboardingUpdate, &guildOnboarding, opts...)
return
}

func (s *guildImpl) UpdateGuildIncidentActions(guildID snowflake.ID, actionsUpdate discord.GuildIncidentActionsUpdate, opts ...RequestOpt) (incidentsData *discord.GuildIncidentsData, err error) {
err = s.client.Do(UpdateGuildIncidentActions.Compile(nil, guildID), actionsUpdate, &incidentsData, opts...)
return
}
2 changes: 2 additions & 0 deletions rest/rest_endpoints.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ var (
GetGuildOnboarding = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/onboarding")
UpdateGuildOnboarding = NewEndpoint(http.MethodPut, "/guilds/{guild.id}/onboarding")

UpdateGuildIncidentActions = NewEndpoint(http.MethodPut, "/guilds/{guild.id}/incident-actions")

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

0 comments on commit 25685c9

Please sign in to comment.