Compare commits
2 Commits
8e7ff7f39a
...
a7fab72a1e
Author | SHA1 | Date | |
---|---|---|---|
a7fab72a1e | |||
b643635cf4 |
32
client.go
32
client.go
@ -13,11 +13,12 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const UserAgent = "lume"
|
||||
const defaultUserAgent = "go-lifx"
|
||||
|
||||
type (
|
||||
Client struct {
|
||||
accessToken string
|
||||
userAgent string
|
||||
Client *http.Client
|
||||
}
|
||||
|
||||
@ -70,12 +71,37 @@ var errorMap = map[int]error{
|
||||
523: errors.New("Something went wrong on LIFX's end"),
|
||||
}
|
||||
|
||||
func NewClient(accessToken string) *Client {
|
||||
func NewClient(accessToken string, options ...func(*Client)) *Client {
|
||||
var c *Client
|
||||
tr := &http.Transport{
|
||||
//TLSNextProto: make(map[string]func(authority string, c *tls.Conn) http.RoundTripper),
|
||||
}
|
||||
|
||||
c = &Client{
|
||||
accessToken: accessToken,
|
||||
Client: &http.Client{Transport: tr},
|
||||
}
|
||||
|
||||
for _, option := range options {
|
||||
option(c)
|
||||
}
|
||||
|
||||
return c
|
||||
}
|
||||
|
||||
func WithUserAgent(userAgent string) func(*Client) {
|
||||
return func(c *Client) {
|
||||
c.userAgent = userAgent
|
||||
}
|
||||
}
|
||||
|
||||
func NewClientWithUserAgent(accessToken string, userAgent string) *Client {
|
||||
tr := &http.Transport{
|
||||
//TLSNextProto: make(map[string]func(authority string, c *tls.Conn) http.RoundTripper),
|
||||
}
|
||||
return &Client{
|
||||
accessToken: accessToken,
|
||||
userAgent: userAgent,
|
||||
Client: &http.Client{Transport: tr},
|
||||
}
|
||||
}
|
||||
@ -135,7 +161,7 @@ func (c *Client) NewRequest(method, url string, body io.Reader) (req *http.Reque
|
||||
}
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", c.accessToken))
|
||||
req.Header.Add("Content-Type", "application/json")
|
||||
req.Header.Add("User-Agent", UserAgent)
|
||||
req.Header.Add("User-Agent", c.userAgent)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,8 @@ import (
|
||||
"github.com/BurntSushi/toml"
|
||||
)
|
||||
|
||||
const userAgent = "lume"
|
||||
|
||||
func init() {
|
||||
RegisterCommand("help", Command{
|
||||
Func: HelpCmd,
|
||||
@ -221,7 +223,10 @@ func Main(args []string) (int, error) {
|
||||
|
||||
command := args[1]
|
||||
|
||||
c := lifx.NewClient(config.AccessToken)
|
||||
c := lifx.NewClient(
|
||||
config.AccessToken,
|
||||
lifx.WithUserAgent(userAgent),
|
||||
)
|
||||
|
||||
cmdArgs := CmdArgs{
|
||||
Client: c,
|
||||
|
Loading…
Reference in New Issue
Block a user