diff options
Diffstat (limited to 'resources')
-rw-r--r-- | resources/profile.go | 3 | ||||
-rw-r--r-- | resources/webfinger.go | 19 |
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 +} |