Skip to content
This repository was archived by the owner on Jan 15, 2024. It is now read-only.

Commit 0945c55

Browse files
committed
Pass slice of bytes instead of io.Reader in Client.request
Signed-off-by: Leandro López (inkel) <[email protected]>
1 parent 35980b7 commit 0945c55

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+82
-126
lines changed

Diff for: admin.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
)
@@ -25,7 +24,7 @@ func (c *Client) CreateUser(user User) (int64, error) {
2524
ID int64 `json:"id"`
2625
}{}
2726

28-
err = c.request("POST", "/api/admin/users", nil, bytes.NewBuffer(data), &created)
27+
err = c.request("POST", "/api/admin/users", nil, data, &created)
2928
if err != nil {
3029
return id, err
3130
}
@@ -45,7 +44,7 @@ func (c *Client) UpdateUserPassword(id int64, password string) error {
4544
if err != nil {
4645
return err
4746
}
48-
return c.request("PUT", fmt.Sprintf("/api/admin/users/%d/password", id), nil, bytes.NewBuffer(data), nil)
47+
return c.request("PUT", fmt.Sprintf("/api/admin/users/%d/password", id), nil, data, nil)
4948
}
5049

5150
// UpdateUserPermissions sets a user's admin status.
@@ -55,7 +54,7 @@ func (c *Client) UpdateUserPermissions(id int64, isAdmin bool) error {
5554
if err != nil {
5655
return err
5756
}
58-
return c.request("PUT", fmt.Sprintf("/api/admin/users/%d/permissions", id), nil, bytes.NewBuffer(data), nil)
57+
return c.request("PUT", fmt.Sprintf("/api/admin/users/%d/permissions", id), nil, data, nil)
5958
}
6059

6160
// PauseAllAlerts pauses all Grafana alerts.
@@ -68,7 +67,7 @@ func (c *Client) PauseAllAlerts() (PauseAllAlertsResponse, error) {
6867
return result, err
6968
}
7069

71-
err = c.request("POST", "/api/admin/pause-all-alerts", nil, bytes.NewBuffer(data), &result)
70+
err = c.request("POST", "/api/admin/pause-all-alerts", nil, data, &result)
7271

7372
return result, err
7473
}

Diff for: alert.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"net/url"
@@ -68,7 +67,7 @@ func (c *Client) PauseAlert(id int64) (PauseAlertResponse, error) {
6867
return result, err
6968
}
7069

71-
err = c.request("POST", path, nil, bytes.NewBuffer(data), &result)
70+
err = c.request("POST", path, nil, data, &result)
7271
if err != nil {
7372
return result, err
7473
}

Diff for: alerting_alert_rule.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"time"
@@ -93,7 +92,7 @@ func (c *Client) SetAlertRuleGroup(group RuleGroup) error {
9392
}
9493

9594
uri := fmt.Sprintf("/api/v1/provisioning/folder/%s/rule-groups/%s", folderUID, name)
96-
return c.request("PUT", uri, nil, bytes.NewBuffer(req), nil)
95+
return c.request("PUT", uri, nil, req, nil)
9796
}
9897

9998
// NewAlertRule creates a new alert rule and returns its UID.
@@ -104,7 +103,7 @@ func (c *Client) NewAlertRule(ar *AlertRule) (string, error) {
104103
return "", err
105104
}
106105
result := AlertRule{}
107-
err = c.request("POST", "/api/v1/provisioning/alert-rules", nil, bytes.NewBuffer(req), &result)
106+
err = c.request("POST", "/api/v1/provisioning/alert-rules", nil, req, &result)
108107
if err != nil {
109108
return "", err
110109
}
@@ -120,7 +119,7 @@ func (c *Client) UpdateAlertRule(ar *AlertRule) error {
120119
return err
121120
}
122121

123-
return c.request("PUT", uri, nil, bytes.NewBuffer(req), nil)
122+
return c.request("PUT", uri, nil, req, nil)
124123
}
125124

126125
// DeleteAlertRule deletes a alert rule, identified by the alert rule's UID.

Diff for: alerting_contact_point.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"net/url"
@@ -62,7 +61,7 @@ func (c *Client) NewContactPoint(p *ContactPoint) (string, error) {
6261
}
6362
result := ContactPoint{}
6463

65-
err = c.request("POST", "/api/v1/provisioning/contact-points", nil, bytes.NewBuffer(req), &result)
64+
err = c.request("POST", "/api/v1/provisioning/contact-points", nil, req, &result)
6665
if err != nil {
6766
return "", err
6867
}
@@ -77,7 +76,7 @@ func (c *Client) UpdateContactPoint(p *ContactPoint) error {
7776
return err
7877
}
7978

80-
return c.request("PUT", uri, nil, bytes.NewBuffer(req), nil)
79+
return c.request("PUT", uri, nil, req, nil)
8180
}
8281

