apierror

package
v2.4.0 Latest Latest
Warning

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

Go to latest
Published: May 10, 2022 License: BSD-3-Clause Imports: 8 Imported by: 65

Documentation

Overview

Package apierror implements a wrapper error for parsing error details from API calls. Both HTTP & gRPC status errors are supported.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIError

type APIError struct {
	// contains filtered or unexported fields
}

APIError wraps either a gRPC Status error or a HTTP googleapi.Error. It implements error and Status interfaces.

func FromError

func FromError(err error) (*APIError, bool)

FromError parses a Status error or a googleapi.Error and builds an APIError.

func (*APIError) Details

func (a *APIError) Details() ErrDetails

Details presents the error details of the APIError.

func (*APIError) Domain

func (a *APIError) Domain() string

Domain returns the domain in an ErrorInfo. If ErrorInfo is nil, it returns an empty string.

func (*APIError) Error

func (a *APIError) Error() string

Error returns a readable representation of the APIError.

func (*APIError) GRPCStatus

func (a *APIError) GRPCStatus() *status.Status

GRPCStatus extracts the underlying gRPC Status error. This method is necessary to fulfill the interface described in https://pkg.go.dev/google.golang.org/grpc/status#FromError.

func (*APIError) Metadata

func (a *APIError) Metadata() map[string]string

Metadata returns the metadata in an ErrorInfo. If ErrorInfo is nil, it returns nil.

func (*APIError) Reason

func (a *APIError) Reason() string

Reason returns the reason in an ErrorInfo. If ErrorInfo is nil, it returns an empty string.

func (*APIError) Unwrap

func (a *APIError) Unwrap() error

Unwrap extracts the original error.

type ErrDetails

type ErrDetails struct {
	ErrorInfo           *errdetails.ErrorInfo
	BadRequest          *errdetails.BadRequest
	PreconditionFailure *errdetails.PreconditionFailure
	QuotaFailure        *errdetails.QuotaFailure
	RetryInfo           *errdetails.RetryInfo
	ResourceInfo        *errdetails.ResourceInfo
	RequestInfo         *errdetails.RequestInfo
	DebugInfo           *errdetails.DebugInfo
	Help                *errdetails.Help
	LocalizedMessage    *errdetails.LocalizedMessage

	// Unknown stores unidentifiable error details.
	Unknown []interface{}
}

ErrDetails holds the google/rpc/error_details.proto messages.

func (ErrDetails) String

func (e ErrDetails) String() string

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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