web

package
v1.7.1 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2021 License: Apache-2.0 Imports: 20 Imported by: 19

Documentation

Index

Constants

View Source
const (
	// Watch requested.
	WatchHeader = "X-Watch"
	// Options.
	WatchSnapshot = "snapshot"
)

Header.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client added in v0.2.9

type Client struct {
	// Transport.
	Transport http.RoundTripper
	// Headers.
	Header http.Header
	// Reply.
	Reply struct {
		Header http.Header
	}
}

REST client.

func (*Client) Get added in v0.2.9

func (r *Client) Get(url string, out interface{}, params ...Param) (status int, err error)

HTTP GET (method).

func (*Client) Post added in v0.2.9

func (r *Client) Post(url string, in interface{}, out interface{}) (status int, err error)

HTTP POST (method).

func (*Client) Watch added in v0.2.9

func (r *Client) Watch(url string, resource interface{}, h EventHandler) (status int, w *Watch, err error)

Watch a resource.

type Event added in v0.2.9

type Event struct {
	// ID
	ID uint64
	// Labels.
	Labels []string
	// Action.
	Action uint8
	// Affected Resource.
	Resource interface{}
	// Updated resource.
	Updated interface{}
}

Event

func (*Event) String added in v0.3.5

func (r *Event) String() string

String representation.

type EventHandler added in v0.2.9

type EventHandler interface {
	// Watch options.
	Options() WatchOptions
	// The watch has started.
	Started(uint64)
	// Parity marker.
	// The watch has delivered the initial set
	// of `Created` events.
	Parity()
	// Resource created.
	Created(r Event)
	// Resource updated.
	Updated(r Event)
	// Resource deleted.
	Deleted(r Event)
	// An error has occurred.
	// The handler may call the Repair() on
	// the watch to repair the watch as desired.
	Error(*Watch, error)
	// The watch has ended.
	End()
}

Event handler

type Paged

type Paged struct {
	// The `page` parameter passed in the request.
	Page model.Page
}

Paged handler.

func (*Paged) Prepare

func (h *Paged) Prepare(ctx *gin.Context) int

Prepare the handler to fulfil the request. Set the `page` field using passed parameters.

type Param added in v0.3.9

type Param struct {
	Key   string
	Value string
}

Param.

type Parity added in v0.2.9

type Parity struct {
}

Parity (not-partial) request handler.

func (*Parity) EnsureParity added in v0.2.9

func (c *Parity) EnsureParity(r container.Collector, w time.Duration) int

Ensure collector has achieved parity.

type RequestHandler

type RequestHandler interface {
	// Add routes to the `gin` router.
	AddRoutes(*gin.Engine)
	// List resources in a REST collection.
	List(*gin.Context)
	// Get a specific REST resource.
	Get(*gin.Context)
}

Web request handler.

type ResourceBuilder added in v0.2.9

type ResourceBuilder func(model.Model) interface{}

Watched resource builder.

type SchemaHandler

type SchemaHandler struct {

	// Schema version
	Version string
	// Schema release.
	Release int
	// contains filtered or unexported fields
}

Schema (route) handler.

func (*SchemaHandler) AddRoutes

func (h *SchemaHandler) AddRoutes(r *gin.Engine)

Add routes.

func (SchemaHandler) Get

func (h SchemaHandler) Get(ctx *gin.Context)

Not supported.

func (*SchemaHandler) List

func (h *SchemaHandler) List(ctx *gin.Context)

List schema.

type StockEventHandler added in v0.3.1

type StockEventHandler struct{}

Stock event handler. Provides default event methods.

func (*StockEventHandler) Created added in v0.3.1

func (r *StockEventHandler) Created(Event)

A model has been created.

func (*StockEventHandler) Deleted added in v0.3.1

func (r *StockEventHandler) Deleted(Event)

A model has been deleted.

func (*StockEventHandler) End added in v0.3.1

func (r *StockEventHandler) End()

An event watch has ended.

func (*StockEventHandler) Error added in v0.3.1

func (r *StockEventHandler) Error(*Watch, error)

An error has occurred reading events.

