server

package
v0.20.3 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2020 License: Apache-2.0 Imports: 8 Imported by: 12

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInternal is an internal server error.
	ErrInternal = errors.Wrap(errors.ErrInternal, "server")

	// ErrServer is an error related with server.
	ErrServer = errors.New("server")
	// ErrServerOptions is an error related with server options.
	ErrServerOptions = errors.Wrap(ErrServer, "options")
	// ErrURIParameter is an error related with uri parameters.
	ErrURIParameter = errors.Wrap(ErrServer, "uri parameter")
	// ErrHeader errors.Minor
	ErrHeader = errors.Wrap(ErrServer, "header")
	// ErrHeaderNotAcceptable is an error related to not acceptable request header.
	ErrHeaderNotAcceptable = errors.Wrap(ErrHeader, "not acceptable")
	// ErrUnsupportedHeader is an error related to unsupported request header.
	ErrUnsupportedHeader = errors.Wrap(ErrHeader, "unsupported")
	// ErrMissingRequiredHeader is an error related to missing required header.
	ErrMissingRequiredHeader = errors.Wrap(ErrHeader, "missing required")
	// ErrHeaderValue is an error related to request header value.
	ErrHeaderValue = errors.Wrap(ErrHeader, "value")
)

Functions

This section is empty.

Types

type AfterDeleteHandler

type AfterDeleteHandler interface {
	HandleAfterDelete(ctx context.Context, db database.DB, q *query.Scope, result *codec.Payload) error
}

AfterDeleteHandler is a hook interface used to execute after API deleteQuery request.

type AfterDeleteRelationsHandler

type AfterDeleteRelationsHandler interface {
	HandleAfterDeleteRelations(ctx context.Context, db database.DB, root mapping.Model, newRelations []mapping.Model, output *codec.Payload) error
}

AfterDeleteRelationsHandler is a hook interface used to execute after API delete relations request.

type AfterGetHandler

type AfterGetHandler interface {
	HandleAfterGet(ctx context.Context, db database.DB, payload *codec.Payload) error
}

AfterGetHandler is the api hook after handling get query.

type AfterGetRelationHandler

type AfterGetRelationHandler interface {
	HandleAfterGetRelation(ctx context.Context, db database.DB, result *codec.Payload) error
}

AfterGetRelationHandler is an interface used as a hook after API request for getting relations.

type AfterInsertHandler

type AfterInsertHandler interface {
	HandleAfterInsert(ctx context.Context, db database.DB, input *codec.Payload) error
}

AfterInsertHandler is a hook handler interface after API insert query.

type AfterInsertRelationsHandler

type AfterInsertRelationsHandler interface {
	HandleAfterInsertRelations(ctx context.Context, db database.DB, root mapping.Model, newRelations []mapping.Model, output *codec.Payload) error
}

AfterInsertRelationsHandler is a hook interface used to execute after API insert relations request.

type AfterListHandler

type AfterListHandler interface {
	HandleAfterList(ctx context.Context, db database.DB, payload *codec.Payload) error
}

AfterListHandler is the api hook after handling list query.

type AfterUpdateHandler

type AfterUpdateHandler interface {
	HandleAfterUpdate(ctx context.Context, db database.DB, input *codec.Payload) error
}

AfterUpdateHandler is a hook handler interface after API update query.

type AfterUpdateRelationsHandler

type AfterUpdateRelationsHandler interface {
	HandleAfterUpdateRelations(ctx context.Context, db database.DB, root mapping.Model, newRelations []mapping.Model, output *codec.Payload) error
}

AfterUpdateRelationsHandler is a hook interface used to execute after API update relations request.

type BeforeDeleteHandler

type BeforeDeleteHandler interface {
	HandleBeforeDelete(ctx context.Context, db database.DB, q *query.Scope) error
}

BeforeDeleteHandler is a hook interface used to execute before API deleteQuery request.

type BeforeDeleteRelationsHandler

type BeforeDeleteRelationsHandler interface {
	HandleBeforeDeleteRelations(ctx context.Context, db database.DB, root mapping.Model, input *codec.Payload) error
}

BeforeDeleteRelationsHandler is a hook interface used to execute before API delete relations request.

type BeforeGetHandler

type BeforeGetHandler interface {
	HandleBeforeGet(ctx context.Context, db database.DB, q *query.Scope) error
}

BeforeGetHandler is the api hook handler before handling the query.

type BeforeGetRelationHandler

type BeforeGetRelationHandler interface {
	HandleBeforeGetRelation(ctx context.Context, db database.DB, q, relatedQuery *query.Scope, relation *mapping.StructField) error
}

BeforeGetRelationHandler is an interface used as a hook before API request for getting relations.

type BeforeInsertHandler

type BeforeInsertHandler interface {
	HandleBeforeInsert(ctx context.Context, db database.DB, input *codec.Payload) error
}

