diff --git a/internal/storage/ledger/logs_test.go b/internal/storage/ledger/logs_test.go index 1876bd76a..7c82a71e7 100644 --- a/internal/storage/ledger/logs_test.go +++ b/internal/storage/ledger/logs_test.go @@ -239,4 +239,13 @@ func TestLogsList(t *testing.T) { // Should get only the second log, as StartTime is inclusive and EndTime exclusive. require.Len(t, cursor.Data, 1) require.EqualValues(t, 2, *cursor.Data[0].ID) + + cursor, err = store.Logs().Paginate(context.Background(), ledgercontroller.ColumnPaginatedQuery[any]{ + PageSize: 10, + Options: ledgercontroller.ResourceQuery[any]{ + Builder: query.Lt("id", 3), + }, + }) + require.NoError(t, err) + require.Equal(t, 2, len(cursor.Data)) } diff --git a/internal/storage/ledger/resource_logs.go b/internal/storage/ledger/resource_logs.go index 3c2b6d361..544912a22 100644 --- a/internal/storage/ledger/resource_logs.go +++ b/internal/storage/ledger/resource_logs.go @@ -15,6 +15,9 @@ func (h logsResourceHandler) filters() []filter { // todo: add validators name: "date", }, + { + name: "id", + }, } } @@ -27,7 +30,7 @@ func (h logsResourceHandler) buildDataset(store *Store, _ repositoryHandlerBuild func (h logsResourceHandler) resolveFilter(_ *Store, _ ledgercontroller.ResourceQuery[any], operator, property string, value any) (string, []any, error) { switch { - case property == "date": + case property == "date" || property == "id": return fmt.Sprintf("%s %s ?", property, convertOperatorToSQL(operator)), []any{value}, nil default: return "", nil, fmt.Errorf("unknown key '%s' when building query", property)