Skip to content

Commit c40b87b

Browse files
authored
Make the Audit Log Change Key typed and add constants for its possible values (#377)
* fix: make AuditLogChange.Key typed with constants instead of just a string. * chore: move type declaration to immediately before related definitions. --------- Co-authored-by: Vegard Berg <[email protected]>
1 parent 637a92b commit c40b87b

File tree

1 file changed

+100
-1
lines changed

1 file changed

+100
-1
lines changed

discord/audit_log.go

Lines changed: 100 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,105 @@ const (
122122
AuditLogHomeSettingsUpdate
123123
)
124124

125+
// AuditLogChangeKey is a string representing a key in the audit log change object.
126+
type AuditLogChangeKey string
127+
128+
const (
129+
AuditLogChangeKeyAFKChannelID AuditLogChangeKey = "afk_channel_id"
130+
AuditLogChangeKeyAFKTimeout AuditLogChangeKey = "afk_timeout"
131+
// AuditLogChangeKeyAllow is sent when a role's permission overwrites changed (stringy int)
132+
AuditLogChangeKeyAllow AuditLogChangeKey = "allow"
133+
AuditLogChangeKeyApplicationID AuditLogChangeKey = "application_id"
134+
// AuditLogChangeKeyArchived is sent when a channel thread is archived/unarchived (bool)
135+
AuditLogChangeKeyArchived AuditLogChangeKey = "archived"
136+
AuditLogChangeKeyAsset AuditLogChangeKey = "asset"
137+
// AuditLogChangeKeyAutoArchiveDuration is sent when a thread's auto archive duration is changed (int)
138+
AuditLogChangeKeyAutoArchiveDuration AuditLogChangeKey = "auto_archive_duration"
139+
AuditLogChangeKeyAvailable AuditLogChangeKey = "available"
140+
AuditLogChangeKeyAvatarHash AuditLogChangeKey = "avatar_hash"
141+
AuditLogChangeKeyBannerHash AuditLogChangeKey = "banner_hash"
142+
AuditLogChangeKeyBitrate AuditLogChangeKey = "bitrate"
143+
AuditLogChangeKeyChannelID AuditLogChangeKey = "channel_id"
144+
AuditLogChangeKeyCode AuditLogChangeKey = "code"
145+
// AuditLogChangeKeyColor is sent when a role's color is changed (int)
146+
AuditLogChangeKeyColor AuditLogChangeKey = "color"
147+
// AuditLogChangeKeyCommunicationDisabledUntil is sent when a user's communication disabled until datetime is changed (stringy ISO8601 datetime)
148+
AuditLogChangeKeyCommunicationDisabledUntil AuditLogChangeKey = "communication_disabled_until"
149+
// AuditLogChangeKeyDeaf is sent when a user is set to be server deafened/undeafened (bool)
150+
AuditLogChangeKeyDeaf AuditLogChangeKey = "deaf"
151+
AuditLogChangeKeyDefaultAutoArchiveDuration AuditLogChangeKey = "default_auto_archive_duration"
152+
AuditLogChangeKeyDefaultMessageNotifications AuditLogChangeKey = "default_message_notifications"
153+
// AuditLogChangeKeyDeny is sent when a role's permission overwrites changed (stringed int)
154+
AuditLogChangeKeyDeny AuditLogChangeKey = "deny"
155+
AuditLogChangeKeyDescription AuditLogChangeKey = "description"
156+
AuditLogChangeKeyDiscoverySplashHash AuditLogChangeKey = "discovery_splash_hash"
157+
AuditLogChangeKeyEnableEmoticons AuditLogChangeKey = "enable_emoticons"
158+
AuditLogChangeKeyEntityType AuditLogChangeKey = "entity_type"
159+
AuditLogChangeKeyExpireBehavior AuditLogChangeKey = "expire_behavior"
160+
AuditLogChangeKeyExpireGracePeriod AuditLogChangeKey = "expire_grace_period"
161+
AuditLogChangeKeyExplicitContentFilter AuditLogChangeKey = "explicit_content_filter"
162+
AuditLogChangeKeyFormatType AuditLogChangeKey = "format_type"
163+
AuditLogChangeKeyGuildID AuditLogChangeKey = "guild_id"
164+
// AuditLogChangeKeyHoist is sent when a role is set to be displayed separately from online members (bool)
165+
AuditLogChangeKeyHoist AuditLogChangeKey = "hoist"
166+
AuditLogChangeKeyIconHash AuditLogChangeKey = "icon_hash"
167+
AuditLogChangeKeyID AuditLogChangeKey = "id"
168+
AuditLogChangeKeyInvitable AuditLogChangeKey = "invitable"
169+
AuditLogChangeKeyInviterID AuditLogChangeKey = "inviter_id"
170+
AuditLogChangeKeyLocation AuditLogChangeKey = "location"
171+
// AuditLogChangeKeyLocked is sent when a channel thread is locked/unlocked (bool)
172+
AuditLogChangeKeyLocked AuditLogChangeKey = "locked"
173+
AuditLogChangeKeyMaxAge AuditLogChangeKey = "max_age"
174+
AuditLogChangeKeyMaxUses AuditLogChangeKey = "max_uses"
175+
// AuditLogChangeKeyMentionable is sent when a role changes its mentionable state (bool)
176+
AuditLogChangeKeyMentionable AuditLogChangeKey = "mentionable"
177+
AuditLogChangeKeyMFALevel AuditLogChangeKey = "mfa_level"
178+
// AuditLogChangeKeyMute is sent when a user is server muted/unmuted (bool)
179+
AuditLogChangeKeyMute AuditLogChangeKey = "mute"
180+
AuditLogChangeKeyName AuditLogChangeKey = "name"
181+
// AuditLogChangeKeyNick is sent when a user's nickname is changed (string)
182+
AuditLogChangeKeyNick AuditLogChangeKey = "nick"
183+
AuditLogChangeKeyNSFW AuditLogChangeKey = "nsfw"
184+
// AuditLogChangeKeyOwnerID is sent when owner id of a guild changed (snowflake.ID)
185+
AuditLogChangeKeyOwnerID AuditLogChangeKey = "owner_id"
186+
// AuditLogChangeKeyPermissionOverwrites is sent when a role's permission overwrites changed (string)
187+
AuditLogChangeKeyPermissionOverwrites AuditLogChangeKey = "permission_overwrites"
188+
// AuditLogChangeKeyPermissions is sent when a role's permissions changed (string)
189+
AuditLogChangeKeyPermissions AuditLogChangeKey = "permissions"
190+
// AuditLogChangeKeyPosition is sent when channel position changed (int)
191+
AuditLogChangeKeyPosition AuditLogChangeKey = "position"
192+
AuditLogChangeKeyPreferredLocale AuditLogChangeKey = "preferred_locale"
193+
AuditLogChangeKeyPrivacyLevel AuditLogChangeKey = "privacy_level"
194+
AuditLogChangeKeyPruneDeleteDays AuditLogChangeKey = "prune_delete_days"
195+
AuditLogChangeKeyPublicUpdatesChannelID AuditLogChangeKey = "public_updates_channel_id"
196+
AuditLogChangeKeyRateLimitPerUser AuditLogChangeKey = "rate_limit_per_user"
197+
AuditLogChangeKeyRegion AuditLogChangeKey = "region"
198+
AuditLogChangeKeyRulesChannelID AuditLogChangeKey = "rules_channel_id"
199+
AuditLogChangeKeySplashHash AuditLogChangeKey = "splash_hash"
200+
AuditLogChangeKeyStatus AuditLogChangeKey = "status"
201+
// AuditLogChangeKeySystemChannelID is sent when system channel id of a guild changed (snowflake.ID)
202+
AuditLogChangeKeySystemChannelID AuditLogChangeKey = "system_channel_id"
203+
AuditLogChangeKeyTags AuditLogChangeKey = "tags"
204+
AuditLogChangeKeyTemporary AuditLogChangeKey = "temporary"
205+
// AuditLogChangeKeyTopic is sent when channel topic changed (string)
206+
AuditLogChangeKeyTopic AuditLogChangeKey = "topic"
207+
AuditLogChangeKeyType AuditLogChangeKey = "type"
208+
AuditLogChangeKeyUnicodeEmoji AuditLogChangeKey = "unicode_emoji"
209+
// AuditLogChangeKeyUserLimit is sent when user limit of a voice channel changed (int)
210+
AuditLogChangeKeyUserLimit AuditLogChangeKey = "user_limit"
211+
AuditLogChangeKeyUses AuditLogChangeKey = "uses"
212+
AuditLogChangeKeyVanityURLCode AuditLogChangeKey = "vanity_url_code"
213+
// AuditLogChangeKeyVerificationLevel is sent when verification level of the server changed (int)
214+
AuditLogChangeKeyVerificationLevel AuditLogChangeKey = "verification_level"
215+
AuditLogChangeKeyWidgetChannelID AuditLogChangeKey = "widget_channel_id"
216+
// AuditLogChangeKeyWidgetEnabled is sent when a server widget is enabled/disabled (bool)
217+
AuditLogChangeKeyWidgetEnabled AuditLogChangeKey = "widget_enabled"
218+
// AuditLogChangeKeyRoleAdd is sent when roles are added to a user (array of discord.PartialRole JSON)
219+
AuditLogChangeKeyRoleAdd AuditLogChangeKey = "$add"
220+
// AuditLogChangeKeyRoleRemove is sent when roles are removed from a user (array of discord.PartialRole JSON)
221+
AuditLogChangeKeyRoleRemove AuditLogChangeKey = "$remove"
222+
)
223+
125224
// AuditLog (https://discord.com/developers/docs/resources/audit-log) These are logs of events that occurred, accessible via the Discord
126225
type AuditLog struct {
127226
ApplicationCommands []ApplicationCommand `json:"application_commands"`
@@ -190,7 +289,7 @@ type AuditLogChange struct {
190289
// OldValue is the old value of the key before the change as a json.RawMessage.
191290
OldValue json.RawMessage `json:"old_value"`
192291
// Key is the key of the change.
193-
Key string `json:"key"`
292+
Key AuditLogChangeKey `json:"key"`
194293
}
195294

196295
// UnmarshalNewValue unmarshals the NewValue field into the provided type.

0 commit comments

Comments
 (0)