BeforeInsertHandler is a hook handler interface before API insert query.

type BeforeInsertRelationsHandler

type BeforeInsertRelationsHandler interface {
	HandleBeforeInsertRelations(ctx context.Context, db database.DB, root mapping.Model, input *codec.Payload) error
}

BeforeInsertRelationsHandler is a hook interface used to execute before API insert relations request.

type BeforeListHandler

type BeforeListHandler interface {
	HandleBeforeList(ctx context.Context, db database.DB, q *query.Scope) error
}

BeforeListHandler is the api hook handler before handling the list query.

type BeforeUpdateHandler

type BeforeUpdateHandler interface {
	HandleBeforeUpdate(ctx context.Context, db database.DB, input *codec.Payload) error
}

BeforeUpdateHandler is a hook handler interface before API update query.

type BeforeUpdateRelationsHandler

type BeforeUpdateRelationsHandler interface {
	HandleBeforeUpdateRelations(ctx context.Context, db database.DB, root mapping.Model, input *codec.Payload) error
}

BeforeUpdateRelationsHandler is a hook interface used to execute before API update relations request.

type DeleteHandler

type DeleteHandler interface {
	HandleDelete(ctx context.Context, db database.DB, q *query.Scope) (*codec.Payload, error)
}

DeleteHandler is an interface used for handling API 'deleteQuery' requests.

type DeleteMiddlewarer

type DeleteMiddlewarer interface {
	DeleteMiddlewares() []Middleware
}

DeleteMiddlewarer is an interface that gets middlewares for the 'deleteQuery' endpoint.

type DeleteRelationsMiddlewarer

type DeleteRelationsMiddlewarer interface {
	DeleteRelationsMiddlewares() []Middleware
}

DeleteRelationsMiddlewarer is an interface that gets middlewares for the 'DeleteRelation' endpoint.

type DeleteTransactioner added in v0.17.0

type DeleteTransactioner interface {
	DeleteWithTransaction() *query.TxOptions
}

DeleteTransactioner is an interface that sets the delete query in transaction.

type Endpoint

type Endpoint struct {
	Path        string
	HTTPMethod  string
	QueryMethod query.Method
	ModelStruct *mapping.ModelStruct
	Relation    *mapping.StructField
}

Endpoint is a structure that represents api endpoint.

type EndpointsGetter

type EndpointsGetter interface {
	// GetEndpoints is a method that gets server endpoints after initialization process.
	GetEndpoints() []*Endpoint
}

EndpointsGetter is an interface that allows to get endpoint information.

type GetHandler

type GetHandler interface {
	HandleGet(ctx context.Context, db database.DB, q *query.Scope) (*codec.Payload, error)
}

GetHandler is the handler used to get the model

type GetMiddlewarer

type GetMiddlewarer interface {
	GetMiddlewares() []Middleware
}

GetMiddlewarer is an interface that gets middlewares for the 'Get' endpoint.

type GetRelatedTransactioner added in v0.17.0

type GetRelatedTransactioner interface {
	GetRelatedWithTransaction() *query.TxOptions
}

GetRelatedTransactioner is an interface that sets the get related query in transaction.

type GetRelationHandler

type GetRelationHandler interface {
	HandleGetRelation(ctx context.Context, db database.DB, modelQuery, relatedQuery *query.Scope, relation *mapping.StructField) (*codec.Payload, error)
}

GetRelationHandler is an API interface used for handling 'GetRelation' queries.

type GetRelationMiddlewarer

type GetRelationMiddlewarer interface {
	GetRelatedMiddlewares() []Middleware
}

GetRelationMiddlewarer is an interface that gets middlewares for the 'GetRelated' endpoint.

type GetTransactioner added in v0.17.0

type GetTransactioner interface {
	GetWithTransaction() *query.TxOptions
}

GetTransactioner is an interface that sets the transaction for the get query.

type InsertHandler

type InsertHandler interface {
	HandleInsert(ctx context.Context, db database.DB, input *codec.Payload) (*codec.Payload, error)
}

InsertHandler is a handler of an API insert query.

type InsertMiddlewarer

type InsertMiddlewarer interface {
	InsertMiddlewares() []Middleware
}

InsertMiddlewarer is an interface that gets the middlewares for the insert endpoint.

type InsertRelationsMiddlewarer

type InsertRelationsMiddlewarer interface {
	InsertRelationsMiddlewares() []Middleware
}

InsertRelationsMiddlewarer is an interface that gets middlewares for the 'InsertRelation' endpoint.

type InsertTransactioner added in v0.17.0

type InsertTransactioner interface {
	InsertWithTransaction() *query.TxOptions
}

InsertTransactioner is an interface that forces model insertion in a transaction. Returned transaction options may be returned nil.

type ListHandler

type ListHandler interface {
	HandleList(ctx context.Context, db database.DB, q *query.Scope) (*codec.Payload, error)
}

