Documentation ¶
Index ¶
- Constants
- func Forbidden(rw http.ResponseWriter)
- func InternalServerError(rw http.ResponseWriter, err error)
- func IsWebsocketUpgrade(r *http.Request) bool
- func ParseCustom[T any](parser *QueryParamParser, vals url.Values, def T, queryParam string, ...) T
- func Read(rw http.ResponseWriter, r *http.Request, value interface{}) bool
- func RequestHost(r *http.Request) string
- func ResourceNotFound(rw http.ResponseWriter)
- func StripCoderCookies(header string) string
- func UsernameFrom(str string) string
- func UsernameValid(str string) bool
- func WebsocketCloseSprintf(format string, vars ...any) string
- func Write(rw http.ResponseWriter, status int, response interface{})
- type QueryParamParser
- func (p *QueryParamParser) Int(vals url.Values, def int, queryParam string) int
- func (*QueryParamParser) String(vals url.Values, def string, queryParam string) string
- func (*QueryParamParser) Strings(vals url.Values, def []string, queryParam string) []string
- func (p *QueryParamParser) UUID(vals url.Values, def uuid.UUID, queryParam string) uuid.UUID
- func (p *QueryParamParser) UUIDorMe(vals url.Values, def uuid.UUID, me uuid.UUID, queryParam string) uuid.UUID
- func (p *QueryParamParser) UUIDs(vals url.Values, def []uuid.UUID, queryParam string) []uuid.UUID
- type StatusWriter
Constants ¶
const ( // XForwardedHostHeader is a header used by proxies to indicate the // original host of the request. XForwardedHostHeader = "X-Forwarded-Host" )
Variables ¶
This section is empty.
Functions ¶
func Forbidden ¶ added in v0.5.10
func Forbidden(rw http.ResponseWriter)
func InternalServerError ¶ added in v0.8.10
func InternalServerError(rw http.ResponseWriter, err error)
func IsWebsocketUpgrade ¶ added in v0.8.10
func ParseCustom ¶ added in v0.7.5
func ParseCustom[T any](parser *QueryParamParser, vals url.Values, def T, queryParam string, parseFunc func(v string) (T, error)) T
ParseCustom has to be a function, not a method on QueryParamParser because generics cannot be used on struct methods.
func Read ¶
func Read(rw http.ResponseWriter, r *http.Request, value interface{}) bool
Read decodes JSON from the HTTP request into the value provided. It uses go-validator to validate the incoming request body.
func RequestHost ¶ added in v0.8.10
RequestHost returns the name of the host from the request. It prioritizes 'X-Forwarded-Host' over r.Host since most requests are being proxied.
func ResourceNotFound ¶ added in v0.7.0
func ResourceNotFound(rw http.ResponseWriter)
ResourceNotFound is intentionally vague. All 404 responses should be identical to prevent leaking existence of resources.
func StripCoderCookies ¶ added in v0.8.6
StripCoderCookies removes the session token from the cookie header provided.
func UsernameFrom ¶ added in v0.8.2
UsernameFrom returns a best-effort username from the provided string.
It first attempts to validate the incoming string, which will be returned if it is valid. It then will attempt to extract the username from an email address. If no success happens during these steps, a random username will be returned.
func UsernameValid ¶ added in v0.8.2
UsernameValid returns whether the input string is a valid username.
func WebsocketCloseSprintf ¶
WebsocketCloseSprintf formats a websocket close message and ensures it is truncated to the maximum allowed length.
func Write ¶
func Write(rw http.ResponseWriter, status int, response interface{})
Write outputs a standardized format to an HTTP response body.
Types ¶
type QueryParamParser ¶ added in v0.7.0
type QueryParamParser struct { // Errors is the set of errors to return via the API. If the length // of this set is 0, there are no errors!. Errors []codersdk.ValidationError }
QueryParamParser is a helper for parsing all query params and gathering all errors in 1 sweep. This means all invalid fields are returned at once, rather than only returning the first error
func NewQueryParamParser ¶ added in v0.7.0
func NewQueryParamParser() *QueryParamParser
type StatusWriter ¶ added in v0.8.10
type StatusWriter struct { http.ResponseWriter Status int Hijacked bool // contains filtered or unexported fields }
StatusWriter intercepts the status of the request and the response body up to maxBodySize if Status >= 400. It is guaranteed to be the ResponseWriter directly downstream from Middleware.
func (*StatusWriter) Hijack ¶ added in v0.8.10
func (w *StatusWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)
func (*StatusWriter) ResponseBody ¶ added in v0.8.10
func (w *StatusWriter) ResponseBody() []byte
func (*StatusWriter) WriteHeader ¶ added in v0.8.10
func (w *StatusWriter) WriteHeader(status int)