Browse Source

Add missing fields to new MemberInfo type (#1107)

tags/2.0
Finite Reality Christopher F 6 years ago
parent
commit
aadd6f639f
2 changed files with 41 additions and 9 deletions
  1. +18
    -0
      src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberInfo.cs
  2. +23
    -9
      src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs

+ 18
- 0
src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberInfo.cs View File

@@ -0,0 +1,18 @@
namespace Discord.Rest
{
public struct MemberInfo
{
internal MemberInfo(string nick, bool? deaf, bool? mute, string avatar_hash)
{
Nickname = nick;
Deaf = deaf;
Mute = mute;
AvatarHash = avatar_hash;
}

public string Nickname { get; }
public bool? Deaf { get; }
public bool? Mute { get; }
public string AvatarHash { get; }
}
}

+ 23
- 9
src/Discord.Net.Rest/Entities/AuditLogs/DataTypes/MemberUpdateAuditLogData.cs View File

@@ -8,28 +8,42 @@ namespace Discord.Rest
{
public class MemberUpdateAuditLogData : IAuditLogData
{
private MemberUpdateAuditLogData(IUser target, string newNick, string oldNick)
private MemberUpdateAuditLogData(IUser target, MemberInfo before, MemberInfo after)
{
Target = target;
NewNick = newNick;
OldNick = oldNick;
Before = before;
After = after;
}

internal static MemberUpdateAuditLogData Create(BaseDiscordClient discord, Model log, EntryModel entry)
{
var changes = entry.Changes.FirstOrDefault(x => x.ChangedProperty == "nick");
var changes = entry.Changes;

var newNick = changes.NewValue?.ToObject<string>();
var oldNick = changes.OldValue?.ToObject<string>();
var nickModel = changes.FirstOrDefault(x => x.ChangedProperty == "nick");
var deafModel = changes.FirstOrDefault(x => x.ChangedProperty == "deaf");
var muteModel = changes.FirstOrDefault(x => x.ChangedProperty == "mute");
var avatarModel = changes.FirstOrDefault(x => x.ChangedProperty == "avatar_hash");

string oldNick = nickModel?.OldValue?.ToObject<string>(),
newNick = nickModel?.NewValue?.ToObject<string>();
bool? oldDeaf = deafModel?.OldValue?.ToObject<bool>(),
newDeaf = deafModel?.NewValue?.ToObject<bool>();
bool? oldMute = muteModel?.OldValue?.ToObject<bool>(),
newMute = muteModel?.NewValue?.ToObject<bool>();
string oldAvatar = avatarModel?.OldValue?.ToObject<string>(),
newAvatar = avatarModel?.NewValue?.ToObject<string>();

var targetInfo = log.Users.FirstOrDefault(x => x.Id == entry.TargetId);
var user = RestUser.Create(discord, targetInfo);

return new MemberUpdateAuditLogData(user, newNick, oldNick);
var before = new MemberInfo(oldNick, oldDeaf, oldMute, oldAvatar);
var after = new MemberInfo(newNick, newDeaf, newMute, newAvatar);

return new MemberUpdateAuditLogData(user, before, after);
}

public IUser Target { get; }
public string NewNick { get; }
public string OldNick { get; }
public MemberInfo Before { get; }
public MemberInfo After { get; }
}
}

Loading…
Cancel
Save