graphql

package
v0.0.0-...-8474782 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2020 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.

Types

type ComplexityRoot

type ComplexityRoot struct {
	AuthResponse struct {
		AuthToken func(childComplexity int) int
		User      func(childComplexity int) int
	}

	AuthToken struct {
		AccessToken func(childComplexity int) int
		ExpiredAt   func(childComplexity int) int
	}

	Device struct {
		CreatedDate  func(childComplexity int) int
		ID           func(childComplexity int) int
		LastModified func(childComplexity int) int
		MacAddress   func(childComplexity int) int
		Memo         func(childComplexity int) int
		Model        func(childComplexity int) int
		Name         func(childComplexity int) int
		Room         func(childComplexity int) int
		SerialNumber func(childComplexity int) int
		Status       func(childComplexity int) int
		Type         func(childComplexity int) int
	}

	Email struct {
		CreatedDate func(childComplexity int) int
		Data        func(childComplexity int) int
		From        func(childComplexity int) int
		ID          func(childComplexity int) int
		To          func(childComplexity int) int
	}

	Mutation struct {
		CreateDevice func(childComplexity int, input models.DeviceInput) int
		CreateEmail  func(childComplexity int, input models.EmailInput) int
		CreateRoom   func(childComplexity int, input models.RoomInput) int
		CreateUser   func(childComplexity int, input models.UserInput) int
		Login        func(childComplexity int, input models.LoginInput) int
		UpdateDevice func(childComplexity int, id string, input models.DeviceUpdate) int
		UpdateRoom   func(childComplexity int, id string, input models.RoomUpdate) int
		UpdateUser   func(childComplexity int, id string, input models.UserUpdate) int
	}

	Query struct {
		Device  func(childComplexity int, id string) int
		Devices func(childComplexity int) int
		Email   func(childComplexity int, id string) int
		Emails  func(childComplexity int) int
		Room    func(childComplexity int, id string) int
		Rooms   func(childComplexity int, filter *models.RoomFilter, limit *int, offset *int) int
		User    func(childComplexity int, id string) int
		Users   func(childComplexity int) int
	}

	Room struct {
		CreatedDate func(childComplexity int) int
		Devices     func(childComplexity int) int
		ID          func(childComplexity int) int
		Memo        func(childComplexity int) int
		Password    func(childComplexity int) int
		RoomNumber  func(childComplexity int) int
		Username    func(childComplexity int) int
	}

	Subscription struct {
		NewEmails func(childComplexity int) int
	}

	User struct {
		Abbr     func(childComplexity int) int
		Email    func(childComplexity int) int
		ID       func(childComplexity int) int
		Location func(childComplexity int) int
		Name     func(childComplexity int) int
		Openhab  func(childComplexity int) int
		Username func(childComplexity int) int
	}
}

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot
}

type DeviceResolver

type DeviceResolver interface {
	Room(ctx context.Context, obj *models.Device) (*models.Room, error)
}

type DirectiveRoot

type DirectiveRoot struct {
}

type MutationResolver

type MutationResolver interface {
	Login(ctx context.Context, input models.LoginInput) (*models.AuthResponse, error)
	CreateRoom(ctx context.Context, input models.RoomInput) (*models.Room, error)
	UpdateRoom(ctx context.Context, id string, input models.RoomUpdate) (*models.Room, error)
	CreateDevice(ctx context.Context, input models.DeviceInput) (*models.Device, error)
	UpdateDevice(ctx context.Context, id string, input models.DeviceUpdate) (*models.Device, error)
	CreateUser(ctx context.Context, input models.UserInput) (*models.User, error)
	UpdateUser(ctx context.Context, id string, input models.UserUpdate) (*models.User, error)
	CreateEmail(ctx context.Context, input models.EmailInput) (*models.Email, error)
}

type QueryResolver

type QueryResolver interface {
	Emails(ctx context.Context) ([]*models.Email, error)
	Email(ctx context.Context, id string) (*models.Email, error)
	Users(ctx context.Context) ([]*models.User, error)
	User(ctx context.Context, id string) (*models.User, error)
	Rooms(ctx context.Context, filter *models.RoomFilter, limit *int, offset *int) ([]*models.Room, error)
	Room(ctx context.Context, id string) (*models.Room, error)
	Devices(ctx context.Context) ([]*models.Device, error)
	Device(ctx context.Context, id string) (*models.Device, error)
}

type Resolver

type Resolver struct {
	DeviceRepo mongodb.DeviceRepo
	RoomRepo   mongodb.RoomRepo
	UserRepo   mongodb.UserRepo
	EmailRepo  mongodb.EmailRepo
	Redis      redis.Client
}

Resolver struct

func (*Resolver) Device

func (r *Resolver) Device() DeviceResolver

Device returns DeviceResolver 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) Room

func (r *Resolver) Room() RoomResolver

Room returns RoomResolver implementation.

func (*Resolver) Subscription

func (r *Resolver) Subscription() SubscriptionResolver

Subscription returns SubscriptionResolver implementation.

type ResolverRoot

type ResolverRoot interface {
	Device() DeviceResolver
	Mutation() MutationResolver
	Query() QueryResolver
	Room() RoomResolver
	Subscription() SubscriptionResolver
}

type RoomResolver

type RoomResolver interface {
	Devices(ctx context.Context, obj *models.Room) ([]*models.Device, error)
}

type SubscriptionResolver

type SubscriptionResolver interface {
	NewEmails(ctx context.Context) (<-chan *models.Email, error)
}

Jump to

Keyboard shortcuts

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