private EventUser MaybeInlineUser(User user, bool inline) { if (inline) { return(user == null ? null : EventUser.FromUser(user, _config)); } return(null); }
private EventOutput MakeOutputEvent(Event e) { switch (e) { case FeatureRequestEvent fe: bool inlineUser = _config.InlineUsersInEvents || fe.Debug; return(new FeatureRequestEventOutput { Kind = fe.Debug ? "debug" : "feature", CreationDate = fe.CreationDate, Key = fe.Key, User = MaybeInlineUser(fe.User, inlineUser), UserKey = MaybeUserKey(fe.User, inlineUser), Version = fe.Version, Variation = fe.Variation, Value = fe.Value, Default = fe.Default, PrereqOf = fe.PrereqOf }); case IdentifyEvent ie: return(new IdentifyEventOutput { Kind = "identify", CreationDate = e.CreationDate, Key = e.User == null ? null : e.User.Key, User = e.User == null ? null : EventUser.FromUser(e.User, _config) }); case CustomEvent ce: return(new CustomEventOutput { Kind = "custom", CreationDate = ce.CreationDate, Key = ce.Key, User = MaybeInlineUser(ce.User, _config.InlineUsersInEvents), UserKey = MaybeUserKey(ce.User, _config.InlineUsersInEvents), Data = ce.JsonData }); case IndexEvent ie: return(new IndexEventOutput { Kind = "index", CreationDate = e.CreationDate, User = EventUser.FromUser(e.User, _config) }); } return(null); }
private void WriteUser(User user) { if (user is null) { return; } var eu = EventUser.FromUser(user, _config); _jsonWriter.WritePropertyName("user"); _jsonWriter.WriteStartObject(); MaybeWriteString("key", eu.Key); MaybeWriteString("secondary", eu.SecondaryKey); MaybeWriteString("ip", eu.IpAddress); MaybeWriteString("country", eu.Country); MaybeWriteString("firstName", eu.FirstName); MaybeWriteString("lastName", eu.LastName); MaybeWriteString("name", eu.Name); MaybeWriteString("avatar", eu.Avatar); MaybeWriteString("email", eu.Email); if (eu.Anonymous.HasValue) { _jsonWriter.WritePropertyName("anonymous"); _jsonWriter.WriteValue(eu.Anonymous.Value); } if (eu.Custom != null && eu.Custom.Count > 0) { _jsonWriter.WritePropertyName("custom"); _jsonWriter.WriteStartObject(); foreach (var kv in eu.Custom) { _jsonWriter.WritePropertyName(kv.Key); _jsonSerializer.Serialize(_jsonWriter, kv.Value); } _jsonWriter.WriteEndObject(); } if (eu.PrivateAttrs != null) { _jsonWriter.WritePropertyName("privateAttrs"); _jsonWriter.WriteStartArray(); foreach (var a in eu.PrivateAttrs) { _jsonWriter.WriteValue(a); } _jsonWriter.WriteEndArray(); } _jsonWriter.WriteEndObject(); }