Skip to content

Commit 99716b8

Browse files
committed
Show trace on error
1 parent 9287ad0 commit 99716b8

File tree

1 file changed

+30
-17
lines changed

1 file changed

+30
-17
lines changed

rest/client/client.go

+30-17
Original file line numberDiff line numberDiff line change
@@ -77,32 +77,45 @@ func (c *Client) CallURL(ctx context.Context, method, uri string, response any,
7777
req.SetResult(response).SetError(&models.ErrorResponse{})
7878

7979
res, err := req.Execute(method, uri)
80-
if err != nil {
81-
return fmt.Errorf("failed to execute request: %w", err)
82-
} else if res.IsError() {
83-
errRes := res.Error().(*models.ErrorResponse)
84-
errRes.StatusCode = res.StatusCode()
85-
if errRes.RequestID == "" {
86-
errRes.RequestID = res.Header().Get("X-Request-ID")
80+
if err != nil || res.IsError() {
81+
if options.Trace {
82+
c.logRequestTrace(uri, req, res)
8783
}
88-
return errRes
89-
}
9084

91-
if options.Trace {
92-
fmt.Printf("Request URL: %s\n", uri)
93-
sanitizedHeaders := req.Header
94-
for k := range sanitizedHeaders {
95-
if k == "Authorization" {
96-
sanitizedHeaders[k] = []string{"REDACTED"}
85+
if err != nil {
86+
return fmt.Errorf("failed to execute request: %w", err)
87+
} else {
88+
errRes := res.Error().(*models.ErrorResponse)
89+
errRes.StatusCode = res.StatusCode()
90+
if errRes.RequestID == "" {
91+
errRes.RequestID = res.Header().Get("X-Request-ID")
9792
}
93+
return errRes
9894
}
99-
fmt.Printf("Request Headers: %s\n", sanitizedHeaders)
100-
fmt.Printf("Response Headers: %+v\n", res.Header())
95+
}
96+
97+
if options.Trace {
98+
c.logRequestTrace(uri, req, res)
10199
}
102100

103101
return nil
104102
}
105103

104+
func (c *Client) logRequestTrace(uri string, req *resty.Request, res *resty.Response) {
105+
fmt.Printf("Request URL: %s\n", uri)
106+
sanitizedHeaders := req.Header
107+
for k := range sanitizedHeaders {
108+
if k == "Authorization" {
109+
sanitizedHeaders[k] = []string{"REDACTED"}
110+
}
111+
}
112+
fmt.Printf("Request Headers: %s\n", sanitizedHeaders)
113+
if res != nil {
114+
fmt.Printf("Response Status Code: %d\n", res.StatusCode())
115+
fmt.Printf("Response Headers: %+v\n", res.Header())
116+
}
117+
}
118+
106119
func mergeOptions(opts ...models.RequestOption) *models.RequestOptions {
107120
options := &models.RequestOptions{}
108121
for _, o := range opts {

0 commit comments

Comments
 (0)