request_header.go raw
1 //go:build !wasm || !js
2
3 package scw
4
5 import (
6 "net/http"
7
8 "github.com/scaleway/scaleway-sdk-go/internal/auth"
9 )
10
11 // getAllHeaders constructs a http.Header object and aggregates all headers into the object.
12 func (req *ScalewayRequest) getAllHeaders(token auth.Auth, userAgent string, anonymized bool) http.Header {
13 var allHeaders http.Header
14 if anonymized {
15 allHeaders = token.AnonymizedHeaders()
16 } else {
17 allHeaders = token.Headers()
18 }
19
20 allHeaders.Set("User-Agent", userAgent)
21 if req.Body != nil {
22 allHeaders.Set("Content-Type", "application/json")
23 }
24 for key, value := range req.Headers {
25 allHeaders.Del(key)
26 for _, v := range value {
27 allHeaders.Add(key, v)
28 }
29 }
30
31 return allHeaders
32 }
33