Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
6142a1100c | |||
9babe85048 | |||
b59185d56c | |||
1c3a45729b |
2
do.go
2
do.go
@ -12,7 +12,7 @@ func Do(req *http.Request) (*http.Response, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ParseJsonResponse[T any](resp *http.Response) (*T, error) {
|
func ParseJsonResponse[T any](resp *http.Response) (*T, error) {
|
||||||
if resp.StatusCode/100 == 2 {
|
if resp.StatusCode/100 != 2 {
|
||||||
return nil, fmt.Errorf(
|
return nil, fmt.Errorf(
|
||||||
"request '%s' returned status code %s\nOutput: %s",
|
"request '%s' returned status code %s\nOutput: %s",
|
||||||
resp.Request.URL.String(),
|
resp.Request.URL.String(),
|
||||||
|
25
request.go
25
request.go
@ -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 {
|
func QueryMap(query map[string]string) RequestModifier {
|
||||||
return func(r *RequestBuilder) *RequestBuilder {
|
return func(r *RequestBuilder) *RequestBuilder {
|
||||||
q := r.URL.Query()
|
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 {
|
func HeadersMap(headers map[string]string) RequestModifier {
|
||||||
return func(r *RequestBuilder) *RequestBuilder {
|
return func(r *RequestBuilder) *RequestBuilder {
|
||||||
for key, value := range headers {
|
for key, value := range headers {
|
||||||
@ -133,7 +153,10 @@ func HeadersMap(headers map[string]string) RequestModifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Auth(auth AuthProvider) RequestModifier {
|
func Auth(auth AuthProvider) RequestModifier {
|
||||||
return Headers("Authentication", auth())
|
return chainMods(
|
||||||
|
RemoveHeaders("Authentication"),
|
||||||
|
Headers("Authentication", auth()),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Basic(username, password string) AuthProvider {
|
func Basic(username, password string) AuthProvider {
|
||||||
|
Reference in New Issue
Block a user