func()

in pkg/middleware/queryparam_policy.go [17:37]


func (p *QueryParameterPolicy) Do(req *policy.Request) (*http.Response, error) {
	if !p.Replace {
		// append behavior
		if req.Raw().URL.RawQuery != "" {
			req.Raw().URL.RawQuery += "&"
		}

		req.Raw().URL.RawQuery += url.QueryEscape(p.Name) + "=" + url.QueryEscape(p.Value)
		return req.Next()
	}

	// replace behavior
	originalQueryParams, err := url.ParseQuery(req.Raw().URL.RawQuery)
	if err != nil {
		return nil, fmt.Errorf("cannot replace url query parameter due to parsing err: %w", err)
	}

	originalQueryParams.Set(p.Name, p.Value)
	req.Raw().URL.RawQuery = originalQueryParams.Encode()
	return req.Next()
}