package resolvers // 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.73 import ( "context" "encoding/json" "github.com/farahty/go-mongo/generated" "github.com/farahty/go-mongo/models" todoService "github.com/farahty/go-mongo/services/todo" userService "github.com/farahty/go-mongo/services/user" "go.mongodb.org/mongo-driver/bson/primitive" ) // CreateTodo is the resolver for the createTodo field. func (r *mutationResolver) CreateTodo(ctx context.Context, input models.CreateTodoInput) (*models.Todo, error) { obj, err := todoService.Create(ctx, input) if err != nil { return nil, err } if objJson, err := json.Marshal(obj); err == nil { r.Redis.Publish(ctx, "NEW_TODO_EVENT", objJson) } return obj, nil } // Todos is the resolver for the todos field. func (r *queryResolver) Todos(ctx context.Context) ([]*models.Todo, error) { return todoService.Find(ctx) } // Todo is the resolver for the todo field. func (r *queryResolver) Todo(ctx context.Context, id primitive.ObjectID) (*models.Todo, error) { return todoService.FindByID(ctx, id) } // OnTodo is the resolver for the onTodo field. func (r *subscriptionResolver) OnTodo(ctx context.Context) (<-chan *models.Todo, error) { return Subscribe[models.Todo](ctx, r.Redis, "NEW_TODO_EVENT") } // CreatedBy is the resolver for the createdBy field. func (r *todoResolver) CreatedBy(ctx context.Context, obj *models.Todo) (*models.User, error) { return userService.FindById(ctx, obj.CreatedByID) } // UpdatedBy is the resolver for the updatedBy field. func (r *todoResolver) UpdatedBy(ctx context.Context, obj *models.Todo) (*models.User, error) { return userService.FindById(ctx, obj.UpdatedByID) } // Owner is the resolver for the owner field. func (r *todoResolver) Owner(ctx context.Context, obj *models.Todo) (*models.User, error) { return userService.FindById(ctx, obj.OwnerID) } // Subscription returns generated.SubscriptionResolver implementation. func (r *Resolver) Subscription() generated.SubscriptionResolver { return &subscriptionResolver{r} } // Todo returns generated.TodoResolver implementation. func (r *Resolver) Todo() generated.TodoResolver { return &todoResolver{r} } type subscriptionResolver struct{ *Resolver } type todoResolver struct{ *Resolver }