8382
// DeleteContactPoint deletes a contact point.

Diff for: alerting_message_template.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
)
@@ -44,7 +43,7 @@ func (c *Client) SetMessageTemplate(name, content string) error {
4443
}
4544

4645
uri := fmt.Sprintf("/api/v1/provisioning/templates/%s", name)
47-
return c.request("PUT", uri, nil, bytes.NewBuffer(body), nil)
46+
return c.request("PUT", uri, nil, body, nil)
4847
}
4948

5049
// DeleteMessageTemplate deletes a message template.

Diff for: alerting_mute_timing.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
)
@@ -65,7 +64,7 @@ func (c *Client) NewMuteTiming(mt *MuteTiming) error {
6564
return err
6665
}
6766

68-
return c.request("POST", "/api/v1/provisioning/mute-timings", nil, bytes.NewBuffer(req), nil)
67+
return c.request("POST", "/api/v1/provisioning/mute-timings", nil, req, nil)
6968
}
7069

7170
// UpdateMuteTiming updates a mute timing.
@@ -76,7 +75,7 @@ func (c *Client) UpdateMuteTiming(mt *MuteTiming) error {
7675
return err
7776
}
7877

79-
return c.request("PUT", uri, nil, bytes.NewBuffer(req), nil)
78+
return c.request("PUT", uri, nil, req, nil)
8079
}
8180

8281
// DeleteMutetiming deletes a mute timing.

Diff for: alerting_notification_policy.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
)
@@ -116,7 +115,7 @@ func (c *Client) SetNotificationPolicyTree(np *NotificationPolicyTree) error {
116115
if err != nil {
117116
return err
118117
}
119-
return c.request("PUT", "/api/v1/provisioning/policies", nil, bytes.NewBuffer(req), nil)
118+
return c.request("PUT", "/api/v1/provisioning/policies", nil, req, nil)
120119
}
121120

122121
func (c *Client) ResetNotificationPolicyTree() error {

Diff for: alertnotification.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
)
@@ -59,7 +58,7 @@ func (c *Client) NewAlertNotification(a *AlertNotification) (int64, error) {
5958
ID int64 `json:"id"`
6059
}{}
6160

62-
err = c.request("POST", "/api/alert-notifications", nil, bytes.NewBuffer(data), &result)
61+
err = c.request("POST", "/api/alert-notifications", nil, data, &result)
6362
if err != nil {
6463
return 0, err
6564
}
@@ -75,7 +74,7 @@ func (c *Client) UpdateAlertNotification(a *AlertNotification) error {
7574
if err != nil {
7675
return err
7776
}
78-
err = c.request("PUT", path, nil, bytes.NewBuffer(data), nil)
77+
err = c.request("PUT", path, nil, data, nil)
7978

8079
return err
8180
}

Diff for: annotation.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"net/url"
@@ -58,7 +57,7 @@ func (c *Client) NewAnnotation(a *Annotation) (int64, error) {
5857
ID int64 `json:"id"`
5958
}{}
6059

61-
err = c.request("POST", "/api/annotations", nil, bytes.NewBuffer(data), &result)
60+
err = c.request("POST", "/api/annotations", nil, data, &result)
6261
if err != nil {
6362
return 0, err
6463
}
@@ -77,7 +76,7 @@ func (c *Client) NewGraphiteAnnotation(gfa *GraphiteAnnotation) (int64, error) {
7776
ID int64 `json:"id"`
7877
}{}
7978

80-
err = c.request("POST", "/api/annotations/graphite", nil, bytes.NewBuffer(data), &result)
79+
err = c.request("POST", "/api/annotations/graphite", nil, data, &result)
8180
if err != nil {
8281
return 0, err
8382
}
@@ -97,7 +96,7 @@ func (c *Client) UpdateAnnotation(id int64, a *Annotation) (string, error) {
9796
Message string `json:"message"`
9897
}{}
9998

100-
err = c.request("PUT", path, nil, bytes.NewBuffer(data), &result)
99+
err = c.request("PUT", path, nil, data, &result)
101100
if err != nil {
102101
return "", err
103102
}
@@ -117,7 +116,7 @@ func (c *Client) PatchAnnotation(id int64, a *Annotation) (string, error) {
117116
Message string `json:"message"`
118117
}{}
119118

120-
err = c.request("PATCH", path, nil, bytes.NewBuffer(data), &result)
119+
err = c.request("PATCH", path, nil, data, &result)
121120
if err != nil {
122121
return "", err
123122
}
@@ -132,7 +131,7 @@ func (c *Client) DeleteAnnotation(id int64) (string, error) {
132131
Message string `json:"message"`
133132
}{}
134133

135-
err := c.request("DELETE", path, nil, bytes.NewBuffer(nil), &result)
134+
err := c.request("DELETE", path, nil, nil, &result)
136135
if err != nil {
137136
return "", err
138137
}
@@ -147,7 +146,7 @@ func (c *Client) DeleteAnnotationByRegionID(id int64) (string, error) {
147146
Message string `json:"message"`
148147
}{}
149148

