gtserror

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: May 23, 2023 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewResponseError added in v0.9.0

func NewResponseError(rsp *http.Response) error

NewResponseError crafts an error from provided HTTP response including the method, status and body (if any provided). This will also wrap the returned error using WithStatusCode().

func NotFound added in v0.8.0

func NotFound(err error) bool

NotFound checks error for a stored "not found" flag. For example an error from an outgoing HTTP request due to DNS lookup.

func SetNotFound added in v0.8.0

func SetNotFound(err error) error

SetNotFound will wrap the given error to store a "not found" flag, returning wrapped error. See NotFound() for example use-cases.

func SetType added in v0.8.0

func SetType(err error, errType ErrorType) error

SetType will wrap the given error to store a "type" value, returning wrapped error. See Type() for example use-cases.

func StatusCode added in v0.8.0

func StatusCode(err error) int

StatusCode checks error for a stored status code value. For example an error from an outgoing HTTP request may be stored, or an API handler expected response status code may be stored.

func WithStatusCode added in v0.8.0

func WithStatusCode(err error, code int) error

WithStatusCode will wrap the given error to store provided status code, returning wrapped error. See StatusCode() for example use-cases.

Types

type ErrorType added in v0.8.0

type ErrorType string

ErrorType denotes the type of an error, if set.

const (

	// Types returnable from Type(...).
	TypeSMTP ErrorType = "smtp" // smtp (mail)
)

func Type added in v0.8.0

func Type(err error) ErrorType

Type checks error for a stored "type" value. For example an error from sending an email may set a value of "smtp" to indicate this was an SMTP error.

type MultiError added in v0.7.0

type MultiError []string

MultiError allows encapsulating multiple errors under a singular instance, which is useful when you only want to log on errors, not return early / bubble up.

func (*MultiError) Append added in v0.7.0

func (e *MultiError) Append(err error)

func (*MultiError) Appendf added in v0.7.0

func (e *MultiError) Appendf(format string, args ...any)

func (MultiError) Combine added in v0.7.0

func (e MultiError) Combine() error

Combine converts this multiError to a singular error instance, returning nil if empty.

type WithCode

type WithCode interface {
	// Error returns the original internal error for debugging within the GoToSocial logs.
	// This should *NEVER* be returned to a client as it may contain sensitive information.
	Error() string
	// Safe returns the API-safe version of the error for serialization towards a client.
	// There's not much point logging this internally because it won't contain much helpful information.
	Safe() string
	//  Code returns the status code for serving to a client.
	Code() int
}

WithCode wraps an internal error with an http code, and a 'safe' version of the error that can be served to clients without revealing internal business logic.

A typical use of this error would be to first log the Original error, then return the Safe error and the StatusCode to an API caller.

func NewErrorBadRequest

func NewErrorBadRequest(original error, helpText ...string) WithCode

NewErrorBadRequest returns an ErrorWithCode 400 with the given original error and optional help text.

func NewErrorConflict added in v0.2.0

func NewErrorConflict(original error, helpText ...string) WithCode

NewErrorConflict returns an ErrorWithCode 409 with the given original error and optional help text.

func NewErrorForbidden

func NewErrorForbidden(original error, helpText ...string) WithCode

NewErrorForbidden returns an ErrorWithCode 403 with the given original error and optional help text.

func NewErrorGone added in v0.6.0

func NewErrorGone(original error, helpText ...string) WithCode

NewErrorGone returns an ErrorWithCode 410 with the given original error and optional help text.

func NewErrorInternalError

func NewErrorInternalError(original error, helpText ...string) WithCode

NewErrorInternalError returns an ErrorWithCode 500 with the given original error and optional help text.

func NewErrorNotAcceptable added in v0.3.5

func NewErrorNotAcceptable(original error, helpText ...string) WithCode

NewErrorNotAcceptable returns an ErrorWithCode 406 with the given original error and optional help text.

func NewErrorNotFound

func NewErrorNotFound(original error, helpText ...string) WithCode

NewErrorNotFound returns an ErrorWithCode 404 with the given original error and optional help text.

func NewErrorUnauthorized added in v0.3.5

func NewErrorUnauthorized(original error, helpText ...string) WithCode

NewErrorUnauthorized returns an ErrorWithCode 401 with the given original error and optional help text.

func NewErrorUnprocessableEntity added in v0.3.5

func NewErrorUnprocessableEntity(original error, helpText ...string) WithCode

NewErrorUnprocessableEntity returns an ErrorWithCode 422 with the given original error and optional help text.

Jump to

Keyboard shortcuts

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