unistore: refactor get to return a reader (#107951)

This commit is contained in:
Georges Chaudy
2025-07-11 11:10:19 +02:00
committed by GitHub
parent a314b99589
commit ea0ddb3fc9
7 changed files with 48 additions and 65 deletions
+7 -6
View File
@@ -147,16 +147,15 @@ func (n *eventStore) Get(ctx context.Context, key EventKey) (Event, error) {
return Event{}, fmt.Errorf("invalid event key: %w", err)
}
obj, err := n.kv.Get(ctx, eventsSection, key.String())
reader, err := n.kv.Get(ctx, eventsSection, key.String())
if err != nil {
return Event{}, err
}
defer func() { _ = reader.Close() }()
var event Event
if err = json.NewDecoder(obj.Value).Decode(&event); err != nil {
_ = obj.Value.Close()
if err = json.NewDecoder(reader).Decode(&event); err != nil {
return Event{}, err
}
defer func() { _ = obj.Value.Close() }()
return event, nil
}
@@ -173,14 +172,16 @@ func (n *eventStore) ListSince(ctx context.Context, sinceRV int64) iter.Seq2[Eve
if err != nil {
return
}
obj, err := n.kv.Get(ctx, eventsSection, key)
reader, err := n.kv.Get(ctx, eventsSection, key)
if err != nil {
return
}
var event Event
if err := json.NewDecoder(obj.Value).Decode(&event); err != nil {
if err := json.NewDecoder(reader).Decode(&event); err != nil {
_ = reader.Close()
return
}
_ = reader.Close()
if !yield(event, nil) {
return
}