97 lines
2.1 KiB
Go
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 }
|