adds GuildAuditLog() (#504)
* adds GuildAuditLogs() * adds missing comments to GuildAuditLog
This commit is contained in:
parent
b58212ae33
commit
18dfe540ad
3 changed files with 113 additions and 0 deletions
|
@ -88,6 +88,7 @@ var (
|
||||||
EndpointGuildIcon = func(gID, hash string) string { return EndpointCDNIcons + gID + "/" + hash + ".png" }
|
EndpointGuildIcon = func(gID, hash string) string { return EndpointCDNIcons + gID + "/" + hash + ".png" }
|
||||||
EndpointGuildSplash = func(gID, hash string) string { return EndpointCDNSplashes + gID + "/" + hash + ".png" }
|
EndpointGuildSplash = func(gID, hash string) string { return EndpointCDNSplashes + gID + "/" + hash + ".png" }
|
||||||
EndpointGuildWebhooks = func(gID string) string { return EndpointGuilds + gID + "/webhooks" }
|
EndpointGuildWebhooks = func(gID string) string { return EndpointGuilds + gID + "/webhooks" }
|
||||||
|
EndpointGuildAuditLogs = func(gID string) string { return EndpointGuilds + gID + "/audit-logs" }
|
||||||
|
|
||||||
EndpointChannel = func(cID string) string { return EndpointChannels + cID }
|
EndpointChannel = func(cID string) string { return EndpointChannels + cID }
|
||||||
EndpointChannelPermissions = func(cID string) string { return EndpointChannels + cID + "/permissions" }
|
EndpointChannelPermissions = func(cID string) string { return EndpointChannels + cID + "/permissions" }
|
||||||
|
|
36
restapi.go
36
restapi.go
|
@ -1206,6 +1206,42 @@ func (s *Session) GuildEmbedEdit(guildID string, enabled bool, channelID string)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GuildAuditLog returns the audit log for a Guild.
|
||||||
|
// guildID : The ID of a Guild.
|
||||||
|
// userID : If provided the log will be filtered for the given ID.
|
||||||
|
// beforeID : If provided all log entries returned will be before the given ID.
|
||||||
|
// actionType : If provided the log will be filtered for the given Action Type.
|
||||||
|
// limit : The number messages that can be returned. (default 50, min 1, max 100)
|
||||||
|
func (s *Session) GuildAuditLog(guildID, userID, beforeID string, actionType, limit int) (st *GuildAuditLog, err error) {
|
||||||
|
|
||||||
|
uri := EndpointGuildAuditLogs(guildID)
|
||||||
|
|
||||||
|
v := url.Values{}
|
||||||
|
if userID != "" {
|
||||||
|
v.Set("user_id", userID)
|
||||||
|
}
|
||||||
|
if beforeID != "" {
|
||||||
|
v.Set("before", beforeID)
|
||||||
|
}
|
||||||
|
if actionType > 0 {
|
||||||
|
v.Set("action_type", strconv.Itoa(actionType))
|
||||||
|
}
|
||||||
|
if limit > 0 {
|
||||||
|
v.Set("limit", strconv.Itoa(limit))
|
||||||
|
}
|
||||||
|
if len(v) > 0 {
|
||||||
|
uri = fmt.Sprintf("%s?%s", uri, v.Encode())
|
||||||
|
}
|
||||||
|
|
||||||
|
body, err := s.RequestWithBucketID("GET", uri, nil, EndpointGuildAuditLogs(guildID))
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = unmarshal(body, &st)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Functions specific to Discord Channels
|
// Functions specific to Discord Channels
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
|
76
structs.go
76
structs.go
|
@ -494,6 +494,82 @@ type GuildEmbed struct {
|
||||||
ChannelID string `json:"channel_id"`
|
ChannelID string `json:"channel_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// A GuildAuditLog stores data for a guild audit log.
|
||||||
|
type GuildAuditLog struct {
|
||||||
|
Webhooks []struct {
|
||||||
|
ChannelID string `json:"channel_id"`
|
||||||
|
GuildID string `json:"guild_id"`
|
||||||
|
ID string `json:"id"`
|
||||||
|
Avatar string `json:"avatar"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
} `json:"webhooks,omitempty"`
|
||||||
|
Users []struct {
|
||||||
|
Username string `json:"username"`
|
||||||
|
Discriminator string `json:"discriminator"`
|
||||||
|
Bot bool `json:"bot"`
|
||||||
|
ID string `json:"id"`
|
||||||
|
Avatar string `json:"avatar"`
|
||||||
|
} `json:"users,omitempty"`
|
||||||
|
AuditLogEntries []struct {
|
||||||
|
TargetID string `json:"target_id"`
|
||||||
|
Changes []struct {
|
||||||
|
NewValue interface{} `json:"new_value"`
|
||||||
|
OldValue interface{} `json:"old_value"`
|
||||||
|
Key string `json:"key"`
|
||||||
|
} `json:"changes,omitempty"`
|
||||||
|
UserID string `json:"user_id"`
|
||||||
|
ID string `json:"id"`
|
||||||
|
ActionType int `json:"action_type"`
|
||||||
|
Options struct {
|
||||||
|
DeleteMembersDay string `json:"delete_member_days"`
|
||||||
|
MembersRemoved string `json:"members_removed"`
|
||||||
|
ChannelID string `json:"channel_id"`
|
||||||
|
Count string `json:"count"`
|
||||||
|
ID string `json:"id"`
|
||||||
|
Type string `json:"type"`
|
||||||
|
RoleName string `json:"role_name"`
|
||||||
|
} `json:"options,omitempty"`
|
||||||
|
Reason string `json:"reason"`
|
||||||
|
} `json:"audit_log_entries"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Block contains Discord Audit Log Action Types
|
||||||
|
const (
|
||||||
|
AuditLogActionGuildUpdate = 1
|
||||||
|
|
||||||
|
AuditLogActionChannelCreate = 10
|
||||||
|
AuditLogActionChannelUpdate = 11
|
||||||
|
AuditLogActionChannelDelete = 12
|
||||||
|
AuditLogActionChannelOverwriteCreate = 13
|
||||||
|
AuditLogActionChannelOverwriteUpdate = 14
|
||||||
|
AuditLogActionChannelOverwriteDelete = 15
|
||||||
|
|
||||||
|
AuditLogActionMemberKick = 20
|
||||||
|
AuditLogActionMemberPrune = 21
|
||||||
|
AuditLogActionMemberBanAdd = 22
|
||||||
|
AuditLogActionMemberBanRemove = 23
|
||||||
|
AuditLogActionMemberUpdate = 24
|
||||||
|
AuditLogActionMemberRoleUpdate = 25
|
||||||
|
|
||||||
|
AuditLogActionRoleCreate = 30
|
||||||
|
AuditLogActionRoleUpdate = 31
|
||||||
|
AuditLogActionRoleDelete = 32
|
||||||
|
|
||||||
|
AuditLogActionInviteCreate = 40
|
||||||
|
AuditLogActionInviteUpdate = 41
|
||||||
|
AuditLogActionInviteDelete = 42
|
||||||
|
|
||||||
|
AuditLogActionWebhookCreate = 50
|
||||||
|
AuditLogActionWebhookUpdate = 51
|
||||||
|
AuditLogActionWebhookDelete = 52
|
||||||
|
|
||||||
|
AuditLogActionEmojiCreate = 60
|
||||||
|
AuditLogActionEmojiUpdate = 61
|
||||||
|
AuditLogActionEmojiDelete = 62
|
||||||
|
|
||||||
|
AuditLogActionMessageDelete = 72
|
||||||
|
)
|
||||||
|
|
||||||
// A UserGuildSettingsChannelOverride stores data for a channel override for a users guild settings.
|
// A UserGuildSettingsChannelOverride stores data for a channel override for a users guild settings.
|
||||||
type UserGuildSettingsChannelOverride struct {
|
type UserGuildSettingsChannelOverride struct {
|
||||||
Muted bool `json:"muted"`
|
Muted bool `json:"muted"`
|
||||||
|
|
Loading…
Reference in a new issue