Skip to content

Commit

Permalink
make backwards compatible multi-header storage
Browse files Browse the repository at this point in the history
  • Loading branch information
Aratz M. Lasa committed Sep 28, 2022
1 parent fe308a4 commit 777a7ee
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions pkg/datastore.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,7 @@ func (s *DefaultDatastore) getHeaders(ctx context.Context, key ds.Key) ([]Header
return nil, err
}

var trace []HeaderAndTrace
err = json.Unmarshal(data, &trace)
return trace, err
return s.unsmarshalHeaders(data)
}

func (s *DefaultDatastore) PutDelivered(ctx context.Context, slot Slot, trace DeliveredTrace, ttl time.Duration) error {
Expand Down Expand Up @@ -203,8 +201,8 @@ func (s *DefaultDatastore) GetHeaderBatch(ctx context.Context, queries []Query)

headerBatch := make([]HeaderAndTrace, 0, len(batch))
for _, data := range batch {
var headers []HeaderAndTrace
if err = json.Unmarshal(data, &headers); err != nil {
headers, err := s.unsmarshalHeaders(data)
if err != nil {
return nil, err
}
headerBatch = append(headerBatch, headers...)
Expand All @@ -213,6 +211,18 @@ func (s *DefaultDatastore) GetHeaderBatch(ctx context.Context, queries []Query)
return headerBatch, err
}

func (s *DefaultDatastore) unsmarshalHeaders(data []byte) ([]HeaderAndTrace, error) {
var headers []HeaderAndTrace
if err := json.Unmarshal(data, &headers); err != nil {
var header HeaderAndTrace
if err := json.Unmarshal(data, &header); err != nil {
return nil, err
}
return []HeaderAndTrace{header}, nil
}
return headers, nil
}

func (s *DefaultDatastore) PutPayload(ctx context.Context, key PayloadKey, payload *BlockBidAndTrace, ttl time.Duration) error {
data, err := json.Marshal(payload)
if err != nil {
Expand Down

0 comments on commit 777a7ee

Please sign in to comment.