Compare commits

..

4 Commits
v0.0.6 ... main

Author SHA1 Message Date
64787c7cb0 refactored HTTP header handling 2025-02-13 16:23:51 +01:00
b68c93e092 implemented RemoveAllHeaders 2025-02-13 16:20:22 +01:00
767b660a22 fixed HTTP auth header name 2025-02-12 13:22:24 +01:00
6142a1100c remove old auth header on Auth() call 2025-02-11 12:45:20 +01:00
2 changed files with 37 additions and 3 deletions

View File

@ -121,7 +121,7 @@ func Method(method string) RequestModifier {
}
}
func Headers(keyValuePairs ...string) RequestModifier {
func AddHeaders(keyValuePairs ...string) RequestModifier {
if len(keyValuePairs)%2 != 0 {
panic("keyValuePairs must have an even length")
}
@ -143,7 +143,21 @@ func RemoveHeaders(headers ...string) RequestModifier {
}
}
func HeadersMap(headers map[string]string) RequestModifier {
func RemoveAllHeaders() RequestModifier {
return func(r *RequestBuilder) *RequestBuilder {
r.Header = make(http.Header)
return r
}
}
func Headers(keyValuePairs ...string) RequestModifier {
return chainMods(
RemoveAllHeaders(),
AddHeaders(keyValuePairs...),
)
}
func AddHeadersMap(headers map[string]string) RequestModifier {
return func(r *RequestBuilder) *RequestBuilder {
for key, value := range headers {
r.Header.Add(key, value)
@ -152,8 +166,18 @@ func HeadersMap(headers map[string]string) RequestModifier {
}
}
func HeadersMap(headers map[string]string) RequestModifier {
return chainMods(
RemoveAllHeaders(),
AddHeadersMap(headers),
)
}
func Auth(auth AuthProvider) RequestModifier {
return Headers("Authentication", auth())
return chainMods(
RemoveHeaders("Authorization"),
AddHeaders("Authorization", 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
}
}