MCPcopy
hub / github.com/cloudflare/cloudflared / NewRESTClient

Function NewRESTClient

cfapi/base_client.go:47–85  ·  view source on GitHub ↗
(baseURL, accountTag, zoneTag, authToken, userAgent string, log *zerolog.Logger)

Source from the content-addressed store, hash-verified

45var _ Client = (*RESTClient)(nil)
46
47func NewRESTClient(baseURL, accountTag, zoneTag, authToken, userAgent string, log *zerolog.Logger) (*RESTClient, error) {
48 baseURL = strings.TrimSuffix(baseURL, "/")
49 accountLevelEndpoint, err := url.Parse(fmt.Sprintf("%s/accounts/%s/cfd_tunnel", baseURL, accountTag))
50 if err != nil {
51 return nil, errors.Wrap(err, "failed to create account level endpoint")
52 }
53 accountRoutesEndpoint, err := url.Parse(fmt.Sprintf("%s/accounts/%s/teamnet/routes", baseURL, accountTag))
54 if err != nil {
55 return nil, errors.Wrap(err, "failed to create route account-level endpoint")
56 }
57 accountVnetsEndpoint, err := url.Parse(fmt.Sprintf("%s/accounts/%s/teamnet/virtual_networks", baseURL, accountTag))
58 if err != nil {
59 return nil, errors.Wrap(err, "failed to create virtual network account-level endpoint")
60 }
61 zoneLevelEndpoint, err := url.Parse(fmt.Sprintf("%s/zones/%s/tunnels", baseURL, zoneTag))
62 if err != nil {
63 return nil, errors.Wrap(err, "failed to create account level endpoint")
64 }
65 httpTransport := http.Transport{
66 TLSHandshakeTimeout: defaultTimeout,
67 ResponseHeaderTimeout: defaultTimeout,
68 }
69 _ = http2.ConfigureTransport(&httpTransport)
70 return &RESTClient{
71 baseEndpoints: &baseEndpoints{
72 accountLevel: *accountLevelEndpoint,
73 zoneLevel: *zoneLevelEndpoint,
74 accountRoutes: *accountRoutesEndpoint,
75 accountVnets: *accountVnetsEndpoint,
76 },
77 authToken: authToken,
78 userAgent: userAgent,
79 client: http.Client{
80 Transport: &httpTransport,
81 Timeout: defaultTimeout,
82 },
83 log: log,
84 }, nil
85}
86
87func (r *RESTClient) sendRequest(method string, url url.URL, body interface{}) (*http.Response, error) {
88 var bodyReader io.Reader

Callers 1

ClientMethod · 0.92

Calls

no outgoing calls

Tested by

no test coverage detected