options.go raw
1 package internal
2
3 import (
4 "net/http"
5 "net/url"
6 )
7
8 type Option func(c *Client) error
9
10 func WithAuthKey(authEmail, authKey string) Option {
11 return func(c *Client) error {
12 c.authEmail = authEmail
13 c.authKey = authKey
14
15 return nil
16 }
17 }
18
19 func WithAuthToken(authToken string) Option {
20 return func(c *Client) error {
21 c.authToken = authToken
22
23 return nil
24 }
25 }
26
27 func WithBaseURL(baseURL string) Option {
28 return func(c *Client) error {
29 if baseURL == "" {
30 return nil
31 }
32
33 bu, err := url.Parse(baseURL)
34 if err != nil {
35 return err
36 }
37
38 c.baseURL = bu
39
40 return nil
41 }
42 }
43
44 func WithHTTPClient(client *http.Client) Option {
45 return func(c *Client) error {
46 if client != nil {
47 c.HTTPClient = client
48 }
49
50 return nil
51 }
52 }
53