fix event logging (#1860)

Co-authored-by: Noah McGregor Harper <74685766+nharper285@users.noreply.github.com>
This commit is contained in:
Cheick Keita
2022-04-27 21:20:48 -07:00
committed by GitHub
parent 016a525dfb
commit b28e1c78a6
2 changed files with 24 additions and 19 deletions

View File

@ -55,34 +55,20 @@ namespace Microsoft.OneFuzz.Service {
var options = EntityConverter.GetJsonSerializerOptions(); var options = EntityConverter.GetJsonSerializerOptions();
options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
options.Converters.Add(new RemoveUserInfo()); options.Converters.Add(new RemoveUserInfo());
var serializedEvent = JsonSerializer.Serialize(anEvent, options); var serializedEvent = JsonSerializer.Serialize(anEvent, anEvent.GetType(), options);
_log.WithTag("Event Type", eventType.ToString()).Info($"sending event: {eventType} - {serializedEvent}"); _log.WithTag("Event Type", eventType.ToString()).Info($"sending event: {eventType} - {serializedEvent}");
} }
} }
internal class RemoveUserInfo : JsonConverter<UserInfo> { public class RemoveUserInfo : JsonConverter<UserInfo> {
public override UserInfo? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { public override UserInfo? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {
//TODO: I might be wrong but seems like better way of doing this is to have a separate type, throw new NotImplementedException();
//that if object of the type - then ignore user info...
var newOptions = new JsonSerializerOptions(options);
RemoveUserInfo? self = null;
foreach (var converter in newOptions.Converters) {
if (converter is RemoveUserInfo) {
self = (RemoveUserInfo)converter;
break;
}
}
if (self != null) {
newOptions.Converters.Remove(self);
}
return JsonSerializer.Deserialize<UserInfo>(ref reader, newOptions);
} }
public override void Write(Utf8JsonWriter writer, UserInfo value, JsonSerializerOptions options) { public override void Write(Utf8JsonWriter writer, UserInfo value, JsonSerializerOptions options) {
writer.WriteStringValue("{}"); writer.WriteStartObject();
writer.WriteEndObject();
} }
} }
} }

View File

@ -0,0 +1,19 @@
using System;
using System.Text.Json;
using Microsoft.OneFuzz.Service;
using Xunit;
namespace Tests {
public class RemoveUserInfoTest {
[Fact]
void TestSerilize() {
var userInfo = new UserInfo(Guid.NewGuid(), Guid.NewGuid(), "test");
var options = new JsonSerializerOptions();
options.Converters.Add(new RemoveUserInfo());
var serialized = JsonSerializer.Serialize(userInfo, options);
Assert.Equal("{}", serialized);
}
}
}