rest_utils

package
v0.0.0-...-d078b10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 17 Imported by: 24

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

View Source
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

func BuildURL(r *rest.Request, template string, params map[string]string) *url.URL

build URL using request 'r' and template, replace path params with elements from 'params' using lexical match as in strings.Replace()

func IsApiError

func IsApiError(e error) bool
func MakeLink(link_type string, r *rest.Request, page, per_page uint64) string

MakeLink creates a relative URL for insertion in the link header URL field.

func MakePageLinkHdrs

func MakePageLinkHdrs(r *rest.Request, page, per_page uint64, has_next bool) []string

func MsgQueryParmInvalid

func MsgQueryParmInvalid(name string) string

error msgs

func MsgQueryParmLimit

func MsgQueryParmLimit(name string) string

func MsgQueryParmMissing

func MsgQueryParmMissing(name string) string

func MsgQueryParmOneOf

func MsgQueryParmOneOf(name string, allowed []string) string

func ParseApiError

func ParseApiError(source io.Reader) error

func ParsePagination

func ParsePagination(r *rest.Request) (uint64, uint64, error)

pagination helpers

func ParseQueryParmBool

func ParseQueryParmBool(r *rest.Request, name string, required bool, def *bool) (*bool, error)

func ParseQueryParmStr

func ParseQueryParmStr(r *rest.Request, name string, required bool, allowed []string) (string, error)

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

func RestErrWithLog(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error, code int)

return selected http code + error message directly taken from error log error

func RestErrWithLogInternal

func RestErrWithLogInternal(w rest.ResponseWriter, r *rest.Request, l *log.Logger, e error)

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

func RestErrWithPanicMsg

func RestErrWithPanicMsg(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 panic

func RestErrWithWarningMsg

func RestErrWithWarningMsg(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 warning

Types

type ApiError

type ApiError struct {
	Err   string `json:"error"`
	ReqId string `json:"request_id,omitempty"`
}

ApiError wraps errors returned by our APIs

func (*ApiError) Error

func (ae *ApiError) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL