internal

package
v0.0.0-...-4a11b79 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2020 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterClientFactory

func RegisterClientFactory(f ClientFactory)

RegisterClientFactory allows external module to provide implementation of the ClientFactory.

This is needed to resolve module dependency cycle between server/auth and server/auth/internal.

See init() in server/auth/client.go.

If client factory is not set, Do(...) uses http.DefaultClient. This happens in unit tests for various auth/* subpackages.

func WithTestTransport

func WithTestTransport(c context.Context, cb TestTransportCallback) context.Context

WithTestTransport puts a testing transport in the context to use for fetches.

Types

type ClientFactory

type ClientFactory func(c context.Context, scopes []string) (*http.Client, error)

ClientFactory knows how to produce http.Client that attach proper OAuth headers.

If 'scopes' is empty, the factory should return a client that makes anonymous requests.

type MergedContext

type MergedContext struct {
	Root     context.Context
	Fallback context.Context
}

MergedContext is a context that inherits everything from Root, except values are additionally inherited from Fallback.

func (*MergedContext) Deadline

func (mc *MergedContext) Deadline() (time.Time, bool)

func (*MergedContext) Done

func (mc *MergedContext) Done() <-chan struct{}

func (*MergedContext) Err

func (mc *MergedContext) Err() error

func (*MergedContext) Value

func (mc *MergedContext) Value(key interface{}) interface{}

type Request

type Request struct {
	Method  string            // HTTP method to use
	URL     string            // URL to access
	Scopes  []string          // OAuth2 scopes to authenticate with or anonymous call if empty
	Headers map[string]string // optional map with request headers
	Body    interface{}       // object to convert to JSON and send as body or []byte with the body
	Out     interface{}       // where to deserialize the response to
}

Request represents one JSON REST API request.

func (*Request) Do

func (r *Request) Do(c context.Context) error

Do performs an HTTP request with retries on transient errors.

It can be used to make GET or DELETE requests (if Body is nil) or POST or PUT requests (if Body is not nil). In latter case the body will be serialized to JSON.

Respects context's deadline and cancellation.

type TestTransportCallback

type TestTransportCallback func(r *http.Request, body string) (code int, response string)

TestTransportCallback is used from unit tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL