Skip to content

Commit 25685c9

Browse files
sebm253mlnrDev
andauthored
Add guild incidents (#303)
* Add guild incidents * add incident message types * add new fields * make new types deletable * reformat --------- Co-authored-by: mlnrDev <[email protected]>
1 parent e5d0cac commit 25685c9

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

discord/guild.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ type Guild struct {
166166
PremiumProgressBarEnabled bool `json:"premium_progress_bar_enabled"`
167167
JoinedAt time.Time `json:"joined_at"`
168168
SafetyAlertsChannelID *snowflake.ID `json:"safety_alerts_channel_id"`
169+
IncidentsData *GuildIncidentsData `json:"incidents_data"`
169170

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

323+
type GuildIncidentsData struct {
324+
InvitesDisabledUntil *time.Time `json:"invites_disabled_until"`
325+
DMsDisabledUntil *time.Time `json:"dms_disabled_until"`
326+
DMSpamDetectedAt *time.Time `json:"dm_spam_detected_at"`
327+
RaidDetectedAt *time.Time `json:"raid_detected_at"`
328+
}
329+
330+
type GuildIncidentActionsUpdate struct {
331+
InvitesDisabledUntil *json.Nullable[time.Time] `json:"invites_disabled_until,omitempty"`
332+
DMsDisabledUntil *json.Nullable[time.Time] `json:"dms_disabled_until,omitempty"`
333+
}
334+
322335
// GuildCreate is the payload used to create a Guild
323336
type GuildCreate struct {
324337
Name string `json:"name"`

discord/message.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,18 @@ const (
5050
_
5151
MessageTypeStageTopic
5252
MessageTypeGuildApplicationPremiumSubscription
53-
MessageTypePurchaseNotification MessageType = iota + 11
53+
_
54+
_
55+
_
56+
MessageTypeGuildIncidentAlertModeEnabled
57+
MessageTypeGuildIncidentAlertModeDisabled
58+
MessageTypeGuildIncidentReportRaid
59+
MessageTypeGuildIncidentReportFalseAlarm
60+
_
61+
_
62+
_
63+
_
64+
MessageTypePurchaseNotification
5465
_
5566
MessageTypePollResult
5667
)

rest/guilds.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ type Guilds interface {
6060

6161
GetGuildOnboarding(guildID snowflake.ID, opts ...RequestOpt) (*discord.GuildOnboarding, error)
6262
UpdateGuildOnboarding(guildID snowflake.ID, onboardingUpdate discord.GuildOnboardingUpdate, opts ...RequestOpt) (*discord.GuildOnboarding, error)
63+
64+
UpdateGuildIncidentActions(guildID snowflake.ID, actionsUpdate discord.GuildIncidentActionsUpdate, opts ...RequestOpt) (*discord.GuildIncidentsData, error)
6365
}
6466

6567
type guildImpl struct {
@@ -310,3 +312,8 @@ func (s *guildImpl) UpdateGuildOnboarding(guildID snowflake.ID, onboardingUpdate
310312
err = s.client.Do(UpdateGuildOnboarding.Compile(nil, guildID), onboardingUpdate, &guildOnboarding, opts...)
311313
return
312314
}
315+
316+
func (s *guildImpl) UpdateGuildIncidentActions(guildID snowflake.ID, actionsUpdate discord.GuildIncidentActionsUpdate, opts ...RequestOpt) (incidentsData *discord.GuildIncidentsData, err error) {
317+
err = s.client.Do(UpdateGuildIncidentActions.Compile(nil, guildID), actionsUpdate, &incidentsData, opts...)
318+
return
319+
}

rest/rest_endpoints.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ var (
9292
GetGuildOnboarding = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/onboarding")
9393
UpdateGuildOnboarding = NewEndpoint(http.MethodPut, "/guilds/{guild.id}/onboarding")
9494

95+
UpdateGuildIncidentActions = NewEndpoint(http.MethodPut, "/guilds/{guild.id}/incident-actions")
96+
9597
GetCurrentUserVoiceState = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/voice-states/@me")
9698
GetUserVoiceState = NewEndpoint(http.MethodGet, "/guilds/{guild.id}/voice-states/{user.id}")
9799
UpdateCurrentUserVoiceState = NewEndpoint(http.MethodPatch, "/guilds/{guild.id}/voice-states/@me")

0 commit comments

Comments
 (0)