Back to

Package chat

Latest Go to latest

The latest major version is .

Published: Sep 21, 2020 | License: MIT | Module:


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