graph

package
v0.0.0-...-4cccceb Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2025 License: MIT Imports: 15 Imported by: 2

Documentation

Overview

This file will not be regenerated automatically.

It serves as dependency injection for your app, add any dependencies you require here.

Index

Constants

This section is empty.

Variables

View Source
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 ComplexityRoot

type ComplexityRoot struct {
}

type Config

type Config struct {
	Schema     *ast.Schema
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type DirectiveRoot

type DirectiveRoot struct {
}

type EntityRepresentation

type EntityRepresentation map[string]any

EntityRepresentation is the JSON representation of an entity sent by the Router used as the inputs for us to resolve.

We make it a map because we know the top level JSON is always an object.

type EntityResolver

type EntityResolver interface {
	FindManyProductByManufacturerIDAndIDs(ctx context.Context, reps []*model.ProductByManufacturerIDAndIDsInput) ([]*model.Product, error)
	FindUserByID(ctx context.Context, id string) (*model.User, error)
}

type EntityWithIndex

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

type ProductResolver

type ProductResolver interface {
	ManufacturerID(ctx context.Context, obj *model.Product, federationRequires map[string]any) (*string, error)
}

type Resolver

type Resolver struct{}

func (*Resolver) Entity

func (r *Resolver) Entity() EntityResolver

Entity returns EntityResolver implementation.

func (*Resolver) Product

func (r *Resolver) Product() ProductResolver

Product returns ProductResolver implementation.

func (*Resolver) User

func (r *Resolver) User() UserResolver

User returns UserResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Entity() EntityResolver
	Product() ProductResolver
	User() UserResolver
}

type UserResolver

type UserResolver interface {
	Username(ctx context.Context, obj *model.User) (string, error)
	Reviews(ctx context.Context, obj *model.User, federationRequires map[string]any) ([]*model.Review, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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