Files
mstore/client.go
T
2026-02-27 03:14:24 +02:00

64 lines
1.2 KiB
Go

package client
import (
"crypto/tls"
"net/http"
)
type Client struct {
httpClient *http.Client
authenticator Authenticator
userAgent string
}
func NewClient() *Client {
defaultTripper := NewDefaultTransport()
httpClient := &http.Client{
Transport: defaultTripper,
}
return &Client{
httpClient: httpClient,
userAgent: "ociClient/1.0",
}
}
func (cli *Client) SetAuthenticator(auth Authenticator) {
cli.authenticator = auth
}
func (cli *Client) SetTransport(transport http.RoundTripper) {
cli.httpClient.Transport = transport
}
type WrapTransport struct {
transport http.RoundTripper
}
func NewWrapTransport(transport http.RoundTripper) *WrapTransport {
return &WrapTransport{
transport: transport,
}
}
func (wrap *WrapTransport) RoundTrip(req *http.Request) (*http.Response, error) {
return wrap.transport.RoundTrip(req)
}
type DefaultTransport struct {
transport http.RoundTripper
}
func NewDefaultTransport() *DefaultTransport {
return &DefaultTransport{
transport: &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
}
func (wrap *DefaultTransport) RoundTrip(req *http.Request) (*http.Response, error) {
return wrap.transport.RoundTrip(req)
}