150-
err := c.request("DELETE", path, nil, bytes.NewBuffer(nil), &result)
149+
err := c.request("DELETE", path, nil, nil, &result)
151150
if err != nil {
152151
return "", err
153152
}

Diff for: api_key.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"net/url"
@@ -42,7 +41,7 @@ func (c *Client) CreateAPIKey(request CreateAPIKeyRequest) (CreateAPIKeyResponse
4241
return response, err
4342
}
4443

45-
err = c.request("POST", "/api/auth/keys", nil, bytes.NewBuffer(data), &response)
44+
err = c.request("POST", "/api/auth/keys", nil, data, &response)
4645
return response, err
4746
}
4847

Diff for: api_key_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const (
2222
"role": "Admin",
2323
"expiration": "2021-10-30T10:52:03+03:00"
2424
}
25-
]` //#nosec
25+
]` //#nosec
2626
)
2727

2828
func TestCreateAPIKey(t *testing.T) {

Diff for: builtin_role_assignments.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
)
@@ -33,7 +32,7 @@ func (c *Client) NewBuiltInRoleAssignment(builtInRoleAssignment BuiltInRoleAssig
3332

3433
br := &BuiltInRoleAssignment{}
3534

36-
err = c.request("POST", baseURL, nil, bytes.NewBuffer(body), &br)
35+
err = c.request("POST", baseURL, nil, body, &br)
3736
if err != nil {
3837
return nil, err
3938
}
@@ -52,7 +51,7 @@ func (c *Client) DeleteBuiltInRoleAssignment(builtInRole BuiltInRoleAssignment)
5251
"global": {fmt.Sprint(builtInRole.Global)},
5352
}
5453
url := fmt.Sprintf("%s/%s/roles/%s", baseURL, builtInRole.BuiltinRole, builtInRole.RoleUID)
55-
err = c.request("DELETE", url, qp, bytes.NewBuffer(data), nil)
54+
err = c.request("DELETE", url, qp, data, nil)
5655

5756
return err
5857
}

Diff for: client.go

+1-6
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,14 @@ func (c Client) WithOrgID(orgID int64) *Client {
7373
return &c
7474
}
7575

76-
func (c *Client) request(method, requestPath string, query url.Values, bodyRd io.Reader, responseStruct interface{}) error {
76+
func (c *Client) request(method, requestPath string, query url.Values, body []byte, responseStruct interface{}) error {
7777
var (
7878
req *http.Request
7979
resp *http.Response
8080
err error
8181
bodyContents []byte
8282
)
8383

84-
body, err := io.ReadAll(bodyRd)
85-
if err != nil {
86-
return fmt.Errorf("cannot read request body: %w", err)
87-
}
88-
8984
// retry logic
9085
for n := 0; n <= c.config.NumRetries; n++ {
9186
req, err = c.newRequest(method, requestPath, query, bytes.NewReader(body))

Diff for: client_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func TestRequest_200UnmarshalPut(t *testing.T) {
169169
}{}
170170
q := url.Values{}
171171
q.Add("a", "b")
172-
err = client.request("PUT", "/foo", q, bytes.NewBuffer(data), &result)
172+
err = client.request("PUT", "/foo", q, data, &result)
173173
if err != nil {
174174
t.Error(err)
175175
}
@@ -243,7 +243,7 @@ func TestClient_requestWithRetries(t *testing.T) {
243243

244244
var got res
245245

246-
if err := c.request(http.MethodPost, "/", nil, bytes.NewReader(body), &got); err != nil {
246+
if err := c.request(http.MethodPost, "/", nil, body, &got); err != nil {
247247
t.Fatalf("unexpected error sending request: %v", err)
248248
}
249249

Diff for: cloud_access_policy.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package gapi
22

33
import (
4-
"bytes"
54
"encoding/json"
65
"fmt"
76
"net/url"
@@ -76,7 +75,7 @@ func (c *Client) CreateCloudAccessPolicy(region string, input CreateCloudAccessP
7675

7776
err = c.request("POST", "/api/v1/accesspolicies", url.Values{
7877
"region": []string{region},
79-
}, bytes.NewBuffer(data), &result)
78+
}, data, &result)
8079

8180
return result, err
8281
}
@@ -91,7 +90,7 @@ func (c *Client) UpdateCloudAccessPolicy(region, id string, input UpdateCloudAcc
9190

9291
err = c.request("POST", fmt.Sprintf("/api/v1/accesspolicies/%s", id), url.Values{
9392
"region": []string{region},
94-
}, bytes.NewBuffer(data), &result)
93+
}, data, &result)
9594

9695
return result, err
9796
}

0 commit comments

Comments
 (0)