[feature] Add list command to admin account (#1648)

* [feature] Add list command to admin account

Relates to: #388

* Print booleans as yes/no too
This commit is contained in:
Daenney 2023-03-27 16:02:26 +02:00 committed by GitHub
commit 7d09863393
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 81 additions and 0 deletions

View file

@ -122,6 +122,20 @@ func (u *userDB) GetUserByConfirmationToken(ctx context.Context, confirmationTok
}, confirmationToken)
}
func (u *userDB) GetAllUsers(ctx context.Context) ([]*gtsmodel.User, db.Error) {
var users []*gtsmodel.User
q := u.conn.
NewSelect().
Model(&users).
Relation("Account")
if err := q.Scan(ctx); err != nil {
return nil, u.conn.ProcessError(err)
}
return users, nil
}
func (u *userDB) PutUser(ctx context.Context, user *gtsmodel.User) db.Error {
return u.state.Caches.GTS.User().Store(user, func() error {
_, err := u.conn.

View file

@ -29,6 +29,12 @@ type UserTestSuite struct {
BunDBStandardTestSuite
}
func (suite *UserTestSuite) TestGetAllUsers() {
users, err := suite.db.GetAllUsers(context.Background())
suite.NoError(err)
suite.Len(users, len(suite.testUsers))
}
func (suite *UserTestSuite) TestGetUser() {
user, err := suite.db.GetUserByID(context.Background(), suite.testUsers["local_account_1"].ID)
suite.NoError(err)

View file

@ -25,6 +25,8 @@ import (
// User contains functions related to user getting/setting/creation.
type User interface {
// GetAllUsers returns all local user accounts, or an error if something goes wrong.
GetAllUsers(ctx context.Context) ([]*gtsmodel.User, Error)
// GetUserByID returns one user with the given ID, or an error if something goes wrong.
GetUserByID(ctx context.Context, id string) (*gtsmodel.User, Error)
// GetUserByAccountID returns one user by its account ID, or an error if something goes wrong.