diff --git a/src/Discord.Net.Core/Entities/Webhooks/WebhookType.cs b/src/Discord.Net.Core/Entities/Webhooks/WebhookType.cs new file mode 100644 index 000000000..0ddfa393d --- /dev/null +++ b/src/Discord.Net.Core/Entities/Webhooks/WebhookType.cs @@ -0,0 +1,14 @@ +namespace Discord +{ + /// + /// Represents the type of a webhook. + /// + /// + /// This type is currently unused, and is only returned in audit log responses. + /// + public enum WebhookType + { + /// An incoming webhook + Incoming = 1 + } +} diff --git a/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs b/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs index c5b229337..65b401cce 100644 --- a/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs +++ b/src/Discord.Net.Rest/API/Common/AuditLogOptions.cs @@ -2,20 +2,19 @@ namespace Discord.API { - //TODO: Complete this with all possible values for options internal class AuditLogOptions { //Message delete [JsonProperty("count")] - public int? MessageDeleteCount { get; set; } //TODO: what type of int? (returned as string) + public int? MessageDeleteCount { get; set; } [JsonProperty("channel_id")] public ulong? MessageDeleteChannelId { get; set; } //Prune [JsonProperty("delete_member_days")] - public int? PruneDeleteMemberDays { get; set; } //TODO: what type of int? (returned as string) + public int? PruneDeleteMemberDays { get; set; } [JsonProperty("members_removed")] - public int? PruneMembersRemoved { get; set; } //TODO: what type of int? (returned as string) + public int? PruneMembersRemoved { get; set; } //Overwrite Update [JsonProperty("role_name")] diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs index c1ff302b0..1ae45fb8c 100644 --- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs +++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookCreateAuditLogData.cs @@ -7,10 +7,11 @@ namespace Discord.Rest { public class WebhookCreateAuditLogData : IAuditLogData { - private WebhookCreateAuditLogData(IWebhook webhook, string name, ulong channelId) + private WebhookCreateAuditLogData(IWebhook webhook, WebhookType type, string name, ulong channelId) { Webhook = webhook; Name = name; + Type = type; ChannelId = channelId; } @@ -23,19 +24,20 @@ namespace Discord.Rest var nameModel = changes.FirstOrDefault(x => x.ChangedProperty == "name"); var channelId = channelIdModel.NewValue.ToObject(); - var type = typeModel.NewValue.ToObject(); //TODO: what on *earth* is this for + var type = typeModel.NewValue.ToObject(); var name = nameModel.NewValue.ToObject(); var webhookInfo = log.Webhooks?.FirstOrDefault(x => x.Id == entry.TargetId); var webhook = RestWebhook.Create(discord, (IGuild)null, webhookInfo); - return new WebhookCreateAuditLogData(webhook, name, channelId); + return new WebhookCreateAuditLogData(webhook, type, name, channelId); } //Corresponds to the *current* data public IWebhook Webhook { get; } //Corresponds to the *audit log* data + public WebhookType Type { get; } public string Name { get; } public ulong ChannelId { get; } } diff --git a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs index 16a648204..4133d5dff 100644 --- a/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs +++ b/src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/WebhookDeleteAuditLogData.cs @@ -11,11 +11,12 @@ namespace Discord.Rest { public class WebhookDeleteAuditLogData : IAuditLogData { - private WebhookDeleteAuditLogData(ulong id, ulong channel, string name, string avatar) + private WebhookDeleteAuditLogData(ulong id, ulong channel, WebhookType type, string name, string avatar) { WebhookId = id; ChannelId = channel; Name = name; + Type = type; Avatar = avatar; } @@ -29,15 +30,16 @@ namespace Discord.Rest var avatarHashModel = changes.FirstOrDefault(x => x.ChangedProperty == "avatar_hash"); var channelId = channelIdModel.OldValue.ToObject(); - var type = typeModel.OldValue.ToObject(); //TODO: what on *earth* is this for + var type = typeModel.OldValue.ToObject(); var name = nameModel.OldValue.ToObject(); var avatarHash = avatarHashModel?.OldValue?.ToObject(); - return new WebhookDeleteAuditLogData(entry.TargetId.Value, channelId, name, avatarHash); + return new WebhookDeleteAuditLogData(entry.TargetId.Value, channelId, type, name, avatarHash); } public ulong WebhookId { get; } public ulong ChannelId { get; } + public WebhookType Type { get; } public string Name { get; } public string Avatar { get; } }