MCPcopy Create free account
hub / github.com/PaperDebugger/paperdebugger / errorHandler

Method errorHandler

internal/api/server.go:157–184  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

155}
156
157func (s *Server) errorHandler() func(ctx context.Context, mux *runtime.ServeMux, marshaler runtime.Marshaler, w http.ResponseWriter, r *http.Request, err error) {
158 return func(ctx context.Context, mux *runtime.ServeMux, marshaler runtime.Marshaler, w http.ResponseWriter, r *http.Request, reqError error) {
159 s.logger.Errorf("request error: %v", reqError)
160
161 code := status.Code(reqError)
162 errCode := sharedv1.ErrorCode_ERROR_CODE_UNKNOWN
163 if code >= codes.Code(sharedv1.ErrorCode_ERROR_CODE_UNKNOWN) {
164 errCode = sharedv1.ErrorCode(code)
165 }
166
167 err := &sharedv1.Error{
168 Code: errCode,
169 Message: cleanErrorMessage(reqError),
170 }
171 w.Header().Set("Content-Type", "application/json")
172 w.WriteHeader(shared.GetHTTPCode(reqError))
173 data, jsonErr := json.Marshal(err)
174 if jsonErr != nil {
175 s.logger.Errorf("failed to marshal error message: %v", err)
176 return
177 }
178 _, writeErr := w.Write(data)
179 if writeErr != nil {
180 s.logger.Errorf("failed to send error message: %v", err)
181 return
182 }
183 }
184}
185
186// cleanErrorMessage removes technical gRPC error prefixes from error messages
187func cleanErrorMessage(err error) string {

Callers 1

RunMethod · 0.95

Calls 2

GetHTTPCodeFunction · 0.92
cleanErrorMessageFunction · 0.85

Tested by

no test coverage detected