func (*StockEventHandler) Options added in v0.4.2

func (r *StockEventHandler) Options() WatchOptions

Watch options.

func (*StockEventHandler) Parity added in v0.3.1

func (r *StockEventHandler) Parity()

Watch has parity.

func (*StockEventHandler) Started added in v0.3.1

func (r *StockEventHandler) Started(uint64)

Watch has started.

func (*StockEventHandler) Updated added in v0.3.1

func (r *StockEventHandler) Updated(Event)

A model has been updated.

type Watch added in v0.2.9

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

Represents a watch.

func (*Watch) Alive added in v0.3.1

func (r *Watch) Alive() bool

The watch has not ended.

func (*Watch) End added in v0.2.9

func (r *Watch) End()

End the watch.

func (*Watch) ID added in v0.3.6

func (r *Watch) ID() uint64

ID.

func (*Watch) Repair added in v0.3.1

func (r *Watch) Repair() (err error)

Repair the watch.

type WatchOptions added in v0.4.2

type WatchOptions = libmodel.WatchOptions

type WatchReader added in v0.2.9

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

Watch (event) reader.

func (*WatchReader) Repair added in v0.3.1

func (r *WatchReader) Repair() (status int, err error)

Repair.

func (*WatchReader) Terminate added in v0.3.1

func (r *WatchReader) Terminate()

Terminate.

type WatchWriter added in v0.2.9

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

Watch (event) writer. The writer is model event handler. Each event is send (forwarded) to the watch client. This provides the bridge between the model and web layer.

func (*WatchWriter) Created added in v0.2.9

func (r *WatchWriter) Created(event model.Event)

A model has been created.

func (*WatchWriter) Deleted added in v0.2.9

func (r *WatchWriter) Deleted(event model.Event)

A model has been deleted.

func (*WatchWriter) End added in v0.2.9

func (r *WatchWriter) End()

An event watch has ended.

func (*WatchWriter) Error added in v0.2.9

func (r *WatchWriter) Error(err error)

An error has occurred delivering an event.

func (*WatchWriter) Options added in v0.4.2

func (r *WatchWriter) Options() model.WatchOptions

Watch options.

func (*WatchWriter) Parity added in v0.2.9

func (r *WatchWriter) Parity()

Watch has parity.

func (*WatchWriter) Start added in v0.4.1

func (r *WatchWriter) Start(watch *model.Watch)

Start the writer. Detect connection closed by peer or broken and end the watch.

func (*WatchWriter) Started added in v0.2.9

func (r *WatchWriter) Started(watchID uint64)

Watch has started.

func (*WatchWriter) Updated added in v0.2.9

func (r *WatchWriter) Updated(event model.Event)

A model has been updated.

type Watched added in v0.2.9

type Watched struct {
	// Watch requested.
	WatchRequest bool
	// contains filtered or unexported fields
}

Watched (handler).

func (*Watched) Prepare added in v0.2.9

func (h *Watched) Prepare(ctx *gin.Context) int

Prepare the handler to fulfil the request. Set the `WatchRequest` and `snapshot` fields based on passed headers. The header value is a list of options.

func (*Watched) Watch added in v0.2.9

func (r *Watched) Watch(
	ctx *gin.Context,
	db model.DB,
	m model.Model,
	rb ResourceBuilder) (err error)

Watch model.

type WebServer

type WebServer struct {
	// The optional port.  Default: 8080
	Port int
	// Allowed CORS origins.
	AllowedOrigins []string
	// Reference to the container.
	Container *container.Container
	// Handlers
	Handlers []RequestHandler

	// TLS.
	TLS struct {
		// Enabled.
		Enabled bool
		// Certificate path.
		Certificate string
		// Key path
		Key string
	}
	// contains filtered or unexported fields
}

Web server

func New

func New(c *container.Container, routes ...RequestHandler) *WebServer

Build new web server.

func (*WebServer) Start

func (w *WebServer) Start()

Start the web-server. Initializes `gin` with routes and CORS origins. Creates an http server to handle TLS

Jump to

Keyboard shortcuts

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