diff options
author | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-03-03 12:09:16 +0000 |
---|---|---|
committer | Neil Alexander <neilalexander@users.noreply.github.com> | 2022-03-03 12:09:16 +0000 |
commit | 6ed8cf0e07322fd78c41b22fc94c40dfa9c6d47a (patch) | |
tree | 4c1a8efa375403551bfd0283756eec5b9bcc777e | |
parent | bcc27e9e1884add0ba272eaf2bb4c45a03f76e85 (diff) |
Handle `ErrNoRows` when sending read updates
-rw-r--r-- | syncapi/consumers/clientapi.go | 5 | ||||
-rw-r--r-- | syncapi/consumers/eduserver_receipts.go | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/syncapi/consumers/clientapi.go b/syncapi/consumers/clientapi.go index f01afce6..fcb7b5b1 100644 --- a/syncapi/consumers/clientapi.go +++ b/syncapi/consumers/clientapi.go @@ -16,6 +16,7 @@ package consumers import ( "context" + "database/sql" "encoding/json" "fmt" @@ -138,12 +139,12 @@ func (s *OutputClientDataConsumer) sendReadUpdate(ctx context.Context, userID st var readPos types.StreamPosition var fullyReadPos types.StreamPosition if output.ReadMarker.Read != "" { - if _, readPos, err = s.db.PositionInTopology(ctx, output.ReadMarker.Read); err != nil { + if _, readPos, err = s.db.PositionInTopology(ctx, output.ReadMarker.Read); err != nil && err != sql.ErrNoRows { return fmt.Errorf("s.db.PositionInTopology (Read): %w", err) } } if output.ReadMarker.FullyRead != "" { - if _, fullyReadPos, err = s.db.PositionInTopology(ctx, output.ReadMarker.FullyRead); err != nil { + if _, fullyReadPos, err = s.db.PositionInTopology(ctx, output.ReadMarker.FullyRead); err != nil && err != sql.ErrNoRows { return fmt.Errorf("s.db.PositionInTopology (FullyRead): %w", err) } } diff --git a/syncapi/consumers/eduserver_receipts.go b/syncapi/consumers/eduserver_receipts.go index 88158344..4e4c61c6 100644 --- a/syncapi/consumers/eduserver_receipts.go +++ b/syncapi/consumers/eduserver_receipts.go @@ -16,6 +16,7 @@ package consumers import ( "context" + "database/sql" "encoding/json" "fmt" @@ -129,7 +130,7 @@ func (s *OutputReceiptEventConsumer) sendReadUpdate(ctx context.Context, output } var readPos types.StreamPosition if output.EventID != "" { - if _, readPos, err = s.db.PositionInTopology(ctx, output.EventID); err != nil { + if _, readPos, err = s.db.PositionInTopology(ctx, output.EventID); err != nil && err != sql.ErrNoRows { return fmt.Errorf("s.db.PositionInTopology (Read): %w", err) } } |