1
0
Fork 0
photos/cmd/control/pathable.go

28 lines
463 B
Go

package main
import (
"errors"
"net/url"
"strings"
)
type SafePathable string
var ErrorInvalidRequest = errors.New("invalid request")
func (s SafePathable) Validate() error {
if strings.HasPrefix(string(s), "/") {
return ErrorInvalidRequest
}
if strings.HasPrefix(string(s), "internal/") {
return ErrorInvalidRequest
}
_, err := url.Parse(string(s))
return err
}
func (s SafePathable) Path() *url.URL {
u, _ := url.Parse(string(s))
return u
}