summaryrefslogtreecommitdiff
path: root/internal/uris
diff options
context:
space:
mode:
Diffstat (limited to 'internal/uris')
-rw-r--r--internal/uris/uri.go58
1 files changed, 37 insertions, 21 deletions
diff --git a/internal/uris/uri.go b/internal/uris/uri.go
index d7ae9fe75..1a5ed7fbf 100644
--- a/internal/uris/uri.go
+++ b/internal/uris/uri.go
@@ -27,27 +27,28 @@ import (
)
const (
- UsersPath = "users" // UsersPath is for serving users info
- StatusesPath = "statuses" // StatusesPath is for serving statuses
- InboxPath = "inbox" // InboxPath represents the activitypub inbox location
- OutboxPath = "outbox" // OutboxPath represents the activitypub outbox location
- FollowersPath = "followers" // FollowersPath represents the activitypub followers location
- FollowingPath = "following" // FollowingPath represents the activitypub following location
- LikedPath = "liked" // LikedPath represents the activitypub liked location
- CollectionsPath = "collections" // CollectionsPath represents the activitypub collections location
- FeaturedPath = "featured" // FeaturedPath represents the activitypub featured location
- PublicKeyPath = "main-key" // PublicKeyPath is for serving an account's public key
- FollowPath = "follow" // FollowPath used to generate the URI for an individual follow or follow request
- UpdatePath = "updates" // UpdatePath is used to generate the URI for an account update
- BlocksPath = "blocks" // BlocksPath is used to generate the URI for a block
- MovesPath = "moves" // MovesPath is used to generate the URI for a move
- ReportsPath = "reports" // ReportsPath is used to generate the URI for a report/flag
- ConfirmEmailPath = "confirm_email" // ConfirmEmailPath is used to generate the URI for an email confirmation link
- FileserverPath = "fileserver" // FileserverPath is a path component for serving attachments + media
- EmojiPath = "emoji" // EmojiPath represents the activitypub emoji location
- TagsPath = "tags" // TagsPath represents the activitypub tags location
- AcceptsPath = "accepts" // AcceptsPath represents the activitypub Accept's location
- RejectsPath = "rejects" // RejectsPath represents the activitypub Reject's location
+ UsersPath = "users" // UsersPath is for serving users info
+ StatusesPath = "statuses" // StatusesPath is for serving statuses
+ InboxPath = "inbox" // InboxPath represents the activitypub inbox location
+ OutboxPath = "outbox" // OutboxPath represents the activitypub outbox location
+ FollowersPath = "followers" // FollowersPath represents the activitypub followers location
+ FollowingPath = "following" // FollowingPath represents the activitypub following location
+ LikedPath = "liked" // LikedPath represents the activitypub liked location
+ CollectionsPath = "collections" // CollectionsPath represents the activitypub collections location
+ FeaturedPath = "featured" // FeaturedPath represents the activitypub featured location
+ PublicKeyPath = "main-key" // PublicKeyPath is for serving an account's public key
+ FollowPath = "follow" // FollowPath used to generate the URI for an individual follow or follow request
+ UpdatePath = "updates" // UpdatePath is used to generate the URI for an account update
+ BlocksPath = "blocks" // BlocksPath is used to generate the URI for a block
+ MovesPath = "moves" // MovesPath is used to generate the URI for a move
+ ReportsPath = "reports" // ReportsPath is used to generate the URI for a report/flag
+ ConfirmEmailPath = "confirm_email" // ConfirmEmailPath is used to generate the URI for an email confirmation link
+ FileserverPath = "fileserver" // FileserverPath is a path component for serving attachments + media
+ EmojiPath = "emoji" // EmojiPath represents the activitypub emoji location
+ TagsPath = "tags" // TagsPath represents the activitypub tags location
+ AcceptsPath = "accepts" // AcceptsPath represents the activitypub Accept's location
+ AuthorizationsPath = "authorizations" // AuthorizationsPath represents the location of an Authorization type such as LikeAuthorization, ReplyAuthorization, etc.
+ RejectsPath = "rejects" // RejectsPath represents the activitypub Reject's location
)
// UserURIs contains a bunch of UserURIs
@@ -210,6 +211,21 @@ func GenerateURIForAccept(username string, thisAcceptID string) string {
)
}
+// GenerateURIForAuthorization returns the AP URI for a new Authorization object,
+// ie., LikeAuthorization, ReplyAuthorization, or AnnounceAuthorization.
+// Eg., https://example.org/users/whatever_user/authorizations/01F7XTH1QGBAPMGF49WJZ91XGC
+func GenerateURIForAuthorization(username string, id string) string {
+ proto := config.GetProtocol()
+ host := config.GetHost()
+ return buildURL4(proto,
+ host,
+ UsersPath,
+ username,
+ AuthorizationsPath,
+ id,
+ )
+}
+
// GenerateURIForReject returns the AP URI for a new Reject activity -- something like:
// https://example.org/users/whatever_user/rejects/01F7XTH1QGBAPMGF49WJZ91XGC
func GenerateURIForReject(username string, thisRejectID string) string {