3
0

Refactor "users" CLI command

This commit is contained in:
Denis Arh 2019-04-04 00:00:58 +02:00
parent 32e2069c45
commit 5bdee34903
2 changed files with 44 additions and 45 deletions

View File

@ -9,6 +9,7 @@ import (
"github.com/crusttech/crust/internal/settings"
"github.com/crusttech/crust/system/internal/repository"
"github.com/crusttech/crust/system/internal/service"
)
func Init(ctx context.Context) {
@ -22,24 +23,7 @@ func Init(ctx context.Context) {
ExternalAuth(ctx, rootCmd, settingsService)
// @todo move cmd setup lines below to similar structure as Settings()
// User management commands.
var cmdUsers = &cobra.Command{
Use: "users",
Short: "User management",
}
rootCmd.AddCommand(cmdUsers)
// List users.
var cmdUsersList = &cobra.Command{
Use: "list",
Short: "List users",
Run: func(cmd *cobra.Command, args []string) {
UsersList()
},
}
cmdUsers.AddCommand(cmdUsersList)
users(ctx, rootCmd, service.DefaultUser)
roles(ctx, rootCmd, db)

View File

@ -5,38 +5,53 @@ import (
"fmt"
"os"
"github.com/crusttech/crust/system/service"
"github.com/spf13/cobra"
"github.com/crusttech/crust/system/internal/service"
"github.com/crusttech/crust/system/types"
)
func UsersList() {
uf := &types.UserFilter{
OrderBy: "updated_at",
func users(ctx context.Context, rootCmd *cobra.Command, userService service.UserService) {
// User management commands.
var cmdUsers = &cobra.Command{
Use: "users",
Short: "User management",
}
rootCmd.AddCommand(cmdUsers)
users, err := service.DefaultUser.With(context.Background()).Find(uf)
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
// List users.
var cmdUsersList = &cobra.Command{
Use: "list",
Short: "List users",
Run: func(cmd *cobra.Command, args []string) {
uf := &types.UserFilter{
OrderBy: "updated_at",
}
users, err := userService.With(ctx).Find(uf)
if err != nil {
fmt.Printf("Error: %v\n", err)
os.Exit(1)
}
fmt.Println(" Created Updated Email")
for _, u := range users {
upd := "---- -- --"
if u.UpdatedAt != nil {
upd = u.UpdatedAt.Format("2006-01-02")
}
fmt.Printf(
"%20d %s %s %-100s %s\n",
u.ID,
u.CreatedAt.Format("2006-01-02"),
upd,
u.Email,
u.Name)
}
},
}
cmdUsers.AddCommand(cmdUsersList)
fmt.Println("ID Updated Deleted [email / name / username]")
for _, u := range users {
upd, del := "---- -- --", "---- -- --"
if u.UpdatedAt != nil {
upd = u.UpdatedAt.Format("2006-01-02")
}
if u.DeletedAt != nil {
upd = u.DeletedAt.Format("2006-01-02")
}
fmt.Printf(
"%20d %s %s %s\n",
u.ID,
upd,
del,
u.Email+" / "+u.Name+" / "+u.Username)
}
}