Viewing:
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 }