Skip to content

Commit a6b5fa4

Browse files
committed
Refactor Client to consolidate rate limiting and request/response logging
1 parent fd1ab7e commit a6b5fa4

File tree

1 file changed

+21
-24
lines changed

1 file changed

+21
-24
lines changed

sumologic/sumologic_client.go

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,17 @@ func createNewRequest(method, url string, body io.Reader, accessID string, acces
7979
return req, nil
8080
}
8181

82+
func (s *Client) doSumoRequest(req *http.Request) (*http.Response, error) {
83+
<-rateLimiter.C
84+
resp, err := s.httpClient.Do(req)
85+
if err != nil {
86+
return nil, err
87+
}
88+
89+
logRequestAndResponse(req, resp)
90+
return resp, nil
91+
}
92+
8293
func logRequestAndResponse(req *http.Request, resp *http.Response) {
8394
var maskedHeader = req.Header.Clone()
8495
maskedHeader.Set("Authorization", "xxxxxxxxxxx")
@@ -96,16 +107,13 @@ func (s *Client) Post(urlPath string, payload interface{}) ([]byte, error) {
96107
return nil, err
97108
}
98109

99-
<-rateLimiter.C
100-
resp, err := s.httpClient.Do(req)
101-
110+
resp, err := s.doSumoRequest(req)
102111
if err != nil {
103112
return nil, err
104113
}
105-
logRequestAndResponse(req, resp)
106-
defer resp.Body.Close()
107114

108115
d, err := io.ReadAll(resp.Body)
116+
defer resp.Body.Close()
109117
if err != nil {
110118
return nil, err
111119
}
@@ -123,15 +131,13 @@ func (s *Client) PostRawPayload(urlPath string, payload string) ([]byte, error)
123131
return nil, err
124132
}
125133

126-
<-rateLimiter.C
127-
resp, err := s.httpClient.Do(req)
128-
134+
resp, err := s.doSumoRequest(req)
129135
if err != nil {
130136
return nil, err
131137
}
132-
logRequestAndResponse(req, resp)
133138

134139
d, err := io.ReadAll(resp.Body)
140+
defer resp.Body.Close()
135141
if err != nil {
136142
return nil, err
137143
}
@@ -157,16 +163,13 @@ func (s *Client) Put(urlPath string, payload interface{}) ([]byte, error) {
157163
}
158164
req.Header.Add("If-Match", etag)
159165

160-
<-rateLimiter.C
161-
resp, err := s.httpClient.Do(req)
162-
166+
resp, err := s.doSumoRequest(req)
163167
if err != nil {
164168
return nil, err
165169
}
166-
logRequestAndResponse(req, resp)
167-
defer resp.Body.Close()
168170

169171
d, err := io.ReadAll(resp.Body)
172+
defer resp.Body.Close()
170173
if err != nil {
171174
return nil, err
172175
}
@@ -188,16 +191,13 @@ func (s *Client) GetWithErrOpt(urlPath string, return404Err bool) ([]byte, strin
188191
return nil, "", err
189192
}
190193

191-
<-rateLimiter.C
192-
resp, err := s.httpClient.Do(req)
194+
resp, err := s.doSumoRequest(req)
193195
if err != nil {
194196
return nil, "", err
195197
}
196-
logRequestAndResponse(req, resp)
197-
198-
defer resp.Body.Close()
199198

200199
d, err := io.ReadAll(resp.Body)
200+
defer resp.Body.Close()
201201
if err != nil {
202202
return nil, "", err
203203
}
@@ -221,16 +221,13 @@ func (s *Client) Delete(urlPath string) ([]byte, error) {
221221
return nil, err
222222
}
223223

224-
<-rateLimiter.C
225-
resp, err := s.httpClient.Do(req)
226-
224+
resp, err := s.doSumoRequest(req)
227225
if err != nil {
228226
return nil, err
229227
}
230-
logRequestAndResponse(req, resp)
231-
defer resp.Body.Close()
232228

233229
d, err := io.ReadAll(resp.Body)
230+
defer resp.Body.Close()
234231
if err != nil {
235232
return nil, err
236233
}

0 commit comments

Comments
 (0)