Documentation
¶
Index ¶
- Constants
- func GetGroupIDFromEvent(event nostr.Event) string
- func Init(relay *khatru.Relay)
- type Group
- type GroupsState
- func (s *GroupsState) GetGroupFromEvent(event nostr.Event) *Group
- func (s *GroupsState) NewGroup(id string) *Group
- func (s *GroupsState) ProcessEvent(ctx context.Context, event nostr.Event)
- func (s *GroupsState) Query(ctx context.Context, filter nostr.Filter) iter.Seq[nostr.Event]
- func (s *GroupsState) RejectEvent(ctx context.Context, event nostr.Event) (reject bool, msg string)
- func (s *GroupsState) RequestAuthWhenNecessary(ctx context.Context, filter nostr.Filter) (reject bool, msg string)
- func (s *GroupsState) WipeGroup(groupId string) error
- type MuxHandler
- type Options
Constants ¶
View Source
const ( PRIMARY_ROLE_NAME = "admin" SECONDARY_ROLE_NAME = "moderator" )
Variables ¶
This section is empty.
Functions ¶
func GetGroupIDFromEvent ¶
Types ¶
type Group ¶
func (*Group) AnyOfTheseIsAMember ¶
type GroupsState ¶
type GroupsState struct {
Domain string
Groups *xsync.MapOf[string, *Group]
DB eventstore.Store
// contains filtered or unexported fields
}
var ( Handler = &MuxHandler{} State *GroupsState )
func NewGroupsState ¶
func NewGroupsState(opts Options) *GroupsState
func (*GroupsState) GetGroupFromEvent ¶
func (s *GroupsState) GetGroupFromEvent(event nostr.Event) *Group
func (*GroupsState) NewGroup ¶
func (s *GroupsState) NewGroup(id string) *Group
NewGroup creates a new group from scratch (but doesn't store it in the groups map)
func (*GroupsState) ProcessEvent ¶
func (s *GroupsState) ProcessEvent(ctx context.Context, event nostr.Event)
func (*GroupsState) RejectEvent ¶
func (*GroupsState) RequestAuthWhenNecessary ¶
func (*GroupsState) WipeGroup ¶ added in v1.0.9
func (s *GroupsState) WipeGroup(groupId string) error
type MuxHandler ¶ added in v1.0.4
type MuxHandler struct {
// contains filtered or unexported fields
}
func (*MuxHandler) ServeHTTP ¶ added in v1.0.4
func (mh *MuxHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
Click to show internal directories.
Click to hide internal directories.