in src/Elastic.Ingest.Elasticsearch/Serialization/BulkResponseItem.cs [27:59]
public override BulkResponseItem Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
//TODO nasty null return
if (reader.TokenType != JsonTokenType.StartObject) return null!;
reader.Read();
var depth = reader.CurrentDepth;
var status = 0;
ErrorCause? error = null;
var action = reader.GetString()!;
while (reader.Read() && reader.CurrentDepth >= depth)
{
if (reader.TokenType != JsonTokenType.PropertyName) continue;
var text = reader.GetString();
switch (text)
{
case "status":
reader.Read();
status = reader.GetInt32();
break;
case "error":
reader.Read();
error = JsonSerializer.Deserialize<ErrorCause>(ref reader, options);
break;
}
}
var r = status == 200
? OkayBulkResponseItem
: new BulkResponseItem { Action = action, Status = status, Error = error };
return r;
}