Files
relayer/interface.go
2022-08-12 17:02:40 -03:00

48 lines
892 B
Go

package relayer
import (
"github.com/fiatjaf/go-nostr"
"github.com/fiatjaf/go-nostr/nip11"
)
var Log = log
type Relay interface {
Name() string
Init() error
OnInitialized()
AcceptEvent(*nostr.Event) bool
Storage() Storage
}
type Injector interface {
InjectEvents() chan nostr.Event
}
type Informationer interface {
GetNIP11InformationDocument() nip11.RelayInformationDocument
}
type AdvancedQuerier interface {
BeforeQuery(*nostr.Filter)
AfterQuery([]nostr.Event, *nostr.Filter)
}
type AdvancedDeleter interface {
BeforeDelete(id string, pubkey string)
AfterDelete(id string, pubkey string)
}
type AdvancedSaver interface {
BeforeSave(*nostr.Event)
AfterSave(*nostr.Event)
}
type Storage interface {
Init() error
QueryEvents(filter *nostr.Filter) (events []nostr.Event, err error)
DeleteEvent(id string, pubkey string) error
SaveEvent(event *nostr.Event) error
}