package graph // This file will be automatically regenerated based on the schema, any resolver implementations // will be copied through when generating and any unknown code will be moved to the end. // Code generated by github.com/99designs/gqlgen version v0.17.31 import ( "context" "fmt" "github.com/99designs/gqlgen/graphql" "github.com/talksik/graphql-golang/graph/model" gqperror "github.com/vektah/gqlparser/v2/gqlerror" ) var todos = []*model.Todo{ { ID: "1", Text: "laundry", Done: false, User: &model.User{ ID: "1", Name: "Talksik", }, }, { ID: "2", Text: "woah", Done: false, User: &model.User{ ID: "1", Name: "Talksik", }, }, { ID: "3", Text: "Hello", Done: false, User: &model.User{ ID: "1", Name: "Talksik", }, }, } // CreateTodo is the resolver for the createTodo field. func (r *mutationResolver) CreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error) { newTodo := &model.Todo{ ID: fmt.Sprintf("T%d", len(r.Todos)+1), Text: input.Text, Done: false, User: &model.User{ ID: input.Text, Name: "Talksik", }, } todos = append(todos, newTodo) return newTodo, nil } // Todos is the resolver for the todos field. func (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) { graphql.AddError(ctx, gqperror.Errorf("user not found")) return todos, nil } // User is the resolver for the user field. func (r *queryResolver) User(ctx context.Context, id string) (*model.User, error) { // get the user user := &model.User{ ID: "1", Name: "Talksik", Todos: []*model.Todo{}, } // get the todos for the user for _, todo := range todos { if todo.User.ID == user.ID { user.Todos = append(user.Todos, todo) } } return user, nil } // Mutation returns MutationResolver implementation. func (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} } // Query returns QueryResolver implementation. func (r *Resolver) Query() QueryResolver { return &queryResolver{r} } type mutationResolver struct{ *Resolver } type queryResolver struct{ *Resolver }