channeldb: add context to query method
We add a context for the query method because the query method is part of the paymentDB interface and for the SQL case we will need the context for this method because the native SQL drivers demand one. So we add it for the kv implementation here as well so we can then make use of the new interface type.
This commit is contained in:
3 files changed
+21
-16
No files matched your search
@@ -2,6 +2,7 @@ package channeldb
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"fmt"
|
||||
@@ -1206,8 +1207,8 @@ func fetchFailedHtlcKeys(bucket kvdb.RBucket) ([][]byte, error) {
|
||||
// QueryPayments is a query to the payments database which is restricted
|
||||
// to a subset of payments by the payments query, containing an offset
|
||||
// index and a maximum number of returned payments.
|
||||
func (p *KVPaymentsDB) QueryPayments(query PaymentsQuery) (PaymentsResponse,
|
||||
error) {
|
||||
func (p *KVPaymentsDB) QueryPayments(_ context.Context,
|
||||
query PaymentsQuery) (PaymentsResponse, error) {
|
||||
|
||||
var resp PaymentsResponse
|
||||
|
||||
|
||||
+15
-13
@@ -1,6 +1,7 @@
|
||||
package channeldb
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"math"
|
||||
"reflect"
|
||||
@@ -348,20 +349,20 @@ func TestQueryPayments(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
db, err := MakeTestDB(t)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to init db: %v", err)
|
||||
}
|
||||
ctx := context.Background()
|
||||
|
||||
db, err := MakeTestDB(t)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Initialize the payment database.
|
||||
paymentDB := NewKVPaymentsDB(db)
|
||||
|
||||
// Make a preliminary query to make sure it's ok to
|
||||
// query when we have no payments.
|
||||
resp, err := paymentDB.QueryPayments(tt.query)
|
||||
resp, err := paymentDB.QueryPayments(ctx, tt.query)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Payments, 0)
|
||||
|
||||
@@ -389,10 +390,7 @@ func TestQueryPayments(t *testing.T) {
|
||||
err = paymentDB.InitPayment(
|
||||
info.PaymentIdentifier, info,
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("unable to initialize "+
|
||||
"payment in database: %v", err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
// Immediately delete the payment with index 2.
|
||||
if i == 1 {
|
||||
@@ -401,8 +399,10 @@ func TestQueryPayments(t *testing.T) {
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
deletePayment(t, db, info.PaymentIdentifier,
|
||||
pmt.SequenceNum)
|
||||
deletePayment(
|
||||
t, db, info.PaymentIdentifier,
|
||||
pmt.SequenceNum,
|
||||
)
|
||||
}
|
||||
|
||||
// If we are on the last payment entry, add a
|
||||
@@ -437,7 +437,9 @@ func TestQueryPayments(t *testing.T) {
|
||||
"want %v.", len(allPayments), 6)
|
||||
}
|
||||
|
||||
querySlice, err := paymentDB.QueryPayments(tt.query)
|
||||
querySlice, err := paymentDB.QueryPayments(
|
||||
ctx, tt.query,
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
+3
-1
@@ -7528,7 +7528,9 @@ func (r *rpcServer) ListPayments(ctx context.Context,
|
||||
query.MaxPayments = math.MaxUint64
|
||||
}
|
||||
|
||||
paymentsQuerySlice, err := r.server.kvPaymentsDB.QueryPayments(query)
|
||||
paymentsQuerySlice, err := r.server.kvPaymentsDB.QueryPayments(
|
||||
ctx, query,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user