errors

package
v0.0.0-...-d88c8b5 Latest Latest
Warning

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

Go to latest
Published: Feb 9, 2021 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package errors provides an Error interface and several concrete types implementing this interface to manage API errors and JSON-schema validation errors.

A middleware handler ServeError() is provided to serve the errors types it defines.

It is used throughout the various go-openapi toolkit libraries (https://github.com/go-openapi).

Index

Constants

View Source
const (
	// CompositeErrorCode remains 422 for backwards-compatibility
	// and to separate it from validation errors with cause
	CompositeErrorCode = 422
	// InvalidTypeCode is used for any subclass of invalid types
	InvalidTypeCode = 600 + iota
	RequiredFailCode
	TooLongFailCode
	TooShortFailCode
	PatternFailCode
	EnumFailCode
	MultipleOfFailCode
	MaxFailCode
	MinFailCode
	UniqueFailCode
	MaxItemsFailCode
	MinItemsFailCode
	NoAdditionalItemsCode
	TooFewPropertiesCode
	TooManyPropertiesCode
	UnallowedPropertyCode
	FailedAllPatternPropsCode
	MultipleOfMustBePositiveCode
)

All code responses can be used to differentiate errors for different handling by the consuming program

Variables

DefaultHTTPCode is used when the error Code cannot be used as an HTTP code.

Functions

func ServeError

func ServeError(rw http.ResponseWriter, r *http.Request, err error)

ServeError the error handler interface implementation

Types

type APIVerificationFailed

type APIVerificationFailed struct {
	Section              string
	MissingSpecification []string
	MissingRegistration  []string
}

APIVerificationFailed is an error that contains all the missing info for a mismatched section between the api registrations and the api spec

func (*APIVerificationFailed) Error

func (v *APIVerificationFailed) Error() string

type CompositeError

type CompositeError struct {
	Errors []error
	// contains filtered or unexported fields
}

CompositeError is an error that groups several errors together

func CompositeValidationError

func CompositeValidationError(errors ...error) *CompositeError

CompositeValidationError an error to wrap a bunch of other errors

func (*CompositeError) Code

func (c *CompositeError) Code() int32

Code for this error

func (*CompositeError) Error

func (c *CompositeError) Error() string

type Error

type Error interface {
	error
	Code() int32
}

Error represents a error interface all swagger framework errors implement

func MethodNotAllowed

func MethodNotAllowed(requested string, allow []string) Error

MethodNotAllowed creates a new method not allowed error

func New

func New(code int32, message string, args ...interface{}) Error

New creates a new API error with a code and a message

func NotFound

func NotFound(message string, args ...interface{}) Error

NotFound creates a new not found error

func NotImplemented

func NotImplemented(message string) Error

NotImplemented creates a new not implemented error

func Unauthenticated

func Unauthenticated(scheme string) Error

Unauthenticated returns an unauthenticated error

type MethodNotAllowedError

type MethodNotAllowedError struct {
	Allowed []string
	// contains filtered or unexported fields
}

MethodNotAllowedError represents an error for when the path matches but the method doesn't

func (*MethodNotAllowedError) Code

func (m *MethodNotAllowedError) Code() int32

Code the error code

func (*MethodNotAllowedError) Error

func (m *MethodNotAllowedError) Error() string

type ParseError

type ParseError struct {
	Name   string
	In     string
	Value  string
	Reason error
	// contains filtered or unexported fields
}

ParseError respresents a parsing error

func NewParseError

func NewParseError(name, in, value string, reason error) *ParseError

NewParseError creates a new parse error

func (*ParseError) Code

func (e *ParseError) Code() int32

Code returns the http status code for this error

func (*ParseError) Error

func (e *ParseError) Error() string

type Validation

type Validation struct {
	Name  string
	In    string
	Value interface{}

	Values []interface{}
	// contains filtered or unexported fields
}

Validation represents a failure of a precondition

func AdditionalItemsNotAllowed

func AdditionalItemsNotAllowed(name, in string) *Validation

AdditionalItemsNotAllowed an error for invalid additional items

func DuplicateItems

func DuplicateItems(name, in string) *Validation

DuplicateItems error for when an array contains duplicates

func EnumFail

func EnumFail(name, in string, value interface{}, values []interface{}) *Validation

EnumFail error for when an enum validation fails

func ExceedsMaximum

func ExceedsMaximum(name, in string, max float64, exclusive bool) *Validation

ExceedsMaximum error for when maxinum validation fails

func ExceedsMaximumInt

func ExceedsMaximumInt(name, in string, max int64, exclusive bool) *Validation

ExceedsMaximumInt error for when maxinum validation fails

func ExceedsMaximumUint

func ExceedsMaximumUint(name, in string, max uint64, exclusive bool) *Validation

ExceedsMaximumUint error for when maxinum validation fails

func ExceedsMinimum

func ExceedsMinimum(name, in string, min float64, exclusive bool) *Validation

ExceedsMinimum error for when maxinum validation fails

func ExceedsMinimumInt

func ExceedsMinimumInt(name, in string, min int64, exclusive bool) *Validation

ExceedsMinimumInt error for when maxinum validation fails

func ExceedsMinimumUint

func ExceedsMinimumUint(name, in string, min uint64, exclusive bool) *Validation

ExceedsMinimumUint error for when maxinum validation fails

func FailedAllPatternProperties

func FailedAllPatternProperties(name, in, key string) *Validation

FailedAllPatternProperties an error for when the property doesn't match a pattern

func FailedPattern

func FailedPattern(name, in, pattern string) *Validation

FailedPattern error for when a string fails a regex pattern match the pattern that is returned is the ECMA syntax version of the pattern not the golang version.

func InvalidCollectionFormat

func InvalidCollectionFormat(name, in, format string) *Validation

InvalidCollectionFormat another flavor of invalid type error

func InvalidContentType

func InvalidContentType(value string, allowed []string) *Validation

InvalidContentType error for an invalid content type

func InvalidResponseFormat

func InvalidResponseFormat(value string, allowed []string) *Validation

InvalidResponseFormat error for an unacceptable response format request

func InvalidType

func InvalidType(name, in, typeName string, value interface{}) *Validation

InvalidType creates an error for when the type is invalid

func InvalidTypeName

func InvalidTypeName(typeName string) *Validation

InvalidTypeName an error for when the type is invalid

func MultipleOfMustBePositive

func MultipleOfMustBePositive(name, in string, factor interface{}) *Validation

MultipleOfMustBePositive error for when a multipleOf factor is negative

func NotMultipleOf

func NotMultipleOf(name, in string, multiple interface{}) *Validation

NotMultipleOf error for when multiple of validation fails

func PropertyNotAllowed

func PropertyNotAllowed(name, in, key string) *Validation

PropertyNotAllowed an error for when the property doesn't match a pattern

func Required

func Required(name, in string) *Validation

Required error for when a value is missing

func TooFewItems

func TooFewItems(name, in string, min int64) *Validation

TooFewItems error for when an array contains too few items

func TooFewProperties

func TooFewProperties(name, in string, n int64) *Validation

TooFewProperties an error for an object with too few properties

func TooLong

func TooLong(name, in string, max int64) *Validation

TooLong error for when a string is too long

func TooManyItems

func TooManyItems(name, in string, max int64) *Validation

TooManyItems error for when an array contains too many items

func TooManyProperties

func TooManyProperties(name, in string, n int64) *Validation

TooManyProperties an error for an object with too many properties

func TooShort

func TooShort(name, in string, min int64) *Validation

TooShort error for when a string is too short

func (*Validation) Code

func (e *Validation) Code() int32

Code the error code

func (*Validation) Error

func (e *Validation) Error() string

func (*Validation) ValidateName

func (e *Validation) ValidateName(name string) *Validation

ValidateName produces an error message name for an aliased property

Jump to

Keyboard shortcuts

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