NewErrorResponse creates a HTTP response from the given error.
(ctx context.Context, err error)
| 44 | |
| 45 | // NewErrorResponse creates a HTTP response from the given error. |
| 46 | func NewErrorResponse(ctx context.Context, err error) Statuser { |
| 47 | var gerr *goa.ServiceError |
| 48 | if errors.As(err, &gerr) { |
| 49 | return &ErrorResponse{ |
| 50 | Name: gerr.Name, |
| 51 | ID: gerr.ID, |
| 52 | Message: gerr.Message, |
| 53 | Timeout: gerr.Timeout, |
| 54 | Temporary: gerr.Temporary, |
| 55 | Fault: gerr.Fault, |
| 56 | } |
| 57 | } |
| 58 | return NewErrorResponse(ctx, goa.Fault("%s", err.Error())) |
| 59 | } |
| 60 | |
| 61 | func (resp *ErrorResponse) MarshalXML(e *xml.Encoder, _ xml.StartElement) error { |
| 62 | return e.Encode(struct { |