From 993aae5e48a5a3b47a7c7bb3cb66e2d8abda17b2 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 25 Jan 2023 11:12:27 +0100 Subject: [feature] Accept incoming federated Flag activity (#1382) * start working on handling incoming Flag activity * interim commit * federate Flag in successfully --- internal/ap/extract.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'internal/ap/extract.go') diff --git a/internal/ap/extract.go b/internal/ap/extract.go index c09f07c41..20420e02c 100644 --- a/internal/ap/extract.go +++ b/internal/ap/extract.go @@ -635,6 +635,23 @@ func ExtractObject(i WithObject) (*url.URL, error) { return nil, errors.New("no iri found for object prop") } +// ExtractObjects extracts a slice of URL objects from a WithObject interface. +func ExtractObjects(i WithObject) ([]*url.URL, error) { + objectProp := i.GetActivityStreamsObject() + if objectProp == nil { + return nil, errors.New("object property was nil") + } + + urls := make([]*url.URL, 0, objectProp.Len()) + for iter := objectProp.Begin(); iter != objectProp.End(); iter = iter.Next() { + if iter.IsIRI() && iter.GetIRI() != nil { + urls = append(urls, iter.GetIRI()) + } + } + + return urls, nil +} + // ExtractVisibility extracts the gtsmodel.Visibility of a given addressable with a To and CC property. // // ActorFollowersURI is needed to check whether the visibility is FollowersOnly or not. The passed-in value -- cgit v1.2.3