nip29: oh, right, group addresses.

This commit is contained in:
fiatjaf
2024-05-10 18:03:24 -03:00
parent 705d035281
commit 96dfeac1bd
2 changed files with 7 additions and 6 deletions

View File

@@ -45,10 +45,11 @@ type Group struct {
LastMembersUpdate nostr.Timestamp LastMembersUpdate nostr.Timestamp
} }
func NewGroup(id string) (Group, error) { // NewGroup takes a group address in the form "<id>'<relay-hostname>"
gad, err := ParseGroupAddress(id) func NewGroup(gadstr string) (Group, error) {
gad, err := ParseGroupAddress(gadstr)
if err != nil { 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{ return Group{

View File

@@ -12,17 +12,17 @@ const (
) )
func TestGroupEventBackAndForth(t *testing.T) { func TestGroupEventBackAndForth(t *testing.T) {
group1, _ := NewGroup("xyz") group1, _ := NewGroup("xyz'relay.com")
group1.Name = "banana" group1.Name = "banana"
group1.Private = true group1.Private = true
meta1 := group1.ToMetadataEvent() meta1 := group1.ToMetadataEvent()
if meta1.Tags.GetD() != "xyz" || if meta1.Tags.GetD() != "xyz" ||
meta1.Tags.GetFirst([]string{"name", "banana"}) == nil || meta1.Tags.GetFirst([]string{"name", "banana"}) == nil ||
meta1.Tags.GetFirst([]string{"private"}) == 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[ALICE] = &Role{Name: "nada", Permissions: map[Permission]struct{}{PermAddUser: {}}}
group2.Members[BOB] = &Role{Name: "nada", Permissions: map[Permission]struct{}{PermEditMetadata: {}}} group2.Members[BOB] = &Role{Name: "nada", Permissions: map[Permission]struct{}{PermEditMetadata: {}}}
group2.Members[CAROL] = EmptyRole group2.Members[CAROL] = EmptyRole