rest

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2022 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bool added in v0.1.0

func Bool(v bool) *bool

Bool returns a pointer value for the bool value passed in.

func Byte added in v0.1.0

func Byte(v byte) *byte

Byte returns a pointer value for the byte value passed in.

func Int added in v0.1.0

func Int(v int) *int

Int returns a pointer value for the int value passed in.

func String added in v0.1.0

func String(v string) *string

String returns a pointer value for the string value passed in.

Types

type Action

type Action struct {
	Strategy             string             `yaml:"strategy"`
	Order                *int               `yaml:"order,omitempty"`
	Endpoint             string             `yaml:"endpoint"`
	GetEndpointSuffix    *string            `yaml:"getEndpointSuffix,omitempty"`
	PostEndpointSuffix   *string            `yaml:"postEndpointSuffix,omitempty"`
	PutEndpointSuffix    *string            `yaml:"putEndpointSuffix,omitempty"`
	DeleteEndpointSuffix *string            `yaml:"deleteEndpointSuffix,omitempty"`
	FindByJsonPathExpr   string             `yaml:"findByJsonPathExpr,omitempty"`
	PayloadTemplate      string             `yaml:"payloadTemplate"`
	Variables            map[string]any     `yaml:"variables"`
	RuntimeVars          *map[string]string `yaml:"runtimeVars,omitempty"`
	// contains filtered or unexported fields
}

Action defines the single action to make agains an endpoint and selecting a strategy Endpoint is the base url to make the requests against GetEndpointSuffix can be used to specify a direct ID or query params PostEndpointSuffix

func (*Action) WithName

func (a *Action) WithName(name string) *Action

type Auth added in v0.1.0

type Auth struct {
	// contains filtered or unexported fields
}

Auth holds the auth strategy for all Seeders

func NewAuth added in v0.1.0

func NewAuth(a AuthConfig) *Auth

type AuthConfig added in v0.1.0

type AuthConfig struct {
	AuthStrategy AuthType          `yaml:"type"`
	Username     string            `yaml:"username"`
	Password     string            `yaml:"password"`
	OAuth        *ConfigOAuth      `yaml:"oauth,omitempty"`
	HttpHeaders  map[string]string `yaml:"httpHeaders,omitempty"`
}

Auth holds the auth strategy for all Seeders

type AuthType added in v0.1.0

type AuthType string

AuthType specifies the type of authentication to perform currently only a single authType per instance is allowed

const (
	Basic        AuthType = "BasicAuth"
	OAuth        AuthType = "OAuthClientCredentials"
	BasicToToken AuthType = "BasicToToken"
)

type Client

type Client interface {
	Do(req *http.Request) (*http.Response, error)
}

type ConfigOAuth added in v0.1.0

type ConfigOAuth struct {
	ServerUrl               string              `yaml:"serverUrl"`
	Scopes                  []string            `yaml:"scopes"`
	EndpointParams          map[string][]string `yaml:"endpointParams"`
	OAuthSendParamsInHeader bool                `yaml:"oAuthSendParamsInHeader"`
}

type Diagnostic added in v0.1.0

type Diagnostic struct {
	Status          int
	Message         string
	HostPathMethod  string
	ProceedFallback bool
	IsFatal         bool
}

func (*Diagnostic) Error added in v0.1.0

func (d *Diagnostic) Error() string

func (*Diagnostic) WithIsFatal added in v0.1.0

func (d *Diagnostic) WithIsFatal(v bool) *Diagnostic

func (*Diagnostic) WithMessage added in v0.1.0

func (d *Diagnostic) WithMessage(m string) *Diagnostic

func (*Diagnostic) WithProceedFallback added in v0.1.0

func (d *Diagnostic) WithProceedFallback(v bool) *Diagnostic

func (*Diagnostic) WithStatus added in v0.1.0

func (d *Diagnostic) WithStatus(s int) *Diagnostic

type SeederImpl

type SeederImpl struct {
	// contains filtered or unexported fields
}

func (*SeederImpl) FindDeletePost added in v0.1.0

func (r *SeederImpl) FindDeletePost(ctx context.Context, action *Action) error

FindPutPost strategy gets an item either by specifying a known ID in the endpoint suffix or by pathExpression. Get can look for a response in an array or in a single response object. once a single item that matches is found and the relevant ID is extracted it will do a PUT else it will do a POST as the item can be created

func (*SeederImpl) FindPost

func (r *SeederImpl) FindPost(ctx context.Context, action *Action) error

FindPost strategy calls a GET endpoint and if item ***FOUND it does NOT do a POST*** this strategy should be used sparingly and only in cases where the service REST implementation does not support an update of existing item.

func (*SeederImpl) FindPutPost

func (r *SeederImpl) FindPutPost(ctx context.Context, action *Action) error

FindPutPost strategy gets an item either by specifying a known ID in the endpoint suffix or by pathExpression. Get can look for a response in an array or in a single response object. once a single item that matches is found and the relevant ID is extracted it will do a PUT else it will do a POST as the item can be created

func (*SeederImpl) GetPost

func (r *SeederImpl) GetPost(ctx context.Context, action *Action) error

GetPost strategy calls a GET endpoint and if item ***FOUND it does NOT do a POST*** this strategy should be used sparingly and only in cases where the service REST implementation does not support an update of existing item.

func (*SeederImpl) GetPutPost

func (r *SeederImpl) GetPutPost(ctx context.Context, action *Action) error

GetPutPost strategy gets an item by specifying a known ID in the endpoint suffix If a non error or non empty response is found it will do a PUT else it will do a POST as the item can be created

func (*SeederImpl) Put

func (r *SeederImpl) Put(ctx context.Context, action *Action) error

Put strategy calls a PUT endpoint if standards compliant this should be an idempotent operation

func (*SeederImpl) PutPost

func (r *SeederImpl) PutPost(ctx context.Context, action *Action) error

Put strategy calls a PUT endpoint if standards compliant this should be an idempotent operation

func (*SeederImpl) WithAuth added in v0.1.0

func (r *SeederImpl) WithAuth(auth *AuthConfig) *SeederImpl

func (*SeederImpl) WithClient

func (r *SeederImpl) WithClient(c Client) *SeederImpl

TODO: change this for an interface

func (*SeederImpl) WithHeader

func (r *SeederImpl) WithHeader(header *http.Header) *SeederImpl

WithHeader allows the overwrite of default Accept and Content-Type headers both default to `application/json`

func (*SeederImpl) WithLogger

func (r *SeederImpl) WithLogger(l log.Loggeriface) *SeederImpl

type Status added in v0.1.0

type Status int
const (
	StatusFatal Status = iota
	StatusRetryable
)

Jump to

Keyboard shortcuts

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