summaryrefslogtreecommitdiff
path: root/internal/typeutils/util.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/typeutils/util.go')
-rw-r--r--internal/typeutils/util.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/internal/typeutils/util.go b/internal/typeutils/util.go
index bd6c33ee1..0100200dc 100644
--- a/internal/typeutils/util.go
+++ b/internal/typeutils/util.go
@@ -19,9 +19,11 @@ package typeutils
import (
"context"
+ "errors"
"fmt"
"net/url"
+ "github.com/superseriousbusiness/gotosocial/internal/ap"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/regexes"
)
@@ -82,3 +84,19 @@ func misskeyReportInlineURLs(content string) []*url.URL {
}
return urls
}
+
+// getURI is a shortcut/util function for extracting
+// the JSONLDId URI of an Activity or Object.
+func getURI(withID ap.WithJSONLDId) (*url.URL, string, error) {
+ idProp := withID.GetJSONLDId()
+ if idProp == nil {
+ return nil, "", errors.New("id prop was nil")
+ }
+
+ if !idProp.IsIRI() {
+ return nil, "", errors.New("id prop was not an IRI")
+ }
+
+ id := idProp.Get()
+ return id, id.String(), nil
+}