aboutsummaryrefslogtreecommitdiff
path: root/urls/urls.go
diff options
context:
space:
mode:
Diffstat (limited to 'urls/urls.go')
-rw-r--r--urls/urls.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/urls/urls.go b/urls/urls.go
new file mode 100644
index 0000000..5f563a7
--- /dev/null
+++ b/urls/urls.go
@@ -0,0 +1,34 @@
+package urls
+
+import (
+ "fmt"
+ "net/url"
+ "path"
+)
+
+func UrlInbox(name, domain string) (*url.URL, error) {
+ u, err := url.Parse(path.Join("https://", domain, "actors", name, "inbox"))
+ if err != nil {
+ return nil, fmt.Errorf("could not build inbox url: %w", err)
+ }
+ return u, nil
+}
+
+func UrlOutbox(name, domain string) (*url.URL, error) {
+ u, err := url.Parse(path.Join("https://", domain, "actors", name, "outbox"))
+ if err != nil {
+ return nil, fmt.Errorf("could not build outbox url: %w", err)
+ }
+ return u, nil
+}
+
+func UrlOutboxPage(name, domain string) (*url.URL, error) {
+ u, err := UrlOutbox(name, domain)
+ if err != nil {
+ return nil, fmt.Errorf("could not build outbox page url: %w", err)
+ }
+ q := u.Query()
+ q.Set("page", "true")
+ u.RawQuery = q.Encode()
+ return u, nil
+}