mirror of
https://github.com/aykhans/slash-e.git
synced 2025-04-16 04:13:12 +00:00
chore: add location header
This commit is contained in:
parent
80548aaf2c
commit
a3943f5b2d
@ -4,6 +4,7 @@ import (
|
||||
"crypto/rand"
|
||||
"math/big"
|
||||
"net/mail"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
@ -55,3 +56,9 @@ func RandomString(n int) (string, error) {
|
||||
}
|
||||
return sb.String(), nil
|
||||
}
|
||||
|
||||
// ValidateURI validates the URI.
|
||||
func ValidateURI(uri string) bool {
|
||||
u, err := url.Parse(uri)
|
||||
return err == nil && u.Scheme != "" && u.Host != ""
|
||||
}
|
||||
|
@ -29,3 +29,33 @@ func TestValidateEmail(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateURI(t *testing.T) {
|
||||
tests := []struct {
|
||||
uri string
|
||||
want bool
|
||||
}{
|
||||
{
|
||||
uri: "https://localhsot:3000",
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
uri: "https://yourselfhosted.com",
|
||||
want: true,
|
||||
},
|
||||
{
|
||||
uri: "google.com",
|
||||
want: false,
|
||||
},
|
||||
{
|
||||
uri: "i don't know",
|
||||
want: false,
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
result := ValidateURI(test.uri)
|
||||
if result != test.want {
|
||||
t.Errorf("Validate URI %s: got result %v, want %v.", test.uri, result, test.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -92,9 +92,13 @@ func (s *FrontendService) registerRoutes(e *echo.Echo) {
|
||||
}
|
||||
|
||||
metric.Enqueue("shortcut view")
|
||||
// Only set the `Location` header if the link is a valid URI.
|
||||
if util.ValidateURI(shortcut.Link) {
|
||||
c.Response().Header().Set("Location", shortcut.Link)
|
||||
}
|
||||
// Inject shortcut metadata into `index.html`.
|
||||
indexHTML := strings.ReplaceAll(rawIndexHTML, headerMetadataPlaceholder, generateShortcutMetadata(shortcut).String())
|
||||
return c.HTML(http.StatusOK, indexHTML)
|
||||
return c.HTML(http.StatusSeeOther, indexHTML)
|
||||
})
|
||||
|
||||
e.GET("/c/:collectionName", func(c echo.Context) error {
|
||||
|
Loading…
x
Reference in New Issue
Block a user