graphql

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2021 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GinContextFrom

func GinContextFrom(ctx context.Context) *gin.Context

GinContextFrom retrieve gin.Context from request's context inspired from https://gqlgen.com/recipes/gin/#accessing-gincontext

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

func WithInGinCtx

func WithInGinCtx() gin.HandlerFunc

WithInGinCtx set gin context into request's context with key ginCtxKey inspired from https://gqlgen.com/recipes/gin/#accessing-gincontext

Types

type ComplexityRoot

type ComplexityRoot struct {
	Endpoint struct {
		Options func(childComplexity int) int
		Path    func(childComplexity int) int
		Type    func(childComplexity int) int
	}

	Mutation struct {
		CreateTask func(childComplexity int, input *CreateTask) int
		DeleteTask func(childComplexity int, input *DeleteTask) int
		RunTask    func(childComplexity int, id string) int
	}

	Query struct {
		Task  func(childComplexity int, id string) int
		Tasks func(childComplexity int) int
	}

	Task struct {
		CreatedAt func(childComplexity int) int
		Dst       func(childComplexity int) int
		ID        func(childComplexity int) int
		Name      func(childComplexity int) int
		Options   func(childComplexity int) int
		Src       func(childComplexity int) int
		Status    func(childComplexity int) int
		Type      func(childComplexity int) int
		UpdatedAt func(childComplexity int) int
	}
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type CreateTask

type CreateTask struct {
	Name    string           `json:"name"`
	Type    models.TaskType  `json:"type"`
	Src     *models.Endpoint `json:"src"`
	Dst     *models.Endpoint `json:"dst"`
	Options interface{}      `json:"options"`
}

type DeleteTask

type DeleteTask struct {
	ID string `json:"id"`
}

type DirectiveRoot

type DirectiveRoot struct {
}

type MutationResolver

type MutationResolver interface {
	CreateTask(ctx context.Context, input *CreateTask) (*models.Task, error)
	DeleteTask(ctx context.Context, input *DeleteTask) (*models.Task, error)
	RunTask(ctx context.Context, id string) (*models.Task, error)
}

type QueryResolver

type QueryResolver interface {
	Task(ctx context.Context, id string) (*models.Task, error)
	Tasks(ctx context.Context) ([]*models.Task, error)
}

type Resolver

type Resolver struct {
	DB      *models.DB
	Manager *task.Manager
}

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) Task

func (r *Resolver) Task() TaskResolver

Task returns TaskResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Mutation() MutationResolver
	Query() QueryResolver
	Task() TaskResolver
}

type Server

type Server struct {
	Path  string
	Debug bool

	DB      *models.DB
	Manager *task.Manager
}

func (*Server) RegisterRouter

func (s *Server) RegisterRouter(r *gin.Engine)

type TaskResolver

type TaskResolver interface {
	Options(ctx context.Context, obj *models.Task) (interface{}, error)
}

Jump to

Keyboard shortcuts

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