diff options
author | 2021-12-07 13:31:39 +0100 | |
---|---|---|
committer | 2021-12-07 13:31:39 +0100 | |
commit | 0884f89431cd26bcc9674b3b7ab628b090f5881e (patch) | |
tree | cdd3b3f77f780a8b59d075dbcc3d4d013811e405 /internal/util/uri.go | |
parent | Update dependencies (#333) (diff) | |
download | gotosocial-0884f89431cd26bcc9674b3b7ab628b090f5881e.tar.xz |
Implement Cobra CLI tooling, Viper config tooling (#336)
* start pulling out + replacing urfave and config
* replace many many instances of config
* move more stuff => viper
* properly remove urfave
* move some flags to root command
* add testrig commands to root
* alias config file keys
* start adding cli parsing tests
* reorder viper init
* remove config path alias
* fmt
* change config file keys to non-nested
* we're more or less in business now
* tidy up the common func
* go fmt
* get tests passing again
* add note about the cliparsing tests
* reorganize
* update docs with changes
* structure cmd dir better
* rename + move some files around
* fix dangling comma
Diffstat (limited to 'internal/util/uri.go')
-rw-r--r-- | internal/util/uri.go | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/internal/util/uri.go b/internal/util/uri.go index d1ae1de41..b9ef01799 100644 --- a/internal/util/uri.go +++ b/internal/util/uri.go @@ -22,6 +22,8 @@ import ( "fmt" "net/url" + "github.com/spf13/viper" + "github.com/superseriousbusiness/gotosocial/internal/config" "github.com/superseriousbusiness/gotosocial/internal/regexes" ) @@ -116,36 +118,49 @@ type UserURIs struct { // GenerateURIForFollow returns the AP URI for a new follow -- something like: // https://example.org/users/whatever_user/follow/01F7XTH1QGBAPMGF49WJZ91XGC -func GenerateURIForFollow(username string, protocol string, host string, thisFollowID string) string { +func GenerateURIForFollow(username string, thisFollowID string) string { + protocol := viper.GetString(config.Keys.Protocol) + host := viper.GetString(config.Keys.Host) return fmt.Sprintf("%s://%s/%s/%s/%s/%s", protocol, host, UsersPath, username, FollowPath, thisFollowID) } // GenerateURIForLike returns the AP URI for a new like/fave -- something like: // https://example.org/users/whatever_user/liked/01F7XTH1QGBAPMGF49WJZ91XGC -func GenerateURIForLike(username string, protocol string, host string, thisFavedID string) string { +func GenerateURIForLike(username string, thisFavedID string) string { + protocol := viper.GetString(config.Keys.Protocol) + host := viper.GetString(config.Keys.Host) return fmt.Sprintf("%s://%s/%s/%s/%s/%s", protocol, host, UsersPath, username, LikedPath, thisFavedID) } // GenerateURIForUpdate returns the AP URI for a new update activity -- something like: // https://example.org/users/whatever_user#updates/01F7XTH1QGBAPMGF49WJZ91XGC -func GenerateURIForUpdate(username string, protocol string, host string, thisUpdateID string) string { +func GenerateURIForUpdate(username string, thisUpdateID string) string { + protocol := viper.GetString(config.Keys.Protocol) + host := viper.GetString(config.Keys.Host) return fmt.Sprintf("%s://%s/%s/%s#%s/%s", protocol, host, UsersPath, username, UpdatePath, thisUpdateID) } // GenerateURIForBlock returns the AP URI for a new block activity -- something like: // https://example.org/users/whatever_user/blocks/01F7XTH1QGBAPMGF49WJZ91XGC -func GenerateURIForBlock(username string, protocol string, host string, thisBlockID string) string { +func GenerateURIForBlock(username string, thisBlockID string) string { + protocol := viper.GetString(config.Keys.Protocol) + host := viper.GetString(config.Keys.Host) return fmt.Sprintf("%s://%s/%s/%s/%s/%s", protocol, host, UsersPath, username, BlocksPath, thisBlockID) } // GenerateURIForEmailConfirm returns a link for email confirmation -- something like: // https://example.org/confirm_email?token=490e337c-0162-454f-ac48-4b22bb92a205 -func GenerateURIForEmailConfirm(protocol string, host string, token string) string { +func GenerateURIForEmailConfirm(token string) string { + protocol := viper.GetString(config.Keys.Protocol) + host := viper.GetString(config.Keys.Host) return fmt.Sprintf("%s://%s/%s?token=%s", protocol, host, ConfirmEmailPath, token) } // GenerateURIsForAccount throws together a bunch of URIs for the given username, with the given protocol and host. -func GenerateURIsForAccount(username string, protocol string, host string) *UserURIs { +func GenerateURIsForAccount(username string) *UserURIs { + protocol := viper.GetString(config.Keys.Protocol) + host := viper.GetString(config.Keys.Host) + // The below URLs are used for serving web requests hostURL := fmt.Sprintf("%s://%s", protocol, host) userURL := fmt.Sprintf("%s/@%s", hostURL, username) |