f
This commit is contained in:
@@ -188,7 +188,7 @@ func (s *ShumaiService) CallAPIForm(ctx context.Context, apiPath string, reqForm
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
err = errors.Join(ErrSystem, err)
|
err = errors.Join(ErrSystem, err)
|
||||||
if s.logger != nil {
|
if s.logger != nil {
|
||||||
s.logger.LogError(requestID, transactionID, apiPath, err, nil)
|
s.logger.LogError(requestID, transactionID, apiPath, err, map[string]interface{}{"request_params": reqFormData})
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -216,7 +216,7 @@ func (s *ShumaiService) CallAPIForm(ctx context.Context, apiPath string, reqForm
|
|||||||
err = errors.Join(ErrSystem, err)
|
err = errors.Join(ErrSystem, err)
|
||||||
}
|
}
|
||||||
if s.logger != nil {
|
if s.logger != nil {
|
||||||
s.logger.LogError(requestID, transactionID, apiPath, err, nil)
|
s.logger.LogError(requestID, transactionID, apiPath, err, map[string]interface{}{"request_params": reqFormData})
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -227,7 +227,7 @@ func (s *ShumaiService) CallAPIForm(ctx context.Context, apiPath string, reqForm
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
err = errors.Join(ErrSystem, err)
|
err = errors.Join(ErrSystem, err)
|
||||||
if s.logger != nil {
|
if s.logger != nil {
|
||||||
s.logger.LogError(requestID, transactionID, apiPath, err, nil)
|
s.logger.LogError(requestID, transactionID, apiPath, err, map[string]interface{}{"request_params": reqFormData})
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -235,21 +235,11 @@ func (s *ShumaiService) CallAPIForm(ctx context.Context, apiPath string, reqForm
|
|||||||
if resp.StatusCode != http.StatusOK {
|
if resp.StatusCode != http.StatusOK {
|
||||||
err = errors.Join(ErrDatasource, fmt.Errorf("HTTP %d", resp.StatusCode))
|
err = errors.Join(ErrDatasource, fmt.Errorf("HTTP %d", resp.StatusCode))
|
||||||
if s.logger != nil {
|
if s.logger != nil {
|
||||||
var errorResponse interface{} = string(raw)
|
errorPayload := map[string]interface{}{
|
||||||
// 尝试解析 JSON 获取 msg
|
"request_params": reqFormData,
|
||||||
var tempResp ShumaiResponse
|
"response_body": string(raw),
|
||||||
if json.Unmarshal(raw, &tempResp) == nil {
|
|
||||||
msg := tempResp.Msg
|
|
||||||
if msg == "" {
|
|
||||||
msg = tempResp.Message
|
|
||||||
}
|
}
|
||||||
if msg != "" {
|
s.logger.LogError(requestID, transactionID, apiPath, err, errorPayload)
|
||||||
errorResponse = map[string]interface{}{
|
|
||||||
"msg": msg,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
s.logger.LogError(requestID, transactionID, apiPath, err, errorResponse)
|
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -260,11 +250,14 @@ func (s *ShumaiService) CallAPIForm(ctx context.Context, apiPath string, reqForm
|
|||||||
|
|
||||||
var shumaiResp ShumaiResponse
|
var shumaiResp ShumaiResponse
|
||||||
if err := json.Unmarshal(raw, &shumaiResp); err != nil {
|
if err := json.Unmarshal(raw, &shumaiResp); err != nil {
|
||||||
err = errors.Join(ErrSystem, fmt.Errorf("响应解析失败: %w", err))
|
parseErr := errors.Join(ErrSystem, fmt.Errorf("响应解析失败: %w", err))
|
||||||
if s.logger != nil {
|
if s.logger != nil {
|
||||||
s.logger.LogError(requestID, transactionID, apiPath, err, string(raw))
|
s.logger.LogError(requestID, transactionID, apiPath, parseErr, map[string]interface{}{
|
||||||
|
"request_params": reqFormData,
|
||||||
|
"response_body": string(raw),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, parseErr
|
||||||
}
|
}
|
||||||
|
|
||||||
codeStr := strconv.Itoa(shumaiResp.Code)
|
codeStr := strconv.Itoa(shumaiResp.Code)
|
||||||
@@ -279,10 +272,10 @@ func (s *ShumaiService) CallAPIForm(ctx context.Context, apiPath string, reqForm
|
|||||||
shumaiErr = NewShumaiError(codeStr, msg)
|
shumaiErr = NewShumaiError(codeStr, msg)
|
||||||
}
|
}
|
||||||
if s.logger != nil {
|
if s.logger != nil {
|
||||||
errorResponse := map[string]interface{}{
|
s.logger.LogError(requestID, transactionID, apiPath, shumaiErr, map[string]interface{}{
|
||||||
"msg": msg,
|
"request_params": reqFormData,
|
||||||
}
|
"response_body": string(raw),
|
||||||
s.logger.LogError(requestID, transactionID, apiPath, shumaiErr, errorResponse)
|
})
|
||||||
}
|
}
|
||||||
if shumaiErr.IsNoRecord() {
|
if shumaiErr.IsNoRecord() {
|
||||||
return nil, errors.Join(ErrNotFound, shumaiErr)
|
return nil, errors.Join(ErrNotFound, shumaiErr)
|
||||||
@@ -296,14 +289,14 @@ func (s *ShumaiService) CallAPIForm(ctx context.Context, apiPath string, reqForm
|
|||||||
|
|
||||||
dataBytes, err := json.Marshal(shumaiResp.Data)
|
dataBytes, err := json.Marshal(shumaiResp.Data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = errors.Join(ErrSystem, fmt.Errorf("data 序列化失败: %w", err))
|
marshalErr := errors.Join(ErrSystem, fmt.Errorf("data 序列化失败: %w", err))
|
||||||
if s.logger != nil {
|
if s.logger != nil {
|
||||||
errorResponse := map[string]interface{}{
|
s.logger.LogError(requestID, transactionID, apiPath, marshalErr, map[string]interface{}{
|
||||||
"msg": msg,
|
"request_params": reqFormData,
|
||||||
|
"response_body": string(raw),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
s.logger.LogError(requestID, transactionID, apiPath, err, errorResponse)
|
return nil, marshalErr
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}
|
}
|
||||||
return dataBytes, nil
|
return dataBytes, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user