Documentation ¶
Overview ¶
Package graphapi provides the graph api handler and resolver for metadata api
Index ¶
- Variables
- func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
- type AnnotationDeleteInput
- type AnnotationDeleteResponse
- type AnnotationNamespaceCreatePayload
- type AnnotationNamespaceDeletePayload
- type AnnotationNamespaceResolver
- type AnnotationNamespaceUpdatePayload
- type AnnotationUpdateInput
- type AnnotationUpdateResponse
- type ComplexityRoot
- type Config
- type DirectiveRoot
- type EntityResolver
- type ErrInvalidField
- type Handler
- type MetadataNode
- type MetadataNodeResolver
- type MetadataResolver
- type MutationResolver
- type QueryResolver
- type Resolver
- func (r *Resolver) AnnotationNamespace() AnnotationNamespaceResolver
- func (r *Resolver) Entity() EntityResolver
- func (r *Resolver) Handler(withPlayground bool, middleware ...echo.MiddlewareFunc) *Handler
- func (r *Resolver) Metadata() MetadataResolver
- func (r *Resolver) MetadataNode() MetadataNodeResolver
- func (r *Resolver) Mutation() MutationResolver
- func (r *Resolver) Query() QueryResolver
- func (r *Resolver) ResourceOwner() ResourceOwnerResolver
- func (r *Resolver) StatusNamespace() StatusNamespaceResolver
- func (r *Resolver) StatusOwner() StatusOwnerResolver
- type ResolverRoot
- type ResourceOwner
- type ResourceOwnerResolver
- type StatusDeleteInput
- type StatusDeleteResponse
- type StatusNamespaceCreatePayload
- type StatusNamespaceDeletePayload
- type StatusNamespaceResolver
- type StatusNamespaceUpdatePayload
- type StatusOwner
- type StatusOwnerResolver
- type StatusUpdateInput
- type StatusUpdateResponse
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInternalServerError is returned when an internal error occurs. ErrInternalServerError = errors.New("internal server error") // ErrFieldEmpty is returned when a required field is empty. ErrFieldEmpty = errors.New("must not be empty") // ErrInvalidJSON is returned when invalid json is provided. ErrInvalidJSON = errors.New("invalid json data") // ErrUniquenessConstraint is returned when an input field must be unique. ErrUniquenessConstraint = errors.New("must be unique") // ErrNamespaceInUse is returned when a namespace is in use and can't be deleted. ErrNamespaceInUse = errors.New("namespace is in use and can't be deleted") )
var ( ErrUnknownType = errors.New("unknown type") ErrTypeNotFound = errors.New("type not found") )
Functions ¶
func NewExecutableSchema ¶
func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
Types ¶
type AnnotationDeleteInput ¶
type AnnotationDeleteInput struct { // The node ID for this annotation. NodeID gidx.PrefixedID `json:"nodeID"` // The namespace ID for this annotation. NamespaceID gidx.PrefixedID `json:"namespaceID"` }
Input information to delete an annotation.
type AnnotationDeleteResponse ¶
type AnnotationDeleteResponse struct { // The ID of the unset annotation. DeletedID gidx.PrefixedID `json:"deletedID"` }
Return response from annotationDelete
type AnnotationNamespaceCreatePayload ¶
type AnnotationNamespaceCreatePayload struct { // The created annotation namespace. AnnotationNamespace *generated.AnnotationNamespace `json:"annotationNamespace"` }
Return response from annotationNamespaceCreate
type AnnotationNamespaceDeletePayload ¶
type AnnotationNamespaceDeletePayload struct { // The ID of the deleted annotation namespace. DeletedID gidx.PrefixedID `json:"deletedID"` // The count of annotations deleted AnnotationDeletedCount int `json:"annotationDeletedCount"` }
Return response from annotationNamespaceDelete
type AnnotationNamespaceResolver ¶
type AnnotationNamespaceResolver interface {
Owner(ctx context.Context, obj *generated.AnnotationNamespace) (*ResourceOwner, error)
}
type AnnotationNamespaceUpdatePayload ¶
type AnnotationNamespaceUpdatePayload struct { // The updated annotation namespace. AnnotationNamespace *generated.AnnotationNamespace `json:"annotationNamespace"` }
Return response from annotationNamespaceUpdate
type AnnotationUpdateInput ¶
type AnnotationUpdateInput struct { // The node ID for this annotation. NodeID gidx.PrefixedID `json:"nodeID"` // The namespace ID for this annotation. NamespaceID gidx.PrefixedID `json:"namespaceID"` // The data to save in this annotation. Data json.RawMessage `json:"data"` }
Input information to update an annotation.
type AnnotationUpdateResponse ¶
type AnnotationUpdateResponse struct { // The set annotation. Annotation *generated.Annotation `json:"annotation"` }
Return response from annotationUpdate
type ComplexityRoot ¶
type ComplexityRoot struct { Annotation struct { CreatedAt func(childComplexity int) int Data func(childComplexity int) int ID func(childComplexity int) int Metadata func(childComplexity int) int MetadataID func(childComplexity int) int Namespace func(childComplexity int) int UpdatedAt func(childComplexity int) int } AnnotationConnection struct { Edges func(childComplexity int) int PageInfo func(childComplexity int) int TotalCount func(childComplexity int) int } AnnotationDeleteResponse struct { DeletedID func(childComplexity int) int } AnnotationEdge struct { Cursor func(childComplexity int) int Node func(childComplexity int) int } AnnotationNamespace struct { Annotations func(childComplexity int) int CreatedAt func(childComplexity int) int ID func(childComplexity int) int Name func(childComplexity int) int Owner func(childComplexity int) int Private func(childComplexity int) int UpdatedAt func(childComplexity int) int } AnnotationNamespaceConnection struct { Edges func(childComplexity int) int PageInfo func(childComplexity int) int TotalCount func(childComplexity int) int } AnnotationNamespaceCreatePayload struct { AnnotationNamespace func(childComplexity int) int } AnnotationNamespaceDeletePayload struct { AnnotationDeletedCount func(childComplexity int) int DeletedID func(childComplexity int) int } AnnotationNamespaceEdge struct { Cursor func(childComplexity int) int Node func(childComplexity int) int } AnnotationNamespaceUpdatePayload struct { AnnotationNamespace func(childComplexity int) int } AnnotationUpdateResponse struct { Annotation func(childComplexity int) int } Entity struct { FindAnnotationByID func(childComplexity int, id gidx.PrefixedID) int FindAnnotationNamespaceByID func(childComplexity int, id gidx.PrefixedID) int FindMetadataByID func(childComplexity int, id gidx.PrefixedID) int FindMetadataByNodeID func(childComplexity int, nodeID gidx.PrefixedID) int FindMetadataNodeByID func(childComplexity int, id gidx.PrefixedID) int FindResourceOwnerByID func(childComplexity int, id gidx.PrefixedID) int FindStatusByID func(childComplexity int, id gidx.PrefixedID) int FindStatusNamespaceByID func(childComplexity int, id gidx.PrefixedID) int FindStatusOwnerByID func(childComplexity int, id gidx.PrefixedID) int } Metadata struct { Annotations func(childComplexity int, after *entgql.Cursor[gidx.PrefixedID], first *int, before *entgql.Cursor[gidx.PrefixedID], last *int, orderBy *generated.AnnotationOrder, where *generated.AnnotationWhereInput) int CreatedAt func(childComplexity int) int ID func(childComplexity int) int Node func(childComplexity int) int NodeID func(childComplexity int) int Statuses func(childComplexity int, after *entgql.Cursor[gidx.PrefixedID], first *int, before *entgql.Cursor[gidx.PrefixedID], last *int, orderBy *generated.StatusOrder, where *generated.StatusWhereInput) int UpdatedAt func(childComplexity int) int } MetadataConnection struct { Edges func(childComplexity int) int PageInfo func(childComplexity int) int TotalCount func(childComplexity int) int } MetadataEdge struct { Cursor func(childComplexity int) int Node func(childComplexity int) int } MetadataNode struct { ID func(childComplexity int) int Metadata func(childComplexity int) int } Mutation struct { AnnotationDelete func(childComplexity int, input AnnotationDeleteInput) int AnnotationNamespaceCreate func(childComplexity int, input generated.CreateAnnotationNamespaceInput) int AnnotationNamespaceDelete func(childComplexity int, id gidx.PrefixedID, force bool) int AnnotationNamespaceUpdate func(childComplexity int, id gidx.PrefixedID, input generated.UpdateAnnotationNamespaceInput) int AnnotationUpdate func(childComplexity int, input AnnotationUpdateInput) int StatusDelete func(childComplexity int, input StatusDeleteInput) int StatusNamespaceCreate func(childComplexity int, input generated.CreateStatusNamespaceInput) int StatusNamespaceDelete func(childComplexity int, id gidx.PrefixedID, force bool) int StatusNamespaceUpdate func(childComplexity int, id gidx.PrefixedID, input generated.UpdateStatusNamespaceInput) int StatusUpdate func(childComplexity int, input StatusUpdateInput) int } PageInfo struct { EndCursor func(childComplexity int) int HasNextPage func(childComplexity int) int HasPreviousPage func(childComplexity int) int StartCursor func(childComplexity int) int } Query struct { AnnotationNamespace func(childComplexity int, id gidx.PrefixedID) int // contains filtered or unexported fields } ResourceOwner struct { AnnotationNamespaces func(childComplexity int, after *entgql.Cursor[gidx.PrefixedID], first *int, before *entgql.Cursor[gidx.PrefixedID], last *int, orderBy *generated.AnnotationNamespaceOrder, where *generated.AnnotationNamespaceWhereInput) int ID func(childComplexity int) int Metadata func(childComplexity int) int } Status struct { CreatedAt func(childComplexity int) int Data func(childComplexity int) int ID func(childComplexity int) int Metadata func(childComplexity int) int MetadataID func(childComplexity int) int Namespace func(childComplexity int) int Source func(childComplexity int) int StatusNamespaceID func(childComplexity int) int UpdatedAt func(childComplexity int) int } StatusConnection struct { Edges func(childComplexity int) int PageInfo func(childComplexity int) int TotalCount func(childComplexity int) int } StatusDeleteResponse struct { DeletedID func(childComplexity int) int } StatusEdge struct { Cursor func(childComplexity int) int Node func(childComplexity int) int } StatusNamespace struct { CreatedAt func(childComplexity int) int ID func(childComplexity int) int Name func(childComplexity int) int Owner func(childComplexity int) int Private func(childComplexity int) int UpdatedAt func(childComplexity int) int } StatusNamespaceConnection struct { Edges func(childComplexity int) int PageInfo func(childComplexity int) int TotalCount func(childComplexity int) int } StatusNamespaceCreatePayload struct { StatusNamespace func(childComplexity int) int } StatusNamespaceDeletePayload struct { DeletedID func(childComplexity int) int StatusDeletedCount func(childComplexity int) int } StatusNamespaceEdge struct { Cursor func(childComplexity int) int Node func(childComplexity int) int } StatusNamespaceUpdatePayload struct { StatusNamespace func(childComplexity int) int } StatusOwner struct { ID func(childComplexity int) int Metadata func(childComplexity int) int StatusNamespaces func(childComplexity int, after *entgql.Cursor[gidx.PrefixedID], first *int, before *entgql.Cursor[gidx.PrefixedID], last *int, orderBy *generated.StatusNamespaceOrder, where *generated.StatusNamespaceWhereInput) int } StatusUpdateResponse struct { Status func(childComplexity int) int } // contains filtered or unexported fields }
type Config ¶
type Config struct { Resolvers ResolverRoot Directives DirectiveRoot Complexity ComplexityRoot }
type DirectiveRoot ¶
type EntityResolver ¶
type EntityResolver interface { FindAnnotationByID(ctx context.Context, id gidx.PrefixedID) (*generated.Annotation, error) FindAnnotationNamespaceByID(ctx context.Context, id gidx.PrefixedID) (*generated.AnnotationNamespace, error) FindMetadataByID(ctx context.Context, id gidx.PrefixedID) (*generated.Metadata, error) FindMetadataByNodeID(ctx context.Context, nodeID gidx.PrefixedID) (*generated.Metadata, error) FindMetadataNodeByID(ctx context.Context, id gidx.PrefixedID) (*MetadataNode, error) FindResourceOwnerByID(ctx context.Context, id gidx.PrefixedID) (*ResourceOwner, error) FindStatusByID(ctx context.Context, id gidx.PrefixedID) (*generated.Status, error) FindStatusNamespaceByID(ctx context.Context, id gidx.PrefixedID) (*generated.StatusNamespace, error) FindStatusOwnerByID(ctx context.Context, id gidx.PrefixedID) (*StatusOwner, error) }
type ErrInvalidField ¶ added in v0.0.2
type ErrInvalidField struct {
// contains filtered or unexported fields
}
ErrInvalidField is returned when an invalid input is provided.
func NewInvalidFieldError ¶ added in v0.0.4
func NewInvalidFieldError(field string, err error) *ErrInvalidField
func (*ErrInvalidField) Error ¶ added in v0.0.2
func (e *ErrInvalidField) Error() string
Error implements the error interface.
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler is an http handler wrapping a Resolver
func (*Handler) Handler ¶
func (h *Handler) Handler() http.HandlerFunc
Handler returns the http.HandlerFunc for the GraphAPI
type MetadataNode ¶
type MetadataNode struct { ID gidx.PrefixedID `json:"id"` // Metadata about this node, including annotations and statuses. Metadata *generated.Metadata `json:"metadata,omitempty"` }
MetadataNode provides an interface for any Node in the graph that can store metadata.
func (MetadataNode) IsEntity ¶
func (MetadataNode) IsEntity()
type MetadataNodeResolver ¶
type MetadataResolver ¶
type MutationResolver ¶
type MutationResolver interface { AnnotationUpdate(ctx context.Context, input AnnotationUpdateInput) (*AnnotationUpdateResponse, error) AnnotationDelete(ctx context.Context, input AnnotationDeleteInput) (*AnnotationDeleteResponse, error) AnnotationNamespaceCreate(ctx context.Context, input generated.CreateAnnotationNamespaceInput) (*AnnotationNamespaceCreatePayload, error) AnnotationNamespaceDelete(ctx context.Context, id gidx.PrefixedID, force bool) (*AnnotationNamespaceDeletePayload, error) AnnotationNamespaceUpdate(ctx context.Context, id gidx.PrefixedID, input generated.UpdateAnnotationNamespaceInput) (*AnnotationNamespaceUpdatePayload, error) StatusUpdate(ctx context.Context, input StatusUpdateInput) (*StatusUpdateResponse, error) StatusDelete(ctx context.Context, input StatusDeleteInput) (*StatusDeleteResponse, error) StatusNamespaceCreate(ctx context.Context, input generated.CreateStatusNamespaceInput) (*StatusNamespaceCreatePayload, error) StatusNamespaceDelete(ctx context.Context, id gidx.PrefixedID, force bool) (*StatusNamespaceDeletePayload, error) StatusNamespaceUpdate(ctx context.Context, id gidx.PrefixedID, input generated.UpdateStatusNamespaceInput) (*StatusNamespaceUpdatePayload, error) }
type QueryResolver ¶
type QueryResolver interface {
AnnotationNamespace(ctx context.Context, id gidx.PrefixedID) (*generated.AnnotationNamespace, error)
}
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver provides a graph response resolver
func NewResolver ¶
func NewResolver(client *ent.Client, logger *zap.SugaredLogger) *Resolver
NewResolver returns a resolver configured with the given ent client
func (*Resolver) AnnotationNamespace ¶
func (r *Resolver) AnnotationNamespace() AnnotationNamespaceResolver
AnnotationNamespace returns AnnotationNamespaceResolver implementation.
func (*Resolver) Entity ¶
func (r *Resolver) Entity() EntityResolver
Entity returns EntityResolver implementation.
func (*Resolver) Metadata ¶
func (r *Resolver) Metadata() MetadataResolver
Metadata returns MetadataResolver implementation.
func (*Resolver) MetadataNode ¶
func (r *Resolver) MetadataNode() MetadataNodeResolver
MetadataNode returns MetadataNodeResolver implementation.
func (*Resolver) Mutation ¶
func (r *Resolver) Mutation() MutationResolver
Mutation returns MutationResolver implementation.
func (*Resolver) Query ¶
func (r *Resolver) Query() QueryResolver
Query returns QueryResolver implementation.
func (*Resolver) ResourceOwner ¶
func (r *Resolver) ResourceOwner() ResourceOwnerResolver
ResourceOwner returns ResourceOwnerResolver implementation.
func (*Resolver) StatusNamespace ¶
func (r *Resolver) StatusNamespace() StatusNamespaceResolver
StatusNamespace returns StatusNamespaceResolver implementation.
func (*Resolver) StatusOwner ¶
func (r *Resolver) StatusOwner() StatusOwnerResolver
StatusOwner returns StatusOwnerResolver implementation.
type ResolverRoot ¶
type ResolverRoot interface { AnnotationNamespace() AnnotationNamespaceResolver Entity() EntityResolver Metadata() MetadataResolver MetadataNode() MetadataNodeResolver Mutation() MutationResolver Query() QueryResolver ResourceOwner() ResourceOwnerResolver StatusNamespace() StatusNamespaceResolver StatusOwner() StatusOwnerResolver }
type ResourceOwner ¶
type ResourceOwner struct { ID gidx.PrefixedID `json:"id"` AnnotationNamespaces *generated.AnnotationNamespaceConnection `json:"annotationNamespaces"` // Metadata about this node, including annotations and statuses. Metadata *generated.Metadata `json:"metadata,omitempty"` }
func (ResourceOwner) IsEntity ¶
func (ResourceOwner) IsEntity()
type ResourceOwnerResolver ¶
type ResourceOwnerResolver interface { AnnotationNamespaces(ctx context.Context, obj *ResourceOwner, after *entgql.Cursor[gidx.PrefixedID], first *int, before *entgql.Cursor[gidx.PrefixedID], last *int, orderBy *generated.AnnotationNamespaceOrder, where *generated.AnnotationNamespaceWhereInput) (*generated.AnnotationNamespaceConnection, error) Metadata(ctx context.Context, obj *ResourceOwner) (*generated.Metadata, error) }
type StatusDeleteInput ¶
type StatusDeleteInput struct { // The node ID for this status. NodeID gidx.PrefixedID `json:"nodeID"` // The namespace ID for this status. NamespaceID gidx.PrefixedID `json:"namespaceID"` // The source for this status. Source string `json:"source"` }
Input information to delete an status.
type StatusDeleteResponse ¶
type StatusDeleteResponse struct { // The ID of the unset status. DeletedID gidx.PrefixedID `json:"deletedID"` }
Return response from statusDelete
type StatusNamespaceCreatePayload ¶
type StatusNamespaceCreatePayload struct { // The created status namespace. StatusNamespace *generated.StatusNamespace `json:"statusNamespace"` }
Return response from statusNamespaceCreate
type StatusNamespaceDeletePayload ¶
type StatusNamespaceDeletePayload struct { // The ID of the deleted status namespace. DeletedID gidx.PrefixedID `json:"deletedID"` // The count of statuss deleted StatusDeletedCount int `json:"statusDeletedCount"` }
Return response from statusNamespaceDelete
type StatusNamespaceResolver ¶
type StatusNamespaceResolver interface {
Owner(ctx context.Context, obj *generated.StatusNamespace) (*StatusOwner, error)
}
type StatusNamespaceUpdatePayload ¶
type StatusNamespaceUpdatePayload struct { // The updated status namespace. StatusNamespace *generated.StatusNamespace `json:"statusNamespace"` }
Return response from statusNamespaceUpdate
type StatusOwner ¶
type StatusOwner struct { ID gidx.PrefixedID `json:"id"` StatusNamespaces *generated.StatusNamespaceConnection `json:"statusNamespaces"` // Metadata about this node, including annotations and statuses. Metadata *generated.Metadata `json:"metadata,omitempty"` }
func (StatusOwner) IsEntity ¶
func (StatusOwner) IsEntity()
type StatusOwnerResolver ¶
type StatusOwnerResolver interface { StatusNamespaces(ctx context.Context, obj *StatusOwner, after *entgql.Cursor[gidx.PrefixedID], first *int, before *entgql.Cursor[gidx.PrefixedID], last *int, orderBy *generated.StatusNamespaceOrder, where *generated.StatusNamespaceWhereInput) (*generated.StatusNamespaceConnection, error) Metadata(ctx context.Context, obj *StatusOwner) (*generated.Metadata, error) }
type StatusUpdateInput ¶
type StatusUpdateInput struct { // The node ID for this status. NodeID gidx.PrefixedID `json:"nodeID"` // The namespace ID for this status. NamespaceID gidx.PrefixedID `json:"namespaceID"` // The source for this status. Source string `json:"source"` // The data to save in this status. Data json.RawMessage `json:"data"` }
Input information to update an status.
type StatusUpdateResponse ¶
Return response from statusUpdate
Source Files ¶
- annotation.resolvers.go
- annotationnamespace.resolvers.go
- doc.go
- ent.resolvers.go
- entity.resolvers.go
- errors.go
- gen_federation.go
- gen_models.go
- generated.go
- metadata.resolvers.go
- models.go
- permissions.go
- resolver.go
- resourceowner.resolvers.go
- status.resolvers.go
- statusnamespace.resolvers.go
- statusowner.resolvers.go