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.37 import ( "context" "errors" "somepi.ddns.net/gitea/gilex-dev/YetAnotherToDoList/globals" "somepi.ddns.net/gitea/gilex-dev/YetAnotherToDoList/graph/model" "somepi.ddns.net/gitea/gilex-dev/YetAnotherToDoList/server/auth" ) // CreateUser is the resolver for the createUser field. func (r *mutationResolver) CreateUser(ctx context.Context, input model.NewUser) (*model.User, error) { todo, err := globals.DB.CreateUser(input) if err != nil { globals.Logger.Println("Failed to add new user:", err) return nil, errors.New("failed to add new user") } return todo, nil } // CreateTodo is the resolver for the createTodo field. func (r *mutationResolver) CreateTodo(ctx context.Context, input model.NewTodo) (*model.Todo, error) { todo, err := globals.DB.CreateTodo(input) if err != nil { globals.Logger.Println("Failed to add new todo:", err) return nil, errors.New("failed to add new todo") } return todo, nil } // CreateRole is the resolver for the createRole field. func (r *mutationResolver) CreateRole(ctx context.Context, input model.NewRole) (*model.Role, error) { role, err := globals.DB.CreateRole(&input) if err != nil { globals.Logger.Println("Failed to add new role:", err) return nil, errors.New("failed to add new role") } return role, nil } // CreateRefreshToken is the resolver for the createRefreshToken field. func (r *mutationResolver) CreateRefreshToken(ctx context.Context, input model.NewRefreshToken) (*model.RefreshToken, error) { // TODO: unify model.RefreshToken & auth.RefreshToken userToken := auth.ForContext(ctx) refreshToken, tokenId, err := globals.DB.IssueRefreshToken(userToken.UserId, input.TokenName) if err != nil { globals.Logger.Println("Failed to create refresh token:", err) return nil, errors.New("failed to create refresh token") } return &model.RefreshToken{ID: tokenId, ExpiryDate: refreshToken.ExpiryDate, TokenName: input.TokenName, Selector: &refreshToken.Selector, Token: &refreshToken.Token, UserID: userToken.UserId}, nil } // UpdateTodo is the resolver for the updateTodo field. func (r *mutationResolver) UpdateTodo(ctx context.Context, id string, changes model.UpdateTodo) (*model.Todo, error) { return globals.DB.UpdateTodo(id, &changes) } // UpdateUser is the resolver for the updateUser field. func (r *mutationResolver) UpdateUser(ctx context.Context, id string, changes model.UpdateUser) (*model.User, error) { return globals.DB.UpdateUser(id, &changes) } // UpdateRole is the resolver for the updateRole field. func (r *mutationResolver) UpdateRole(ctx context.Context, id string, changes model.UpdateRole) (*model.Role, error) { return globals.DB.UpdateRole(id, &changes) } // UpdateRefreshToken is the resolver for the updateRefreshToken field. func (r *mutationResolver) UpdateRefreshToken(ctx context.Context, id string, changes model.UpdateRefreshToken) (*model.RefreshToken, error) { return globals.DB.UpdateRefreshToken(id, &changes) } // DeleteUser is the resolver for the deleteUser field. func (r *mutationResolver) DeleteUser(ctx context.Context, id string) (*string, error) { return globals.DB.DeleteUser(id) } // DeleteTodo is the resolver for the deleteTodo field. func (r *mutationResolver) DeleteTodo(ctx context.Context, id string) (*string, error) { return globals.DB.DeleteTodo(id) } // DeleteRole is the resolver for the deleteRole field. func (r *mutationResolver) DeleteRole(ctx context.Context, id string) (*string, error) { return globals.DB.DeleteRole(id) } // DeleteRefreshToken is the resolver for the deleteRefreshToken field. func (r *mutationResolver) DeleteRefreshToken(ctx context.Context, id string) (*string, error) { return globals.DB.RevokeRefreshToken(id) } // AddRole is the resolver for the addRole field. func (r *mutationResolver) AddRole(ctx context.Context, userID string, roleID string) ([]*model.Role, error) { if _, err := globals.DB.AddRole(userID, roleID); err != nil { return nil, err } return globals.DB.GetRolesFrom(userID) } // RemoveRole is the resolver for the removeRole field. func (r *mutationResolver) RemoveRole(ctx context.Context, userID string, roleID string) ([]*model.Role, error) { if _, err := globals.DB.RemoveRole(userID, roleID); err != nil { return nil, err } return globals.DB.GetRolesFrom(userID) } // Todos is the resolver for the todos field. func (r *queryResolver) Todos(ctx context.Context) ([]*model.Todo, error) { return globals.DB.GetAllTodos() } // Users is the resolver for the users field. func (r *queryResolver) Users(ctx context.Context) ([]*model.User, error) { return globals.DB.GetAllUsers() } // Roles is the resolver for the roles field. func (r *queryResolver) Roles(ctx context.Context) ([]*model.Role, error) { return globals.DB.GetAllRoles() } // RefreshTokens is the resolver for the refreshTokens field. func (r *queryResolver) RefreshTokens(ctx context.Context) ([]*model.RefreshToken, error) { return globals.DB.GetAllRefreshTokens() } // User is the resolver for the user field. func (r *queryResolver) User(ctx context.Context, id string) (*model.User, error) { return globals.DB.GetUser(&model.User{ID: id}) } // Todo is the resolver for the todo field. func (r *queryResolver) Todo(ctx context.Context, id string) (*model.Todo, error) { return globals.DB.GetTodo(&model.Todo{ID: id, User: &model.User{ID: auth.ForContext(ctx).UserId}}) } // Role is the resolver for the role field. func (r *queryResolver) Role(ctx context.Context, id string) (*model.Role, error) { return globals.DB.GetRole(&model.Role{ID: id}) } // RefreshToken is the resolver for the refreshToken field. func (r *queryResolver) RefreshToken(ctx context.Context, id string) (*model.RefreshToken, error) { return globals.DB.GetRefreshToken(&model.RefreshToken{ID: id}) } // User is the resolver for the user field. func (r *todoResolver) User(ctx context.Context, obj *model.Todo) (*model.User, error) { // TODO: implement dataloader return globals.DB.GetUser(obj.User) } // Todos is the resolver for the todos field. func (r *userResolver) Todos(ctx context.Context, obj *model.User) ([]*model.Todo, error) { return globals.DB.GetTodosFrom(obj) } // Roles is the resolver for the roles field. func (r *userResolver) Roles(ctx context.Context, obj *model.User) ([]*model.Role, error) { return globals.DB.GetRolesFrom(obj.ID) } // Mutation returns MutationResolver implementation. func (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} } // Query returns QueryResolver implementation. func (r *Resolver) Query() QueryResolver { return &queryResolver{r} } // Todo returns TodoResolver implementation. func (r *Resolver) Todo() TodoResolver { return &todoResolver{r} } // User returns UserResolver implementation. func (r *Resolver) User() UserResolver { return &userResolver{r} } type mutationResolver struct{ *Resolver } type queryResolver struct{ *Resolver } type todoResolver struct{ *Resolver } type userResolver struct{ *Resolver }