MCPcopy
hub / github.com/grafana/dskit / HTTPResponseFromError

Function HTTPResponseFromError

httpgrpc/httpgrpc.go:147–165  ·  view source on GitHub ↗

HTTPResponseFromError converts a grpc error into an HTTP response

(err error)

Source from the content-addressed store, hash-verified

145
146// HTTPResponseFromError converts a grpc error into an HTTP response
147func HTTPResponseFromError(err error) (*HTTPResponse, bool) {
148 s, ok := grpcutil.ErrorToStatus(err)
149 if !ok {
150 return nil, false
151 }
152
153 status := s.Proto()
154 if len(status.Details) != 1 {
155 return nil, false
156 }
157
158 var resp HTTPResponse
159 if err := types.UnmarshalAny(status.Details[0], &resp); err != nil {
160 level.Error(log.Global()).Log("msg", "got error containing non-response", "err", err)
161 return nil, false
162 }
163
164 return &resp, true
165}

Callers 7

ServeHTTPMethod · 0.92
checkErrorFunction · 0.92
getCasErrorCodeFunction · 0.92
WriteErrorFunction · 0.85

Calls 4

ErrorToStatusFunction · 0.92
GlobalFunction · 0.92
LogMethod · 0.45
ErrorMethod · 0.45

Tested by 4

checkErrorFunction · 0.74