resource

package
v0.0.0-...-83625b3 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2018 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventBeforeResourceList   = "before-resource-list"
	EventAfterResourceList    = "after-resource-list"
	EventBeforeResourcePost   = "before-resource-post"
	EventDuringResourcePost   = "during-resource-post"
	EventAfterResourcePost    = "after-resource-post"
	EventBeforeResourceGet    = "before-resource-get"
	EventAfterResourceGet     = "after-resource-get"
	EventBeforeResourcePut    = "before-resource-put"
	EventDuringResourcePut    = "during-resource-put"
	EventAfterResourcePut     = "after-resource-put"
	EventBeforeResourceDelete = "before-resource-delete"
	EventDuringResourceDelete = "during-resource-delete"
	EventAfterResourceDelete  = "after-resource-delete"
)

Variables

View Source
var ErrNoEndpoints = errors.New("no endpoints are enabled for this resource")

Functions

This section is empty.

Types

type AfterResourceListEvent

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

func NewAfterResourceListEvent

func NewAfterResourceListEvent(r *http.Request, list *ResourceList) *AfterResourceListEvent

func (AfterResourceListEvent) ErrorStrategy

func (e AfterResourceListEvent) ErrorStrategy() event.ErrorStrategy

func (*AfterResourceListEvent) List

func (*AfterResourceListEvent) Name

func (e *AfterResourceListEvent) Name() string

func (AfterResourceListEvent) Request

func (e AfterResourceListEvent) Request() *http.Request

type BeforeResourceListEvent

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

func NewBeforeResourceListEvent

func NewBeforeResourceListEvent(r *http.Request) *BeforeResourceListEvent

func (BeforeResourceListEvent) ErrorStrategy

func (e BeforeResourceListEvent) ErrorStrategy() event.ErrorStrategy

func (*BeforeResourceListEvent) Name

func (e *BeforeResourceListEvent) Name() string

func (BeforeResourceListEvent) Request

func (e BeforeResourceListEvent) Request() *http.Request

type DefaultResourceFormatter

type DefaultResourceFormatter struct {
}

DefaultResourceFormatter is a simple formatter that formats resources as HAL+JSON, JSON and XML.

func (*DefaultResourceFormatter) FormatMulti

func (f *DefaultResourceFormatter) FormatMulti(res *ResourceList, r *render.Renderer)

func (*DefaultResourceFormatter) FormatSingle

func (f *DefaultResourceFormatter) FormatSingle(res Resource, r *render.Renderer)

type Resource

type Resource interface {
}

Resource labels data for CRUD operation through API endpoints.

type ResourceCRUDEvent

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

func NewResourceCRUDEvent

func NewResourceCRUDEvent(eventName string, r *http.Request, resource Resource) *ResourceCRUDEvent

func (ResourceCRUDEvent) ErrorStrategy

func (e ResourceCRUDEvent) ErrorStrategy() event.ErrorStrategy

func (*ResourceCRUDEvent) Name

func (e *ResourceCRUDEvent) Name() string

func (ResourceCRUDEvent) Request

func (e ResourceCRUDEvent) Request() *http.Request

func (*ResourceCRUDEvent) Resource

func (e *ResourceCRUDEvent) Resource() Resource

type ResourceController

type ResourceController struct {
	ResourceFormatter

	ExtraEndpoints func(s *server.Server) error
	// contains filtered or unexported fields
}

ResourceController represents a CRUD service.

func NewResourceController

func NewResourceController(dispatcher *event.Dispatcher, delegate ResourceControllerDelegate) *ResourceController

NewResourceController creates a ResourceController with a given delegate and sensible defaults.

func (*ResourceController) DBSchema

func (res *ResourceController) DBSchema() db.SchemaGenerations

func (*ResourceController) Delete

Delete enables the DELETE endpoint.

func (*ResourceController) Get

Get enables the GET endpoint.

func (*ResourceController) List

List enables the listing endpoint.

func (*ResourceController) Name

func (res *ResourceController) Name() string

ServiceName returns the name of this ResourceController.

func (*ResourceController) Post

Post enables the POST endpoint.

func (*ResourceController) Put

Put enables the PUT endpoint.

func (*ResourceController) Register

func (res *ResourceController) Register(srv *server.Server) error

type ResourceControllerDelegate

type ResourceControllerDelegate interface {
	db.DBSchemaProvider
}

ResourceControllerDelegate customizes a ResourceController.

type ResourceDeleteDelegate

type ResourceDeleteDelegate interface {
	Load(id string, r *http.Request) (Resource, error)
	Delete(data Resource, r *http.Request) error
}

ResourceDeleteDelegate helps a ResourceController to handle DELETE for a resource.

type ResourceFormatter

type ResourceFormatter interface {
	FormatSingle(Resource, *render.Renderer)
	FormatMulti(*ResourceList, *render.Renderer)
}

ResourceFormatter formats resources for the HTTP response.

type ResourceGetDelegate

type ResourceGetDelegate interface {
	Load(id string, r *http.Request) (Resource, error)
}

ResourceGetDelegate helps a ResourceController to handle GET for a resource.

type ResourceList

type ResourceList struct {
	Items    []Resource               `json:"items"`
	Page     int                      `json:"-"`
	PageSize int                      `json:"-"`
	BasePath string                   `json:"-"`
	Curies   []hal.HALCurie           `json:"-"`
	Rels     map[string][]interface{} `json:"-"`
}

ResourceList is an extended list of resources.

func (*ResourceList) MarshalJSON

func (rl *ResourceList) MarshalJSON() ([]byte, error)

func (*ResourceList) Sanitize

func (rl *ResourceList) Sanitize()

type ResourceListDelegate

type ResourceListDelegate interface {
	List(r *http.Request, start, limit int) ([]Resource, error)
	PageLength() int
}

ResourceListDelegate helps a ResourceController to list resources.

type ResourcePathOverrider

type ResourcePathOverrider interface {
	OverridePath(string) string
}

ResourcePathOverrider can be implemented by a ResourceDelegate to change the path pattern for the given resource operation.

type ResourcePostDelegate

type ResourcePostDelegate interface {
	Empty() Resource
	Validate(data Resource, r *http.Request)
	Insert(data Resource, r *http.Request) error
}

ResourcePostDelegate helps a ResourceController to handle POST for a resource.

type ResourcePutDelegate

type ResourcePutDelegate interface {
	Empty() Resource
	Load(id string, r *http.Request) (Resource, error)
	GetID(Resource) string
	Validate(data Resource, r *http.Request)
	Update(data Resource, r *http.Request) error
}

ResourcePutDelegate helps a ResourceController to handle PUT for a resource.

Jump to

Keyboard shortcuts

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