@@ -125,10 +125,10 @@ func (c *Client) executeRequestWithRetries(method, endpoint string, body, out in
125
125
}()
126
126
127
127
// Determine which set of encoding and content-type request rules to use
128
- apiHandler := c .APIHandler
128
+ // apiHandler := c.APIHandler
129
129
130
130
// Marshal Request with correct encoding
131
- requestData , err := apiHandler .MarshalRequest (body , method , endpoint , log )
131
+ requestData , err := c . APIHandler .MarshalRequest (body , method , endpoint , log )
132
132
if err != nil {
133
133
return nil , err
134
134
}
@@ -257,11 +257,6 @@ func (c *Client) executeRequest(method, endpoint string, body, out interface{},
257
257
// Construct URL using the ConstructAPIResourceEndpoint function
258
258
url := c .APIHandler .ConstructAPIResourceEndpoint (c .InstanceName , endpoint , log )
259
259
260
- // Initialize total request counter
261
- //c.PerfMetrics.lock.Lock()
262
- //c.PerfMetrics.TotalRequests++
263
- //c.PerfMetrics.lock.Unlock()
264
-
265
260
// Perform Request
266
261
req , err := http .NewRequest (method , url , bytes .NewBuffer (requestData ))
267
262
if err != nil {
@@ -273,9 +268,6 @@ func (c *Client) executeRequest(method, endpoint string, body, out interface{},
273
268
headerManager .SetRequestHeaders (endpoint )
274
269
headerManager .LogHeaders (c )
275
270
276
- // Start response time measurement
277
- //responseTimeStart := time.Now()
278
- // Set the context with the request ID
279
271
req = req .WithContext (ctx )
280
272
281
273
// Execute the HTTP request
@@ -284,19 +276,17 @@ func (c *Client) executeRequest(method, endpoint string, body, out interface{},
284
276
return nil , err
285
277
}
286
278
287
- // After each request, compute and update response time
288
- //responseDuration := time.Since(responseTimeStart)
289
- //c.updatePerformanceMetrics(responseDuration)
290
-
291
279
// Checks for the presence of a deprecation header in the HTTP response and logs if found.
292
280
CheckDeprecationHeader (resp , log )
293
281
294
- // Handle the response
295
- if err := c .APIHandler .UnmarshalResponse (resp , out , log ); err != nil {
296
- return resp , err
282
+ // Check for successful status code
283
+ if resp .StatusCode < 200 || resp .StatusCode >= 300 {
284
+ // Handle error responses
285
+ return nil , c .handleErrorResponse (resp , log , "Failed to process the HTTP request" , method , endpoint )
286
+ } else {
287
+ // Handle successful responses
288
+ return resp , c .handleSuccessResponse (resp , out , log , method , endpoint )
297
289
}
298
-
299
- return resp , nil
300
290
}
301
291
302
292
// executeHTTPRequest sends an HTTP request using the client's HTTP client. It logs the request and error details, if any,
@@ -428,28 +418,30 @@ func (c *Client) DoMultipartRequest(method, endpoint string, fields map[string]s
428
418
}
429
419
430
420
// Determine which set of encoding and content-type request rules to use
431
- apiHandler := c .APIHandler
421
+ // apiHandler := c.APIHandler
432
422
433
423
// Marshal the multipart form data
434
- requestData , contentType , err := apiHandler .MarshalMultipartRequest (fields , files , log )
424
+ requestData , contentType , err := c . APIHandler .MarshalMultipartRequest (fields , files , log )
435
425
if err != nil {
436
426
return nil , err
437
427
}
438
428
439
429
// Construct URL using the ConstructAPIResourceEndpoint function
440
- url := apiHandler .ConstructAPIResourceEndpoint (c .InstanceName , endpoint , log )
430
+ url := c . APIHandler .ConstructAPIResourceEndpoint (c .InstanceName , endpoint , log )
441
431
442
432
// Create the request
443
433
req , err := http .NewRequest (method , url , bytes .NewBuffer (requestData ))
444
434
if err != nil {
445
435
return nil , err
446
436
}
447
437
448
- // Get Request Headers dynamically based on api handler
449
- acceptHeader := apiHandler . GetAcceptHeader ( )
438
+ // Initialize HeaderManager
439
+ headerManager := NewHeaderManager ( req , log , c . APIHandler , c . Token )
450
440
451
- // Set Request Headers
452
- c .SetRequestHeaders (req , contentType , acceptHeader , log )
441
+ // Use HeaderManager to set headers
442
+ headerManager .SetContentType (contentType )
443
+ headerManager .SetRequestHeaders (endpoint )
444
+ headerManager .LogHeaders (c )
453
445
454
446
// Execute the request
455
447
resp , err := c .executeHTTPRequest (req , log , method , endpoint )
@@ -465,5 +457,4 @@ func (c *Client) DoMultipartRequest(method, endpoint string, fields map[string]s
465
457
// Handle successful responses
466
458
return resp , c .handleSuccessResponse (resp , out , log , method , endpoint )
467
459
}
468
- // TODO refactor to remove dependancy on func (c *Client) SetRequestHeaders
469
460
}
0 commit comments