diff options
Diffstat (limited to 'urls/urls.go')
-rw-r--r-- | urls/urls.go | 34 |
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 +} |