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.