ListHandler is an interface used for handling the API list request.

type ListMiddlewarer

type ListMiddlewarer interface {
	ListMiddlewares() []Middleware
}

ListMiddlewarer is an interface that gets middlewares for the 'List' endpoint.

type ListTransactioner added in v0.17.0

type ListTransactioner interface {
	ListWithTransaction() *query.TxOptions
}

ListTransactioner is an interface that sets the list query in transaction.

type Middleware

type Middleware func(http.Handler) http.Handler

Middleware is a http middleware function.

type MiddlewareChain

type MiddlewareChain []Middleware

MiddlewareChain is a middleware slice type that could be used as a http.Handler.

func (MiddlewareChain) Handle

func (c MiddlewareChain) Handle(handle http.Handler) http.Handler

Handle handles the chain of middlewares for given 'handle' http.Handle.

type Server

type Server interface {
	EndpointsGetter
	// ListenAndServe starts listen and serve the requests.
	Serve() error
	// Shutdown defines gentle shutdown of the server and all it's connections.
	// The server shouldn't handle any more requests but let the remaining finish within given context.
	Shutdown(ctx context.Context) error
}

Server is the interface used

type SetRelationsHandler

type SetRelationsHandler interface {
	HandleSetRelations(ctx context.Context, db database.DB, model mapping.Model, newRelations []mapping.Model, relation *mapping.StructField) (*codec.Payload, error)
}

SetRelationsHandler is an API interface that handles request for setting 'newRelations' for 'model' in field 'relation. This handler is used for all the requests (deleteQuery, update, Insert) relations.

type UpdateHandler

type UpdateHandler interface {
	HandleUpdate(ctx context.Context, db database.DB, input *codec.Payload) (*codec.Payload, error)
}

UpdateHandler is a handler interface for the API update query.

type UpdateMiddlewarer

type UpdateMiddlewarer interface {
	UpdateMiddlewares() []Middleware
}

UpdateMiddlewarer is an interface that gets middlewares for the update endpoint.

type UpdateRelationsMiddlewarer

type UpdateRelationsMiddlewarer interface {
	UpdateRelationsMiddlewares() []Middleware
}

UpdateRelationsMiddlewarer is an interface that gets middlewares for the 'UpdateRelation' endpoint.

type UpdateTransactioner added in v0.17.0

type UpdateTransactioner interface {
	UpdateWithTransaction() *query.TxOptions
}

UpdateTransactioner is an interface for the model that sets the update query in transaction with provided options.

type VersionInitializer

type VersionInitializer interface {
	InitializeVersion(version string, c *core.Controller) error
}

VersionInitializer is a server that allows to initializer separate versions.

type VersionedServer

type VersionedServer interface {
	VersionInitializer
	EndpointsGetter
	Serve() error
	Shutdown(ctx context.Context) error
}

VersionedServer is a server that handles multiple versions at once.

type WithContextDeleteRelationer added in v0.17.0

type WithContextDeleteRelationer interface {
	DeleteRelationsWithContext(ctx context.Context) (context.Context, error)
}

WithContextDeleteRelationer is an interface that sets the context for the delete relations query.

type WithContextDeleter added in v0.17.0

type WithContextDeleter interface {
	DeleteWithContext(ctx context.Context) (context.Context, error)
}

WithContextDeleter is an interface that sets the context for the delete query.

type WithContextGetRelated added in v0.17.0

type WithContextGetRelated interface {
	GetRelatedWithContext(ctx context.Context) (context.Context, error)
}

WithContextGetRelated is an interface that sets the context for the get related query.

type WithContextGetter added in v0.17.0

type WithContextGetter interface {
	GetWithContext(ctx context.Context) (context.Context, error)
}

WithContextGetter is an interface that changes the get query context.

type WithContextInsertRelationer added in v0.17.0

type WithContextInsertRelationer interface {
	InsertRelationsWithContext(ctx context.Context) (context.Context, error)
}

WithContextInsertRelationer is an interface that sets the context for the insert relations query.

type WithContextInserter added in v0.17.0

type WithContextInserter interface {
	InsertWithContext(ctx context.Context) (context.Context, error)
}

WithContextInserter is an interface used for changing insert context.

type WithContextLister added in v0.17.0

type WithContextLister interface {
	ListWithContext(ctx context.Context) (context.Context, error)
}

WithContextLister is an interface that sets the context for the list query.

type WithContextUpdateRelationer added in v0.17.0

type WithContextUpdateRelationer interface {
	UpdateRelationsWithContext(ctx context.Context) (context.Context, error)
}

WithContextUpdateRelationer is an interface that sets the context for the update relations query.

type WithContextUpdater added in v0.17.0

type WithContextUpdater interface {
	UpdateWithContext(ctx context.Context) (context.Context, error)
}

WithContextUpdater is an interface used for updating the context of an update query.

Jump to

Keyboard shortcuts

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