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" }
|
||||
EndpointGuildSplash = func(gID, hash string) string { return EndpointCDNSplashes + gID + "/" + hash + ".png" }
|
||||
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 }
|
||||
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
|
||||
}
|
||||
|
||||
// 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
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
|
|
76
structs.go
76
structs.go
|
@ -494,6 +494,82 @@ type GuildEmbed struct {
|
|||
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.
|
||||
type UserGuildSettingsChannelOverride struct {
|
||||
Muted bool `json:"muted"`
|
||||
|
|
Loading…
Reference in a new issue