Documentation ¶
Overview ¶
Copyright 2023 Northern.tech AS
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2023 Northern.tech AS
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- Constants
- func BuildURL(r *rest.Request, template string, params map[string]string) *url.URL
- func IsApiError(e error) bool
- func MakeLink(link_type string, r *rest.Request, page, per_page uint64) string
- func MakePageLinkHdrs(r *rest.Request, page, per_page uint64, has_next bool) []string
- func MsgQueryParmInvalid(name string) string
- func MsgQueryParmLimit(name string) string
- func MsgQueryParmMissing(name string) string
- func MsgQueryParmOneOf(name string, allowed []string) string
- func ParseApiError(source io.Reader) error
- func ParsePagination(r *rest.Request) (uint64, uint64, error)
- func ParseQueryParmBool(r *rest.Request, name string, required bool, def *bool) (*bool, error)
- func ParseQueryParmStr(r *rest.Request, name string, required bool, allowed []string) (string, error)
- func ParseQueryParmUInt(r *rest.Request, name string, required bool, min, max, def uint64) (uint64, error)
- func RestErrWithDebugMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, ...)
- func RestErrWithErrorMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, ...)
- func RestErrWithFatalMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, ...)
- func RestErrWithInfoMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, ...)
- func RestErrWithLog(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int)
- func RestErrWithLogInternal(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error)
- func RestErrWithLogMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, ...)
- func RestErrWithPanicMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, ...)
- func RestErrWithWarningMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, ...)
- type ApiError
Constants ¶
const ( PageName = "page" PerPageName = "per_page" PageMin = 1 PageDefault = 1 PerPageMin = 1 PerPageMax = 500 PerPageDefault = 20 LinkHdr = "Link" LinkTmpl = "<%s>; rel=\"%s\"" LinkPrev = "prev" LinkNext = "next" LinkFirst = "first" DefaultScheme = "http" )
pagination constants
Variables ¶
This section is empty.
Functions ¶
func BuildURL ¶
build URL using request 'r' and template, replace path params with elements from 'params' using lexical match as in strings.Replace()
func IsApiError ¶
func MakePageLinkHdrs ¶
func MsgQueryParmLimit ¶
func MsgQueryParmMissing ¶
func MsgQueryParmOneOf ¶
func ParseApiError ¶
func ParsePagination ¶
pagination helpers
func ParseQueryParmBool ¶
func ParseQueryParmStr ¶
func ParseQueryParmUInt ¶
func ParseQueryParmUInt(r *rest.Request, name string, required bool, min, max, def uint64) (uint64, error)
query param parsing/validation
func RestErrWithDebugMsg ¶
func RestErrWithDebugMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, msg string)
return an error code with an overriden message (to avoid exposing the details) log full error as debug
func RestErrWithErrorMsg ¶
func RestErrWithErrorMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, msg string)
return an error code with an overriden message (to avoid exposing the details) log full error as error
func RestErrWithFatalMsg ¶
func RestErrWithFatalMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, msg string)
return an error code with an overriden message (to avoid exposing the details) log full error as fatal
func RestErrWithInfoMsg ¶
func RestErrWithInfoMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, msg string)
return an error code with an overriden message (to avoid exposing the details) log full error as info
func RestErrWithLog ¶
return selected http code + error message directly taken from error log error
func RestErrWithLogInternal ¶
return http 500, with an "internal error" message log full error
func RestErrWithLogMsg ¶
func RestErrWithLogMsg(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int, msg string)
same as RestErrWithErrorMsg - for backward compatibility purpose return an error code with an overriden message (to avoid exposing the details) log full error as error