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.32 import ( "context" "fmt" "log/slog" "strconv" "git.allthings.red/~neallred/allredlib/graph/model" "git.allthings.red/~neallred/allredlib/user" "github.com/99designs/gqlgen/graphql" ) // User is the resolver for the user field. func (r *mutationResolver) User(ctx context.Context) (*model.User, error) { panic(fmt.Errorf("not implemented: User - user")) } // NewCreator is the resolver for the newCreator field. func (r *mutationResolver) NewCreator(ctx context.Context, creator model.CreatorCreateInput) (*model.CreatorDetails, error) { return newCreator(ctx, r.Db, creator) } // NewSeries is the resolver for the newSeries field. func (r *mutationResolver) NewSeries(ctx context.Context, series model.SeriesInput) (*model.Series, error) { return newSeries(ctx, r.Db, series) } // NewSubseries is the resolver for the newSubseries field. func (r *mutationResolver) NewSubseries(ctx context.Context, series model.SubseriesInput) (*model.Subseries, error) { return newSubseries(ctx, r.Db, series) } // NewTitle is the resolver for the newTitle field. func (r *mutationResolver) NewTitle(ctx context.Context, title model.TitleInput) (*model.BookDetails, error) { return newTitle(ctx, r.Db, title) } // NewGenre is the resolver for the newGenre field. func (r *mutationResolver) NewGenre(ctx context.Context, genre model.GenreInput) (*model.Genre, error) { return newGenre(ctx, r.Db, genre) } // View is the resolver for the view field. func (r *queryResolver) Viewer(ctx context.Context) (*model.Viewer, error) { log := slog.With("where", "resolver.Viewer") userAuth, _ := ctx.Value(user.AuthCtxKey).(*user.UserAuth) if userAuth == nil { return nil, fmt.Errorf("did not have user auth") } allFields := graphql.CollectAllFields(ctx) viewer := &model.Viewer{} var err error userId := strconv.FormatInt(userAuth.UserId, 10) log = log.With("user", userId) if contains(allFields, "user") { log.Debug("resolving user") user, err := getUser(r.Db, userId) if err == nil { viewer.User = user } } if contains(allFields, "roles") { log.Debug("resolving roles") roles, err := getUserRoles(ctx, r.Db, userId) if err == nil { viewer.Roles = roles } } if contains(allFields, "pendingRoles") { log.Debug("resolving pendingRoles") roles, err := getPendingUserRoles(r.Db, userId) if err == nil { viewer.PendingRoles = roles } } return viewer, err } // Books is the resolver for the books field. func (r *queryResolver) Books(ctx context.Context, first *int, after string) (*model.BooksConnection, error) { return getBooks(ctx, r.Db, first, after) } // Book is the resolver for the book field. func (r *queryResolver) Book(ctx context.Context, id string) (*model.BookDetails, error) { return getBookDetails(ctx, r.Db, id) } // Creator is the resolver for the creator field. func (r *queryResolver) Creator(ctx context.Context, id string) (*model.CreatorDetails, error) { return getCreatorDetails(ctx, r.Db, id) } // Creators is the resolver for the creators field. func (r *queryResolver) Creators(ctx context.Context, first *int, after string) (*model.CreatorsConnection, error) { return getCreators(ctx, r.Db, first, after) } // Genres is the resolver for the genres field. func (r *queryResolver) Genres(ctx context.Context, first *int, after string) (*model.GenresConnection, error) { return getGenres(ctx, r.Db, first, after) } // Node is the resolver for the node field. func (r *queryResolver) Node(ctx context.Context, id string) (model.Node, error) { panic(fmt.Errorf("not implemented: Node - node")) } // 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 }