From bf388e0ed335c7e11a2533c851d7810e33b7e122 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Fri, 4 Nov 2022 16:23:52 -0600 Subject: [PATCH] replace Error.Err with Error.Wrap() --- googleapi/googleapi.go | 12 +++++++++--- internal/gensupport/error.go | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/googleapi/googleapi.go b/googleapi/googleapi.go index a520579e12d..65b125abd2c 100644 --- a/googleapi/googleapi.go +++ b/googleapi/googleapi.go @@ -79,8 +79,9 @@ type Error struct { Header http.Header Errors []ErrorItem - // Err is a wrapped apierror.APIError, typically derived from this Error. - Err error + // err is typically a wrapped apierror.APIError, see + // google-api-go-client/internal/gensupport/error.go. + err error } // ErrorItem is a detailed error code & message from the Google API frontend. @@ -124,8 +125,13 @@ func (e *Error) Error() string { return buf.String() } +// Wrap allows an existing Error to wrap another error. See also [Error.Unwrap]. +func (e *Error) Wrap(err error) { + e.err = err +} + func (e *Error) Unwrap() error { - return e.Err + return e.err } type errorReply struct { diff --git a/internal/gensupport/error.go b/internal/gensupport/error.go index 339e4874d43..fa9d091930a 100644 --- a/internal/gensupport/error.go +++ b/internal/gensupport/error.go @@ -19,7 +19,7 @@ func WrapError(err error) error { apiError, ok := apierror.ParseError(err, false) var herr *googleapi.Error if ok && errors.As(err, &herr) { - herr.Err = apiError + herr.Wrap(apiError) } return err }