mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-08-28 06:41:53 +02:00
nip29: oh, right, group addresses.
This commit is contained in:
@@ -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{
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user