MCPcopy Index your code
hub / github.com/bootdotdev/bootdev / printHTTPRequestResult

Function printHTTPRequestResult

render/http.go:13–100  ·  view source on GitHub ↗
(result api.HTTPRequestResult)

Source from the content-addressed store, hash-verified

11)
12
13func printHTTPRequestResult(result api.HTTPRequestResult) string {
14 if result.Err != "" {
15 return fmt.Sprintf(" Err: %v\n\n", result.Err)
16 }
17
18 var str strings.Builder
19 fmt.Fprintf(&str, " Response Status Code: %v\n", result.StatusCode)
20
21 filteredHeaders := make(map[string]string)
22 for respK, respV := range result.ResponseHeaders {
23 for _, test := range result.Request.Tests {
24 if test.HeadersContain == nil {
25 continue
26 }
27 interpolatedTestHeaderKey := checks.InterpolateVariables(test.HeadersContain.Key, result.Variables)
28 if strings.EqualFold(respK, interpolatedTestHeaderKey) {
29 filteredHeaders[respK] = respV
30 }
31 }
32 }
33
34 filteredTrailers := make(map[string]string)
35 for respK, respV := range result.ResponseTrailers {
36 for _, test := range result.Request.Tests {
37 if test.TrailersContain == nil {
38 continue
39 }
40
41 interpolatedTestTrailerKey := checks.InterpolateVariables(test.TrailersContain.Key, result.Variables)
42 if strings.EqualFold(respK, interpolatedTestTrailerKey) {
43 filteredTrailers[respK] = respV
44 }
45 }
46 }
47
48 if len(filteredHeaders) > 0 {
49 str.WriteString(" Response Headers: \n")
50 for k, v := range filteredHeaders {
51 fmt.Fprintf(&str, " - %v: %v\n", k, v)
52 }
53 }
54
55 str.WriteString(" Response Body: \n")
56 bytes := []byte(result.BodyString)
57 contentType := http.DetectContentType(bytes)
58 if contentType == "application/json" || strings.HasPrefix(contentType, "text/") {
59 var unmarshalled any
60 err := json.Unmarshal([]byte(result.BodyString), &unmarshalled)
61 if err == nil {
62 pretty, err := json.MarshalIndent(unmarshalled, "", " ")
63 if err == nil {
64 str.Write(pretty)
65 } else {
66 str.WriteString(result.BodyString)
67 }
68 } else {
69 str.WriteString(result.BodyString)
70 }

Callers 1

ViewMethod · 0.85

Tested by

no test coverage detected