MCPcopy
hub / github.com/cloudfoundry/cli / newHTTPRequest

Method newHTTPRequest

api/cloudcontroller/ccv3/request.go:36–81  ·  view source on GitHub ↗

newHTTPRequest returns a constructed HTTP.Request with some defaults. Defaults are applied when Request options are not filled in.

(passedRequest requestOptions)

Source from the content-addressed store, hash-verified

34// newHTTPRequest returns a constructed HTTP.Request with some defaults.
35// Defaults are applied when Request options are not filled in.
36func (requester *RealRequester) newHTTPRequest(passedRequest requestOptions) (*cloudcontroller.Request, error) {
37 var request *http.Request
38 var err error
39 if passedRequest.URL != "" {
40 request, err = http.NewRequest(
41 passedRequest.Method,
42 passedRequest.URL,
43 passedRequest.Body,
44 )
45 } else {
46 request, err = requester.router.CreateRequest(
47 passedRequest.RequestName,
48 map[string]string(passedRequest.URIParams),
49 passedRequest.Body,
50 )
51 }
52 if err != nil {
53 return nil, err
54 }
55
56 if passedRequest.Query != nil {
57 request.URL.RawQuery = FormatQueryParameters(passedRequest.Query).Encode()
58 }
59
60 request.Header = http.Header{}
61
62 if passedRequest.Header != nil {
63 request.Header = passedRequest.Header
64 }
65
66 if request.Header.Get("User-Agent") == "" {
67 request.Header.Set("User-Agent", requester.userAgent)
68 }
69
70 if request.Header.Get("Accept") == "" {
71 request.Header.Set("Accept", "application/json")
72 }
73
74 if !isDownloadDroplet(passedRequest.URL, passedRequest.RequestName) && request.Header.Get("Content-Type") == "" {
75 request.Header.Set("Content-Type", "application/json")
76 } else if isDownloadDroplet(passedRequest.URL, passedRequest.RequestName) && request.Header.Get("Content-Type") != "" {
77 request.Header.Del("Content-Type")
78 }
79
80 return cloudcontroller.NewRequest(request, passedRequest.Body), nil
81}
82
83func isDownloadDroplet(URL string, requestName string) bool {
84 return (strings.Contains(URL, "droplet") && strings.Contains(URL, "download")) || (requestName == internal.GetDropletBitsRequest)

Callers 6

MakeRequestReceiveRawMethod · 0.95
MakeRequestSendRawMethod · 0.95
buildRequestMethod · 0.95
paginateMethod · 0.95

Calls 7

NewRequestFunction · 0.92
FormatQueryParametersFunction · 0.85
isDownloadDropletFunction · 0.85
NewRequestMethod · 0.80
GetMethod · 0.65
SetMethod · 0.65
CreateRequestMethod · 0.45

Tested by

no test coverage detected