Documentation
¶
Index ¶
- Variables
- func CancelOnInterrupt(cancel context.CancelFunc, log zerolog.Logger)
- func Decrypt(secret []byte, encrypted string) ([]byte, error)
- func Encrypt(secret []byte, value []byte) (string, error)
- func IDParam(r *http.Request, name string) uint
- func LoadEnv(env interface{}) error
- func NewLogger(service string) zerolog.Logger
- func RandomBytes(n int) ([]byte, error)
- func RandomString(s int) (string, error)
- func ReadBody(r *http.Request) []byte
- func ReadJSON(r *http.Request, v interface{})
- func Recoverer(env string) func(http.Handler) http.Handler
- func RunServer(ctx context.Context, log zerolog.Logger, server *http.Server)
- func SendError(r *http.Request, w http.ResponseWriter, err APIError)
- func SendJSON(r *http.Request, w http.ResponseWriter, code int, v interface{})
- func SendSuccess(r *http.Request, w http.ResponseWriter, v interface{})
- func StringParam(r *http.Request, name string) string
- func UUID() string
- type APIError
- type SessionStore
Constants ¶
This section is empty.
Variables ¶
var ( ErrAuthorisationFormat = errors.New("Your authorization header format is invalid") ErrUnsupportedScheme = errors.New("Your scheme is not supported") ErrEmptyToken = errors.New("There was no token supplied to the authorization header") ErrHeaderNotSet = errors.New("Authorization header is not set") )
var DumpLog = regexp.MustCompile("(?i)kube-probe|prometheus")
Functions ¶
func CancelOnInterrupt ¶ added in v0.8.0
func CancelOnInterrupt(cancel context.CancelFunc, log zerolog.Logger)
CancelOnInterrupt cancels a context when it receives an interrupt signal
func LoadEnv ¶ added in v0.5.0
func LoadEnv(env interface{}) error
LoadEnv loads environment variables into Env
func RandomBytes ¶ added in v0.8.0
RandomBytes returns securely generated random bytes. It will return an error if the system's secure random number generator fails to function correctly, in which case the caller should not continue.
func RandomString ¶ added in v0.8.0
RandomString returns a securely generated random hex string. It will return an error if the system's secure random number generator fails to function correctly, in which case the caller should not continue. Keep in mind that s is the length of the returned string, not the number of bytes to be produced
func ReadBody ¶
ReadBody extracts the bytes in a request body without destroying the contents of the body
func ReadJSON ¶ added in v0.8.0
ReadJSON decodes the JSON body of the request without destroying the request and validates it. If the content type is not JSON it fails with a 415. Otherwise it fails with a 400 on validation errors.
func Recoverer ¶
Recoverer creates a middleware that handles panics from chi controllers. It uses the passed interpreters to try to convert errors to APIErrors where possible otherwise it returns a 500 error. When the panic is an APIError or is interpreted as one, it sends a response with the right error code. TODO: add support for wrapped errors in APIError.
func SendError ¶
func SendError(r *http.Request, w http.ResponseWriter, err APIError)
SendError sends a JSON error message
func SendJSON ¶
func SendJSON(r *http.Request, w http.ResponseWriter, code int, v interface{})
SendJSON response writes a JSON encoded version of `v` to the writer, making sure what deserves to be logged gets logged
func SendSuccess ¶
func SendSuccess(r *http.Request, w http.ResponseWriter, v interface{})
SendSuccess sends a JSON success message with status code 200
func StringParam ¶ added in v0.2.0
StringParam basically just ensures the param name is correct. You might not need this method unless you're too lazy to do real tests.
Types ¶
type APIError ¶
type APIError struct {
Code int `json:"-"`
Message string `json:"message"`
Meta interface{} `json:"meta"`
Err error `json:"-"`
}
APIError is a struct describing an error
type SessionStore ¶ added in v0.8.0
type SessionStore struct {
Store *tokens.Store
Timeout time.Duration
Secret []byte
Scheme string
ClaimsKey string
}
func (*SessionStore) Headless ¶ added in v0.8.0
func (s *SessionStore) Headless() func(http.Handler) http.Handler
Secure loads a user session into the request context
func (*SessionStore) Load ¶ added in v0.8.0
func (s *SessionStore) Load(r *http.Request, session interface{})
Load retrieves a user's session object based on the session key from the Authorization header or the session cookie and fails with an error if it faces any issue parsing any of them.