Documentation
¶
Index ¶
- Constants
- type AbstractResource
- func (ar *AbstractResource) Create(request *http.Request) (string, Attributes, error)
- func (ar *AbstractResource) Delete(request *http.Request, id string) error
- func (ar *AbstractResource) ExtendMiddlewares() error
- func (ar *AbstractResource) GetAll(request *http.Request) (map[string]Attributes, error)
- func (ar *AbstractResource) GetByID(request *http.Request, id string) (Attributes, error)
- func (ar *AbstractResource) GetCustomRoutes() ([]CustomRoute, error)
- func (ar *AbstractResource) GetName() string
- func (ar *AbstractResource) GetRouter() chi.Router
- func (ar *AbstractResource) GetRouterURLParam(request *http.Request, paramKey string) string
- func (ar *AbstractResource) GetServer() Server
- func (ar *AbstractResource) GetURLParamBoolOrDefault(request *http.Request, paramKey string, defaultValue bool) bool
- func (ar *AbstractResource) GetURLParamFloatOrDefault(request *http.Request, paramKey string, defaultValue float64) float64
- func (ar *AbstractResource) GetURLParamInt64OrDefault(request *http.Request, paramKey string, defaultValue int64) int64
- func (ar *AbstractResource) GetURLParamStringOrDefault(request *http.Request, paramKey string, defaultValue string) string
- func (ar *AbstractResource) GetURLParamUint64OrDefault(request *http.Request, paramKey string, defaultValue uint64) uint64
- func (ar *AbstractResource) GetURLParamValue(paramKey string, request *http.Request) interface{}
- func (ar *AbstractResource) GetURLParamValues(paramKey string, request *http.Request) []interface{}
- func (ar *AbstractResource) Initialize(parentLogger logger.Logger, server Server) (chi.Router, error)
- func (ar *AbstractResource) OnAfterInitialize() error
- func (ar *AbstractResource) Patch(request *http.Request, id string) error
- func (ar *AbstractResource) Register(registry *registry.Registry)
- func (ar *AbstractResource) Update(request *http.Request, id string) (Attributes, error)
- type AbstractServer
- type Attributes
- type CustomRoute
- type CustomRouteFunc
- type CustomRouteFuncResponse
- type CustomRouteFuncStream
- type CustomRouteFuncStreamResponse
- type Encoder
- type EncoderFactory
- type ErrorContainsVerifier
- type JSONAPIEncoderFactory
- type JSONEncoderFactory
- type Resource
- type ResourceMethod
- type Server
Constants ¶
const ( ParamImport = "import" ParamExport = "export" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AbstractResource ¶
type AbstractResource struct { Logger logger.Logger Resource Resource // contains filtered or unexported fields }
AbstractResource is base for resources
func NewAbstractResource ¶
func NewAbstractResource(name string, resourceMethods []ResourceMethod) *AbstractResource
NewAbstractResource creates a new AbstractResource
func (*AbstractResource) Create ¶
func (ar *AbstractResource) Create(request *http.Request) (string, Attributes, error)
Create a resource
func (*AbstractResource) Delete ¶
func (ar *AbstractResource) Delete(request *http.Request, id string) error
Delete a resource
func (*AbstractResource) ExtendMiddlewares ¶
func (ar *AbstractResource) ExtendMiddlewares() error
ExtendMiddlewares extends specific resource middlewares
func (*AbstractResource) GetAll ¶
func (ar *AbstractResource) GetAll(request *http.Request) (map[string]Attributes, error)
GetAll returns all instances for resources with multiple instances
func (*AbstractResource) GetByID ¶
func (ar *AbstractResource) GetByID(request *http.Request, id string) (Attributes, error)
GetByID return specific instance by ID
func (*AbstractResource) GetCustomRoutes ¶
func (ar *AbstractResource) GetCustomRoutes() ([]CustomRoute, error)
GetCustomRoutes returns a list of custom routes for the resource
func (*AbstractResource) GetName ¶
func (ar *AbstractResource) GetName() string
GetName returns the resource name
func (*AbstractResource) GetRouter ¶
func (ar *AbstractResource) GetRouter() chi.Router
GetRouter returns raw routes, those that don't return an attribute
func (*AbstractResource) GetRouterURLParam ¶
func (ar *AbstractResource) GetRouterURLParam(request *http.Request, paramKey string) string
GetRouterURLParam returns the router parameters values by key. e.g.: `/endpoint/{id} -> "value of id"
func (*AbstractResource) GetServer ¶
func (ar *AbstractResource) GetServer() Server
GetServer returns the server
func (*AbstractResource) GetURLParamBoolOrDefault ¶
func (*AbstractResource) GetURLParamFloatOrDefault ¶
func (*AbstractResource) GetURLParamInt64OrDefault ¶
func (*AbstractResource) GetURLParamStringOrDefault ¶
func (*AbstractResource) GetURLParamUint64OrDefault ¶
func (*AbstractResource) GetURLParamValue ¶
func (ar *AbstractResource) GetURLParamValue(paramKey string, request *http.Request) interface{}
func (*AbstractResource) GetURLParamValues ¶
func (ar *AbstractResource) GetURLParamValues(paramKey string, request *http.Request) []interface{}
func (*AbstractResource) Initialize ¶
func (ar *AbstractResource) Initialize(parentLogger logger.Logger, server Server) (chi.Router, error)
Initialize initializes the resource
func (*AbstractResource) OnAfterInitialize ¶
func (ar *AbstractResource) OnAfterInitialize() error
OnAfterInitialize is called after initialization
func (*AbstractResource) Patch ¶
func (ar *AbstractResource) Patch(request *http.Request, id string) error
Patch a resource
func (*AbstractResource) Register ¶
func (ar *AbstractResource) Register(registry *registry.Registry)
Register registers a registry
func (*AbstractResource) Update ¶
func (ar *AbstractResource) Update(request *http.Request, id string) (Attributes, error)
Update a resource
type AbstractServer ¶
type AbstractServer struct { Logger logger.Logger Enabled bool ListenAddress string Router chi.Router // contains filtered or unexported fields }
func NewAbstractServer ¶
func (*AbstractServer) Initialize ¶
func (s *AbstractServer) Initialize(configuration *platformconfig.WebServer) error
func (*AbstractServer) InstallMiddleware ¶
func (s *AbstractServer) InstallMiddleware(router chi.Router) error
func (*AbstractServer) Start ¶
func (s *AbstractServer) Start() error
type CustomRoute ¶
type CustomRoute struct { Stream bool Pattern string Method string RouteFunc CustomRouteFunc StreamRouteFunc CustomRouteFuncStream }
CustomRoute is a custom route definition
type CustomRouteFunc ¶
type CustomRouteFunc func(*http.Request) (*CustomRouteFuncResponse, error)
CustomRouteFunc is a handler function for a custom route
type CustomRouteFuncResponse ¶
type CustomRouteFuncResponse struct { ResourceType string Resources map[string]Attributes Headers map[string]string // Whether or not the resources should be treated as a single resource (if // false, will be returned as list) Single bool StatusCode int }
CustomRouteFuncResponse is what CustomRouteFunc returns
type CustomRouteFuncStream ¶
type CustomRouteFuncStream func(*http.Request) (*CustomRouteFuncStreamResponse, error)
CustomRouteFuncStream is a handler function for a custom route server stream response
type CustomRouteFuncStreamResponse ¶
type CustomRouteFuncStreamResponse struct { Headers map[string]string StatusCode int ForceFlush bool FlushInternal time.Duration ReadCloser io.ReadCloser }
CustomRouteFuncStreamResponse is what CustomRouteFuncStream returns
type Encoder ¶
type Encoder interface { // encode a single resource EncodeResource(string, Attributes) // encode multiple resources EncodeResources(map[string]Attributes) }
type EncoderFactory ¶
type EncoderFactory interface { // create an encoder NewEncoder(http.ResponseWriter, string) Encoder }
type ErrorContainsVerifier ¶
type ErrorContainsVerifier struct {
// contains filtered or unexported fields
}
ErrorContainsVerifier verifies contents of returned errors
func NewErrorContainsVerifier ¶
func NewErrorContainsVerifier(logger logger.Logger, expectedStrings []string) *ErrorContainsVerifier
NewErrorContainsVerifier returns a new ErrorContainsVerifier
func (*ErrorContainsVerifier) Verify ¶
func (ecv *ErrorContainsVerifier) Verify(response map[string]interface{}) bool
Verify verifies that the returned response contains the given errors
type JSONAPIEncoderFactory ¶
type JSONAPIEncoderFactory struct{}
func (*JSONAPIEncoderFactory) NewEncoder ¶
func (jaef *JSONAPIEncoderFactory) NewEncoder(responseWriter http.ResponseWriter, resourceType string) Encoder
type JSONEncoderFactory ¶
type JSONEncoderFactory struct{}
func (*JSONEncoderFactory) NewEncoder ¶
func (jef *JSONEncoderFactory) NewEncoder(responseWriter http.ResponseWriter, resourceType string) Encoder
type Resource ¶
type Resource interface { // Initialize the concrete server Initialize(logger.Logger, Server) (chi.Router, error) // ExtendMiddlewares extends router middlewares ExtendMiddlewares() error // OnAfterInitialize Called after initialization OnAfterInitialize() error // GetCustomRoutes returns a list of custom routes for the resource GetCustomRoutes() ([]CustomRoute, error) // GetAll returns all instances for resources with multiple instances GetAll(request *http.Request) (map[string]Attributes, error) // GetByID returns a specific instance by ID GetByID(request *http.Request, id string) (Attributes, error) // Create returns a resource ID, attributes Create(request *http.Request) (string, Attributes, error) // Update returns attributes (optionally) Update(request *http.Request, id string) (Attributes, error) // Delete deletes an entity Delete(request *http.Request, id string) error // Patch delete an entity Patch(request *http.Request, id string) error }
Resource interface
type ResourceMethod ¶
type ResourceMethod int
ResourceMethod is the method of the resource
const ( ResourceMethodGetList ResourceMethod = iota ResourceMethodGetDetail ResourceMethodCreate ResourceMethodUpdate ResourceMethodDelete ResourceMethodPatch )
Possible resource methods