Files
2023-05-23 17:50:28 -07:00

97 lines
2.1 KiB
Go

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 }