bring in khatru and eventstore.
This commit is contained in:
34
eventstore/wrappers/count/count.go
Normal file
34
eventstore/wrappers/count/count.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package count
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/fiatjaf/eventstore"
|
||||
"github.com/nbd-wtf/go-nostr"
|
||||
)
|
||||
|
||||
type Wrapper struct {
|
||||
eventstore.Store
|
||||
}
|
||||
|
||||
var _ eventstore.Store = (*Wrapper)(nil)
|
||||
|
||||
func (w Wrapper) CountEvents(ctx context.Context, filter nostr.Filter) (int64, error) {
|
||||
if counter, ok := w.Store.(eventstore.Counter); ok {
|
||||
return counter.CountEvents(ctx, filter)
|
||||
}
|
||||
|
||||
ch, err := w.Store.QueryEvents(ctx, filter)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if ch == nil {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
var count int64
|
||||
for range ch {
|
||||
count++
|
||||
}
|
||||
return count, nil
|
||||
}
|
||||
Reference in New Issue
Block a user