diff --git a/src/ApiService/ApiService/onefuzzlib/Events.cs b/src/ApiService/ApiService/onefuzzlib/Events.cs index c5b377bfe..ae8dc31ca 100644 --- a/src/ApiService/ApiService/onefuzzlib/Events.cs +++ b/src/ApiService/ApiService/onefuzzlib/Events.cs @@ -55,34 +55,20 @@ namespace Microsoft.OneFuzz.Service { var options = EntityConverter.GetJsonSerializerOptions(); options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; 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}"); } } - internal class RemoveUserInfo : JsonConverter { + public class RemoveUserInfo : JsonConverter { 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, - //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(ref reader, newOptions); + throw new NotImplementedException(); } public override void Write(Utf8JsonWriter writer, UserInfo value, JsonSerializerOptions options) { - writer.WriteStringValue("{}"); + writer.WriteStartObject(); + writer.WriteEndObject(); } } } diff --git a/src/ApiService/Tests/RemoveUserInfoTest.cs b/src/ApiService/Tests/RemoveUserInfoTest.cs new file mode 100644 index 000000000..84116c475 --- /dev/null +++ b/src/ApiService/Tests/RemoveUserInfoTest.cs @@ -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); + } + } +}