MCPcopy Index your code
hub / github.com/aiprodcoder/MIXAPI / RelayErrorHandler

Function RelayErrorHandler

service/error.go:82–112  ·  view source on GitHub ↗
(resp *http.Response, showBodyWhenFail bool)

Source from the content-addressed store, hash-verified

80}
81
82func RelayErrorHandler(resp *http.Response, showBodyWhenFail bool) (newApiErr *types.NewAPIError) {
83 newApiErr = &types.NewAPIError{
84 StatusCode: resp.StatusCode,
85 ErrorType: types.ErrorTypeOpenAIError,
86 }
87
88 responseBody, err := io.ReadAll(resp.Body)
89 if err != nil {
90 return
91 }
92 common.CloseResponseBodyGracefully(resp)
93 var errResponse dto.GeneralErrorResponse
94
95 err = common.Unmarshal(responseBody, &errResponse)
96 if err != nil {
97 if showBodyWhenFail {
98 newApiErr.Err = fmt.Errorf("bad response status code %d, body: %s", resp.StatusCode, string(responseBody))
99 } else {
100 newApiErr.Err = fmt.Errorf("bad response status code %d", resp.StatusCode)
101 }
102 return
103 }
104 if errResponse.Error.Message != "" {
105 // General format error (OpenAI, Anthropic, Gemini, etc.)
106 newApiErr = types.WithOpenAIError(errResponse.Error, resp.StatusCode)
107 } else {
108 newApiErr = types.NewErrorWithStatusCode(errors.New(errResponse.ToMessage()), types.ErrorCodeBadResponseStatusCode, resp.StatusCode)
109 newApiErr.ErrorType = types.ErrorTypeOpenAIError
110 }
111 return
112}
113
114func ResetStatusCode(newApiErr *types.NewAPIError, statusCodeMappingStr string) {
115 if statusCodeMappingStr == "" || statusCodeMappingStr == "{}" {

Callers 9

testChannelFunction · 0.92
ClaudeHelperFunction · 0.92
GeminiHelperFunction · 0.92
EmbeddingHelperFunction · 0.92
ResponsesHelperFunction · 0.92
RerankHelperFunction · 0.92
ImageHelperFunction · 0.92
AudioHelperFunction · 0.92
TextHelperFunction · 0.92

Calls 5

ToMessageMethod · 0.95
UnmarshalFunction · 0.92
WithOpenAIErrorFunction · 0.92
NewErrorWithStatusCodeFunction · 0.92

Tested by

no test coverage detected