Documentation ¶
Index ¶
- Constants
- Variables
- func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
- type Action
- type ComplexityRoot
- type Config
- type DirectiveRoot
- type Label
- type LabelAction
- type MutationResolver
- type Note
- type NotesInput
- type QueryResolver
- type Resolver
- type ResolverRoot
- type SubscriptionResolver
- type Todo
- type TodoAction
- type User
Constants ¶
View Source
const ( MsgNotAuthenticated string = "NotAuthenticated" CtxUserIDKey string = "userid" IDSize int = 4 )
Variables ¶
View Source
var AllAction = []Action{ ActionCreated, ActionDeleted, ActionUpdated, }
Functions ¶
func NewExecutableSchema ¶
func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
Types ¶
type ComplexityRoot ¶
type ComplexityRoot struct { Label struct { ID func(childComplexity int) int Name func(childComplexity int) int } LabelAction struct { Action func(childComplexity int) int Label func(childComplexity int) int } Mutation struct { CopyTodo func(childComplexity int, sourceID string) int CreateLabel func(childComplexity int, name string) int CreateTodo func(childComplexity int, title string, notes []string, labels []*string, color *string, isCheckboxMode *bool) int DeleteLabel func(childComplexity int, id string) int DeleteTodo func(childComplexity int, id string) int UpdateTodo func(childComplexity int, id string, title *string, notes []*NotesInput, labels []*string, color *string, isCheckboxMode *bool) int UpdateUser func(childComplexity int, listMode *bool, darkMode *bool) int } Note struct { IsCompleted func(childComplexity int) int Text func(childComplexity int) int } Query struct { Labels func(childComplexity int) int Todos func(childComplexity int) int User func(childComplexity int) int } Subscription struct { LabelStream func(childComplexity int) int TodoStream func(childComplexity int) int } Todo struct { Color func(childComplexity int) int ID func(childComplexity int) int IsCheckboxMode func(childComplexity int) int Labels func(childComplexity int) int Notes func(childComplexity int) int Title func(childComplexity int) int } TodoAction struct { Action func(childComplexity int) int Todo func(childComplexity int) int } User struct { DarkMode func(childComplexity int) int Email func(childComplexity int) int ID func(childComplexity int) int ListMode func(childComplexity int) int Name func(childComplexity int) int } }
type Config ¶
type Config struct { Resolvers ResolverRoot Directives DirectiveRoot Complexity ComplexityRoot }
type DirectiveRoot ¶
type DirectiveRoot struct { }
type LabelAction ¶
type MutationResolver ¶
type MutationResolver interface { CreateTodo(ctx context.Context, title string, notes []string, labels []*string, color *string, isCheckboxMode *bool) (*Todo, error) UpdateTodo(ctx context.Context, id string, title *string, notes []*NotesInput, labels []*string, color *string, isCheckboxMode *bool) (*Todo, error) DeleteTodo(ctx context.Context, id string) (*Todo, error) CopyTodo(ctx context.Context, sourceID string) (*Todo, error) CreateLabel(ctx context.Context, name string) (*Label, error) DeleteLabel(ctx context.Context, id string) (*Label, error) UpdateUser(ctx context.Context, listMode *bool, darkMode *bool) (*User, error) }
type NotesInput ¶
type QueryResolver ¶
type Resolver ¶
func (*Resolver) Mutation ¶
func (r *Resolver) Mutation() MutationResolver
func (*Resolver) Query ¶
func (r *Resolver) Query() QueryResolver
func (*Resolver) Subscription ¶
func (r *Resolver) Subscription() SubscriptionResolver
type ResolverRoot ¶
type ResolverRoot interface { Mutation() MutationResolver Query() QueryResolver Subscription() SubscriptionResolver }
type SubscriptionResolver ¶
type SubscriptionResolver interface { TodoStream(ctx context.Context) (<-chan *TodoAction, error) LabelStream(ctx context.Context) (<-chan *LabelAction, error) }
type Todo ¶
type Todo struct { ID string `json:"id"` Title string `json:"title"` Notes []*Note `json:"notes" gorm:"foreignkey:TodoID"` // has-many Labels []*Label `json:"labels" gorm:"many2many:todos_labels"` // many-to-many Color string `json:"color"` IsCheckboxMode bool `json:"isCheckboxMode"` UserID string `sql:"type:TEXT REFERENCES users(id) ON DELETE CASCADE"` }
type TodoAction ¶
Click to show internal directories.
Click to hide internal directories.