3 Commits

Author SHA1 Message Date
6142a1100c remove old auth header on Auth() call 2025-02-11 12:45:20 +01:00
9babe85048 RemoveQuery implemented 2025-02-11 12:38:33 +01:00
b59185d56c RemoveHeaders implemented 2025-02-11 12:30:35 +01:00
2 changed files with 34 additions and 1 deletions

View File

@ -92,6 +92,17 @@ func Query(keyValuePairs ...string) RequestModifier {
}
}
func RemoveQuery(keys ...string) RequestModifier {
return func(r *RequestBuilder) *RequestBuilder {
q := r.URL.Query()
for _, key := range keys {
q.Del(key)
}
r.URL.RawQuery = q.Encode()
return r
}
}
func QueryMap(query map[string]string) RequestModifier {
return func(r *RequestBuilder) *RequestBuilder {
q := r.URL.Query()
@ -123,6 +134,15 @@ func Headers(keyValuePairs ...string) RequestModifier {
}
}
func RemoveHeaders(headers ...string) RequestModifier {
return func(r *RequestBuilder) *RequestBuilder {
for _, header := range headers {
r.Header.Del(header)
}
return r
}
}
func HeadersMap(headers map[string]string) RequestModifier {
return func(r *RequestBuilder) *RequestBuilder {
for key, value := range headers {
@ -133,7 +153,10 @@ func HeadersMap(headers map[string]string) RequestModifier {
}
func Auth(auth AuthProvider) RequestModifier {
return Headers("Authentication", auth())
return chainMods(
RemoveHeaders("Authentication"),
Headers("Authentication", auth()),
)
}
func Basic(username, password string) AuthProvider {

10
utils.go Normal file
View File

@ -0,0 +1,10 @@
package ezhttp
func chainMods(mods ...RequestModifier) RequestModifier {
return func(r *RequestBuilder) *RequestBuilder {
for _, mod := range mods {
r = mod(r)
}
return r
}
}