rpcerr

package
v0.0.80 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package rpcerr provides a way to return detailed information for an RPC request error. The error is normally JSON encoded.

Index

Constants

View Source
const (
	UnknownID               = "http.response.status.unknown"                  // ID for Unknown status
	BadRequestID            = "http.response.status.bad_request"              // ID for Bad Request status
	UnauthorizedID          = "http.response.status.unauthorized"             // ID for Unauthorized status
	ForbiddenID             = "http.response.status.forbidden"                // ID for Forbidden status
	NotFoundID              = "http.response.status.not_found"                // ID for Not Found status
	MethodNotAllowedID      = "http.response.status.method_not_allowed"       // ID for Method Not Allowed status
	TooManyRequestsID       = "http.response.status.too_many_requests"        // ID for Too Many Requests status
	RequestEntityTooLargeID = "http.response.status.request_entity_too_large" // ID for Request Entity Too Large status
	InternalServerErrorID   = "http.response.status.internal_server_error"    // ID for Internal Server Error status
	ConflictID              = "http.response.status.conflict"                 // ID for Conflict status
	RequestTimeoutID        = "http.response.status.request_timeout"          // ID for Request Timeout status
)

Define constant IDs for various Error status codes

Variables

View Source
var File_errors_rpcerr_rpcerr_proto protoreflect.FileDescriptor

Functions

func BadRequest

func BadRequest(format string, obj ...any) error

BadRequest generates a 400 error.

func Code

func Code(err error) int

Code returns the code of an error

func Conflict

func Conflict(format string, obj ...any) error

Conflict generates a 409 error.

func Equal

func Equal(err1 error, err2 error) bool

Equal tries to compare errors, which are equal if they have the same NewCode

func Forbidden

func Forbidden(format string, obj ...any) error

Forbidden generates a 403 error.

func InternalServerError

func InternalServerError(format string, obj ...any) error

InternalServerError generates a 500 error.

func LookupID

func LookupID(code int32) (string, bool)

LookupID looks up the identifier corresponding to the given code. This function uses a read lock to ensure safe concurrent access to shared resources. Parameters: code - The integer value of the code to look up.

Returns: The string identifier corresponding to the code.

func MethodNotAllowed

func MethodNotAllowed(format string, obj ...any) error

MethodNotAllowed generates a 405 error.

func New

func New(id string, code int32, detail string) error

New generates a custom error.

func NewCode added in v0.0.79

func NewCode(code int32, detail string) error

NewCode generates an error for a given code

func NewCodeFormat added in v0.0.79

func NewCodeFormat(code int32, format string, args ...any) error

NewCodeFormat generates an error for a given code

func NewFormat

func NewFormat(id string, code int32, format string, args ...any) error

NewFormat generates an Error error

func NotFound

func NotFound(format string, obj ...any) error

NotFound generates a 404 error.

func RegisterCode

func RegisterCode(code int32, id string)

RegisterCode register a new error code with the given ID,or overwriting any existing one

func RequestEntityTooLarge

func RequestEntityTooLarge(format string, obj ...any) error

RequestEntityTooLarge generates a 413 error.

func Timeout

func Timeout(format string, obj ...any) error

Timeout generates a 408 error.

func TooManyRequests

func TooManyRequests(format string, obj ...any) error

TooManyRequests generates a 429 error.

func Unauthorized

func Unauthorized(format string, obj ...any) error

Unauthorized generates a 401 error.

Types

type Error

type Error struct {
	Id     string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Code   int32  `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`
	Detail string `protobuf:"bytes,3,opt,name=detail,proto3" json:"detail,omitempty"`
	// contains filtered or unexported fields
}

func FromError

func FromError(err error) *Error

FromError tries to convert a Go error to *Error

func Parse

func Parse(err string) *Error

Parse tries to parse a JSON string into an error. If that fails, it will set the given string as the error detail.

func (*Error) Descriptor deprecated

func (*Error) Descriptor() ([]byte, []int)

Deprecated: Use Error.ProtoReflect.Descriptor instead.

func (*Error) Error

func (obj *Error) Error() string

Error returns the JSON representation of the error

func (*Error) GetCode

func (x *Error) GetCode() int32

func (*Error) GetDetail

func (x *Error) GetDetail() string

func (*Error) GetId

func (x *Error) GetId() string

func (*Error) Is

func (obj *Error) Is(err error) bool

func (*Error) ProtoMessage

func (*Error) ProtoMessage()

func (*Error) ProtoReflect

func (x *Error) ProtoReflect() protoreflect.Message

func (*Error) Reset

func (x *Error) Reset()

func (*Error) Status

func (obj *Error) Status() string

func (*Error) String

func (x *Error) String() string

type MultiError

type MultiError struct {
	Errors []*Error `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
	// contains filtered or unexported fields
}

func NewMultiError

func NewMultiError() *MultiError

func (*MultiError) Append

func (e *MultiError) Append(err *Error)

func (*MultiError) Descriptor deprecated

func (*MultiError) Descriptor() ([]byte, []int)

Deprecated: Use MultiError.ProtoReflect.Descriptor instead.

func (*MultiError) Error

func (e *MultiError) Error() string

func (*MultiError) GetErrors

func (x *MultiError) GetErrors() []*Error

func (*MultiError) HasErrors

func (e *MultiError) HasErrors() bool

func (*MultiError) ProtoMessage

func (*MultiError) ProtoMessage()

func (*MultiError) ProtoReflect

func (x *MultiError) ProtoReflect() protoreflect.Message

func (*MultiError) Reset

func (x *MultiError) Reset()

func (*MultiError) String

func (x *MultiError) String() string

Jump to

Keyboard shortcuts

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