aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--resources/profile.go3
-rw-r--r--resources/webfinger.go19
2 files changed, 21 insertions, 1 deletions
diff --git a/resources/profile.go b/resources/profile.go
index 23b2844..090075c 100644
--- a/resources/profile.go
+++ b/resources/profile.go
@@ -1,6 +1,7 @@
package resources
import (
+ "fmt"
"net/url"
"path"
@@ -10,7 +11,7 @@ import (
func RenderProfile(name, domain string) (map[string]interface{}, error) {
u, err := url.Parse(path.Join("https://", domain, "actors", name, "inbox"))
if err != nil {
- panic(err)
+ return nil, fmt.Errorf("could not partse url: %w", err)
}
inb := streams.NewActivityStreamsInboxProperty()
diff --git a/resources/webfinger.go b/resources/webfinger.go
index d936519..e7c47ea 100644
--- a/resources/webfinger.go
+++ b/resources/webfinger.go
@@ -1,5 +1,10 @@
package resources
+import (
+ "fmt"
+ "path"
+)
+
type Link struct {
Rel string `json:"rel"`
Type string `json:"type"`
@@ -11,3 +16,17 @@ type WebfingerResource struct {
Aliases []string `json:"aliases"`
Links []Link `json:"links"`
}
+
+func RenderWebfingerResource(name, domain string) (*WebfingerResource, error) {
+ rs := WebfingerResource{
+ // TODO clean up
+ Subject: fmt.Sprintf("acct:%s@%s", name, domain),
+ Aliases: []string{},
+ Links: []Link{{
+ Rel: "self",
+ Href: path.Join("https://", domain, "actors", name),
+ Type: "application/activity+json",
+ }},
+ }
+ return &rs, nil
+}