pkg/scan/client/user_agent.go   A
last analyzed

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 14
dl 0
loc 24
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A client.decorateTransportWithUserAgentDecorator 0 6 2
A client.*userAgentTransportDecorator.RoundTrip 0 4 1
1
package client
2
3
import (
4
	"errors"
5
	"net/http"
6
)
7
8
func decorateTransportWithUserAgentDecorator(decorated http.RoundTripper, userAgent string) (*userAgentTransportDecorator, error) {
9
	if decorated == nil {
10
		return nil, errors.New("decorated round tripper is nil")
11
	}
12
13
	return &userAgentTransportDecorator{decorated: decorated, userAgent: userAgent}, nil
14
}
15
16
type userAgentTransportDecorator struct {
17
	decorated http.RoundTripper
18
	userAgent string
19
}
20
21
func (u *userAgentTransportDecorator) RoundTrip(r *http.Request) (*http.Response, error) {
22
	r.Header.Set("User-Agent", u.userAgent)
23
24
	return u.decorated.RoundTrip(r)
25
}
26