Back to godoc.org

Package chat

v0.13.0
Latest Go to latest

The latest major version is .

Published: 2 days ago | License: MIT | Module: github.com/99designs/gqlgen

Index

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

type Chatroom

type Chatroom struct {
	Name      string
	Messages  []Message
	Observers map[string]struct {
		Username string
		Message  chan *Message
	}
}

type ComplexityRoot

type ComplexityRoot struct {
	Chatroom struct {
		Messages func(childComplexity int) int
		Name     func(childComplexity int) int
	}

	Message struct {
		CreatedAt func(childComplexity int) int
		CreatedBy func(childComplexity int) int
		ID        func(childComplexity int) int
		Text      func(childComplexity int) int
	}

	Mutation struct {
		Post func(childComplexity int, text string, username string, roomName string) int
	}

	Query struct {
		Room func(childComplexity int, name string) int
	}

	Subscription struct {
		MessageAdded func(childComplexity int, roomName string) int
	}
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

func New

func New() Config

type DirectiveRoot

type DirectiveRoot struct {
	User func(ctx context.Context, obj interface{}, next graphql.Resolver, username string) (res interface{}, err error)
}

type Message

type Message struct {
	ID        string    `json:"id"`
	Text      string    `json:"text"`
	CreatedBy string    `json:"createdBy"`
	CreatedAt time.Time `json:"createdAt"`
}

type MutationResolver

type MutationResolver interface {
	Post(ctx context.Context, text string, username string, roomName string) (*Message, error)
}

type QueryResolver

type QueryResolver interface {
	Room(ctx context.Context, name string) (*Chatroom, error)
}

type ResolverRoot

type ResolverRoot interface {
	Mutation() MutationResolver
	Query() QueryResolver
	Subscription() SubscriptionResolver
}

type SubscriptionResolver

type SubscriptionResolver interface {
	MessageAdded(ctx context.Context, roomName string) (<-chan *Message, error)
}

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier