Skip to content

Commit d24c603

Browse files
committed
support custom user agent
1 parent d60a966 commit d24c603

File tree

3 files changed

+30
-16
lines changed

3 files changed

+30
-16
lines changed

context.go

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package mytokenlib
2+
3+
import (
4+
"context"
5+
"net/http"
6+
)
7+
8+
var ctx = context.Background()
9+
var httpClient = &http.Client{}
10+
var userAgent = "mytokenlib"
11+
12+
// ContextKeyUserAgent is used to set a useragent string in the context
13+
const ContextKeyUserAgent = "mytokenlib-user-agent"
14+
15+
// SetClient sets the http.Client used to make API requests
16+
func SetClient(client *http.Client) {
17+
httpClient = client
18+
}
19+
20+
// SetContext sets a context.Context used for all API requests
21+
func SetContext(contxt context.Context) {
22+
ctx = contxt
23+
s, ok := ctx.Value(ContextKeyUserAgent).(string)
24+
if ok {
25+
userAgent = s
26+
}
27+
}

http.go

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ func doHTTPRequestWithAuth(
3333
if err != nil {
3434
return newMytokenErrorFromError(errSendingHttpRequest, err)
3535
}
36+
if userAgent != "" {
37+
req.Header.Set("User-Agent", userAgent)
38+
}
3639
if reqBody != nil {
3740
req.Header.Set("Content-Type", mimetypeJSON)
3841
}

server.go

-16
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package mytokenlib
22

33
import (
4-
"context"
5-
"net/http"
6-
74
"github.com/oidc-mytoken/api/v0"
85
)
96

@@ -23,9 +20,6 @@ type Endpoint interface {
2320
DoHTTPRequest(method string, req interface{}, resp interface{}) error
2421
}
2522

26-
var httpClient = &http.Client{}
27-
var ctx = context.Background()
28-
2923
// NewMytokenServer creates a new MytokenServer
3024
func NewMytokenServer(url string) (*MytokenServer, error) {
3125
configEndpoint := url
@@ -52,13 +46,3 @@ func NewMytokenServer(url string) (*MytokenServer, error) {
5246
}
5347
return server, err
5448
}
55-
56-
// SetClient sets the http.Client used to make API requests
57-
func SetClient(client *http.Client) {
58-
httpClient = client
59-
}
60-
61-
// SetContext sets a context.Context used for all API requests
62-
func SetContext(contxt context.Context) {
63-
ctx = contxt
64-
}

0 commit comments

Comments
 (0)