55 "encoding/json"
66 "errors"
77 "fmt"
8+ "io"
89 "io/ioutil"
910 "net/http"
1011 "net/url"
@@ -35,6 +36,17 @@ var endpoints = map[string]string{
3536
3637var rateLimiter = time .Tick (time .Minute / 240 )
3738
39+ func createNewRequest (method , url string , body io.Reader , accessID string , accessKey string ) (* http.Request , error ) {
40+ req , err := http .NewRequest (method , url , body )
41+ if err != nil {
42+ return nil , err
43+ }
44+ req .Header .Add ("Content-Type" , "application/json" )
45+ req .Header .Add ("User-Agent" , "SumoLogicTerraformProvider/2.0.0" )
46+ req .SetBasicAuth (accessID , accessKey )
47+ return req , nil
48+ }
49+
3850func (s * Client ) PostWithCookies (urlPath string , payload interface {}) ([]byte , []* http.Cookie , error ) {
3951 relativeURL , err := url .Parse (urlPath )
4052 if err != nil {
@@ -48,14 +60,11 @@ func (s *Client) PostWithCookies(urlPath string, payload interface{}) ([]byte, [
4860 return nil , nil , err
4961 }
5062
51- req , err := http . NewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ))
63+ req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ), s . AccessID , s . AccessKey )
5264 if err != nil {
5365 return nil , nil , err
5466 }
5567
56- req .Header .Add ("Content-Type" , "application/json" )
57- req .SetBasicAuth (s .AccessID , s .AccessKey )
58-
5968 <- rateLimiter
6069 resp , err := s .httpClient .Do (req )
6170 if err != nil {
@@ -85,14 +94,11 @@ func (s *Client) GetWithCookies(urlPath string, cookies []*http.Cookie) ([]byte,
8594
8695 sumoURL := s .BaseURL .ResolveReference (relativeURL )
8796
88- req , err := http . NewRequest (http .MethodGet , sumoURL .String (), nil )
97+ req , err := createNewRequest (http .MethodGet , sumoURL .String (), nil , s . AccessID , s . AccessKey )
8998 if err != nil {
9099 return nil , "" , err
91100 }
92101
93- req .Header .Add ("Content-Type" , "application/json" )
94- req .SetBasicAuth (s .AccessID , s .AccessKey )
95-
96102 for _ , cookie := range cookies {
97103 req .AddCookie (cookie )
98104 }
@@ -123,9 +129,10 @@ func (s *Client) Post(urlPath string, payload interface{}) ([]byte, error) {
123129 sumoURL := s .BaseURL .ResolveReference (relativeURL )
124130
125131 body , _ := json .Marshal (payload )
126- req , _ := http .NewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ))
127- req .Header .Add ("Content-Type" , "application/json" )
128- req .SetBasicAuth (s .AccessID , s .AccessKey )
132+ req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey )
133+ if err != nil {
134+ return nil , err
135+ }
129136
130137 <- rateLimiter
131138 resp , err := s .httpClient .Do (req )
@@ -149,9 +156,10 @@ func (s *Client) Post(urlPath string, payload interface{}) ([]byte, error) {
149156func (s * Client ) PostRawPayload (urlPath string , payload string ) ([]byte , error ) {
150157 relativeURL , _ := url .Parse (urlPath )
151158 sumoURL := s .BaseURL .ResolveReference (relativeURL )
152- req , _ := http .NewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer ([]byte (payload )))
153- req .Header .Add ("Content-Type" , "application/json" )
154- req .SetBasicAuth (s .AccessID , s .AccessKey )
159+ req , err := createNewRequest (http .MethodPost , sumoURL .String (), bytes .NewBuffer ([]byte (payload )), s .AccessID , s .AccessKey )
160+ if err != nil {
161+ return nil , err
162+ }
155163
156164 <- rateLimiter
157165 resp , err := s .httpClient .Do (req )
@@ -179,12 +187,12 @@ func (s *Client) Put(urlPath string, payload interface{}) ([]byte, error) {
179187 _ , etag , _ := s .Get (sumoURL .String ())
180188
181189 body , _ := json .Marshal (payload )
182- req , _ := http .NewRequest (http .MethodPut , sumoURL .String (), bytes .NewBuffer (body ))
183- req .Header .Add ("Content-Type" , "application/json" )
190+ req , err := createNewRequest (http .MethodPut , sumoURL .String (), bytes .NewBuffer (body ), s .AccessID , s .AccessKey )
191+ if err != nil {
192+ return nil , err
193+ }
184194 req .Header .Add ("If-Match" , etag )
185195
186- req .SetBasicAuth (s .AccessID , s .AccessKey )
187-
188196 <- rateLimiter
189197 resp , err := s .httpClient .Do (req )
190198 if err != nil {
@@ -208,9 +216,10 @@ func (s *Client) Get(urlPath string) ([]byte, string, error) {
208216 relativeURL , _ := url .Parse (urlPath )
209217 sumoURL := s .BaseURL .ResolveReference (relativeURL )
210218
211- req , _ := http .NewRequest (http .MethodGet , sumoURL .String (), nil )
212- req .Header .Add ("Content-Type" , "application/json" )
213- req .SetBasicAuth (s .AccessID , s .AccessKey )
219+ req , err := createNewRequest (http .MethodGet , sumoURL .String (), nil , s .AccessID , s .AccessKey )
220+ if err != nil {
221+ return nil , "" , err
222+ }
214223
215224 <- rateLimiter
216225 resp , err := s .httpClient .Do (req )
@@ -237,9 +246,10 @@ func (s *Client) Delete(urlPath string) ([]byte, error) {
237246 relativeURL , _ := url .Parse (urlPath )
238247 sumoURL := s .BaseURL .ResolveReference (relativeURL )
239248
240- req , _ := http .NewRequest (http .MethodDelete , sumoURL .String (), nil )
241- req .Header .Add ("Content-Type" , "application/json" )
242- req .SetBasicAuth (s .AccessID , s .AccessKey )
249+ req , err := createNewRequest (http .MethodDelete , sumoURL .String (), nil , s .AccessID , s .AccessKey )
250+ if err != nil {
251+ return nil , err
252+ }
243253
244254 <- rateLimiter
245255 resp , err := s .httpClient .Do (req )
0 commit comments