aboutsummaryrefslogtreecommitdiff
path: root/views/webfinger.go
diff options
context:
space:
mode:
Diffstat (limited to 'views/webfinger.go')
-rw-r--r--views/webfinger.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/views/webfinger.go b/views/webfinger.go
new file mode 100644
index 0000000..4252bae
--- /dev/null
+++ b/views/webfinger.go
@@ -0,0 +1,32 @@
+package views
+
+import (
+ "fmt"
+ "path"
+)
+
+type Link struct {
+ Rel string `json:"rel"`
+ Type string `json:"type"`
+ Href string `json:"href"`
+}
+
+type WebfingerResource struct {
+ Subject string `json:"subject"`
+ 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
+}