diff --git a/graph/resolver.go b/graph/resolver.go index a25c09c..7b1191e 100644 --- a/graph/resolver.go +++ b/graph/resolver.go @@ -1,7 +1,34 @@ package graph +import "github.com/talksik/graphql-golang/graph/model" + // This file will not be regenerated automatically. // // It serves as dependency injection for your app, add any dependencies you require here. -type Resolver struct{} + +var todos = []*model.Todo{ + { + ID: "1", + Text: "laundry", + Done: false, + }, + { + ID: "2", + Text: "woah", + Done: false, + }, + { + ID: "3", + Text: "Hello", + Done: false, + User: &model.User{ + ID: "1", + Name: "Talksik", + }, + }, +} + +type Resolver struct{ + Todos []*model.Todo +} diff --git a/graph/schema.resolvers.go b/graph/schema.resolvers.go index 219a96c..167e944 100644 --- a/graph/schema.resolvers.go +++ b/graph/schema.resolvers.go @@ -13,22 +13,20 @@ import ( // CreateTodo is the resolver for the createTodo field. func (r *mutationResolver) CreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error) { - panic(fmt.Errorf("not implemented: CreateTodo - createTodo")) + newTodo := &model.Todo{ + ID: fmt.Sprintf("T%d", len(r.Todos)+1), + Text: input.Text, + Done: false, + } + + r.Resolver.Todos = append(r.Resolver.Todos, newTodo) + + return newTodo, nil } // Todos is the resolver for the todos field. func (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) { - return []*model.Todo{ - { - ID: "1", - Text: "Hello", - Done: false, - User: &model.User{ - ID: "1", - Name: "Talksik", - }, - }, - }, nil + return r.Resolver.Todos, nil } // Mutation returns MutationResolver implementation.