mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-08-24 12:40:46 +02:00
nip29: oh, right, group addresses.
This commit is contained in:
@@ -45,10 +45,11 @@ type Group struct {
|
||||
LastMembersUpdate nostr.Timestamp
|
||||
}
|
||||
|
||||
func NewGroup(id string) (Group, error) {
|
||||
gad, err := ParseGroupAddress(id)
|
||||
// NewGroup takes a group address in the form "<id>'<relay-hostname>"
|
||||
func NewGroup(gadstr string) (Group, error) {
|
||||
gad, err := ParseGroupAddress(gadstr)
|
||||
if err != nil {
|
||||
return Group{}, fmt.Errorf("invalid group id '%s': %w", id, err)
|
||||
return Group{}, fmt.Errorf("invalid group id '%s': %w", gadstr, err)
|
||||
}
|
||||
|
||||
return Group{
|
||||
|
@@ -12,17 +12,17 @@ const (
|
||||
)
|
||||
|
||||
func TestGroupEventBackAndForth(t *testing.T) {
|
||||
group1, _ := NewGroup("xyz")
|
||||
group1, _ := NewGroup("xyz'relay.com")
|
||||
group1.Name = "banana"
|
||||
group1.Private = true
|
||||
meta1 := group1.ToMetadataEvent()
|
||||
if meta1.Tags.GetD() != "xyz" ||
|
||||
meta1.Tags.GetFirst([]string{"name", "banana"}) == nil ||
|
||||
meta1.Tags.GetFirst([]string{"private"}) == nil {
|
||||
t.Fatalf("translation of group1 to meta1data event failed")
|
||||
t.Fatalf("translation of group1 to metadata event failed: %s", meta1)
|
||||
}
|
||||
|
||||
group2, _ := NewGroup("abc")
|
||||
group2, _ := NewGroup("abc'groups.com")
|
||||
group2.Members[ALICE] = &Role{Name: "nada", Permissions: map[Permission]struct{}{PermAddUser: {}}}
|
||||
group2.Members[BOB] = &Role{Name: "nada", Permissions: map[Permission]struct{}{PermEditMetadata: {}}}
|
||||
group2.Members[CAROL] = EmptyRole
|
||||
|
Reference in New Issue
Block a user