parent
abeed75c9a
commit
a8081d46c4
@ -1,20 +0,0 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/cortezaproject/corteza/server/pkg/cli"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
type (
|
||||
serviceInitializer interface {
|
||||
InitServices(ctx context.Context) error
|
||||
}
|
||||
)
|
||||
|
||||
func commandPreRunInitService(app serviceInitializer) func(*cobra.Command, []string) error {
|
||||
return func(_ *cobra.Command, _ []string) error {
|
||||
return app.InitServices(cli.Context())
|
||||
}
|
||||
}
|
||||
@ -2,9 +2,8 @@ package commands
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/cortezaproject/corteza/server/compose/types"
|
||||
cService "github.com/cortezaproject/corteza/server/compose/service"
|
||||
cTypes "github.com/cortezaproject/corteza/server/compose/types"
|
||||
"github.com/cortezaproject/corteza/server/pkg/cli"
|
||||
"github.com/cortezaproject/corteza/server/pkg/dal"
|
||||
"github.com/cortezaproject/corteza/server/pkg/seeder"
|
||||
@ -12,72 +11,97 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
type (
|
||||
serviceInitializer interface {
|
||||
InitServices(ctx context.Context) error
|
||||
}
|
||||
|
||||
seederService interface {
|
||||
CreateUser(seeder.Params) ([]uint64, error)
|
||||
CreateRecord(seeder.RecordParams) ([]uint64, error)
|
||||
DeleteAllUser() error
|
||||
DeleteAllRecord(*cTypes.Module) error
|
||||
DeleteAll(*seeder.RecordParams) (err error)
|
||||
}
|
||||
)
|
||||
|
||||
var (
|
||||
svc seederService
|
||||
)
|
||||
|
||||
func Seeder(ctx context.Context, app serviceInitializer) *cobra.Command {
|
||||
cmd := &cobra.Command{
|
||||
Use: "seeder",
|
||||
Short: "Seeds fake data",
|
||||
Long: "Generates fake data for user and records",
|
||||
|
||||
PersistentPreRunE: func(cmd *cobra.Command, args []string) (err error) {
|
||||
if err = app.InitServices(cli.Context()); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = cService.Activate(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
svc = seeder.Seeder(ctx, seeder.DefaultStore, dal.Service(), seeder.Faker())
|
||||
return nil
|
||||
},
|
||||
}
|
||||
|
||||
// @todo improve cli command with sub-command
|
||||
cmd.AddCommand(
|
||||
users(ctx, app),
|
||||
records(ctx, app),
|
||||
deleteAll(ctx, app),
|
||||
cmdUsers(),
|
||||
cmdRecords(),
|
||||
cmdDelete(),
|
||||
)
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
func users(ctx context.Context, app serviceInitializer) (cmd *cobra.Command) {
|
||||
func cmdUsers() (cmd *cobra.Command) {
|
||||
var (
|
||||
limit int
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "users [action]",
|
||||
Short: "Seed users",
|
||||
ValidArgs: []string{"create", "delete"},
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
PreRunE: commandPreRunInitService(app),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
var (
|
||||
seed = seeder.Seeder(ctx, seeder.DefaultStore, dal.Service(), seeder.Faker())
|
||||
err error
|
||||
)
|
||||
|
||||
action := args[0]
|
||||
switch action {
|
||||
case "create":
|
||||
userIDs, err := seed.CreateUser(seeder.Params{Limit: limit})
|
||||
cli.HandleError(err)
|
||||
|
||||
fmt.Fprintf(
|
||||
cmd.OutOrStdout(),
|
||||
" Created %d users\n",
|
||||
len(userIDs),
|
||||
)
|
||||
|
||||
break
|
||||
case "delete":
|
||||
err = seed.DeleteAllUser()
|
||||
cli.HandleError(err)
|
||||
|
||||
fmt.Fprintf(
|
||||
cmd.OutOrStdout(),
|
||||
" Deleted all users\n",
|
||||
)
|
||||
|
||||
break
|
||||
}
|
||||
},
|
||||
Use: "users",
|
||||
Short: "Seed users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
}
|
||||
|
||||
cmd.Flags().IntVarP(&limit, "limit", "l", 1, "How many users to be created")
|
||||
cmd.AddCommand(
|
||||
&cobra.Command{
|
||||
Use: "create",
|
||||
Short: "Create users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
userIDs, err := svc.CreateUser(seeder.Params{Limit: limit})
|
||||
cli.HandleError(err)
|
||||
|
||||
cmd.Printf(" Created %d users", len(userIDs))
|
||||
cmd.Println()
|
||||
},
|
||||
},
|
||||
&cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "Delete users",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
cli.HandleError(svc.DeleteAllUser())
|
||||
|
||||
cmd.Println(" Deleted all users")
|
||||
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
cmdCreate := cmd.Commands()[0]
|
||||
cmdCreate.Flags().IntVarP(&limit, "limit", "l", 1, "How many users to be created")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
func records(ctx context.Context, app serviceInitializer) (cmd *cobra.Command) {
|
||||
func cmdRecords() (cmd *cobra.Command) {
|
||||
var (
|
||||
namespaceID int
|
||||
moduleID int
|
||||
@ -85,56 +109,53 @@ func records(ctx context.Context, app serviceInitializer) (cmd *cobra.Command) {
|
||||
params = seeder.RecordParams{}
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "records [action]",
|
||||
Use: "records",
|
||||
Short: "Seed records",
|
||||
Args: cobra.MinimumNArgs(1),
|
||||
ValidArgs: []string{"create", "delete"},
|
||||
PreRunE: commandPreRunInitService(app),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
var (
|
||||
seed = seeder.Seeder(ctx, seeder.DefaultStore, dal.Service(), seeder.Faker())
|
||||
err error
|
||||
)
|
||||
|
||||
params.NamespaceID = uint64(namespaceID)
|
||||
params.ModuleID = uint64(moduleID)
|
||||
|
||||
switch args[0] {
|
||||
case "create":
|
||||
recordIDs, err := seed.CreateRecord(params)
|
||||
cli.HandleError(err)
|
||||
|
||||
fmt.Fprintf(
|
||||
cmd.OutOrStdout(),
|
||||
" Created %d records\n",
|
||||
len(recordIDs),
|
||||
)
|
||||
break
|
||||
case "delete":
|
||||
err = seed.DeleteAllRecord(&types.Module{})
|
||||
cli.HandleError(err)
|
||||
|
||||
fmt.Fprintf(
|
||||
cmd.OutOrStdout(),
|
||||
" Deleted all records\n",
|
||||
)
|
||||
|
||||
break
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
cmd.Flags().IntVarP(¶ms.Limit, "limit", "l", 1, "How many users to be created")
|
||||
cmd.AddCommand(
|
||||
&cobra.Command{
|
||||
Use: "create",
|
||||
Short: "Create records",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
params.NamespaceID = uint64(namespaceID)
|
||||
params.ModuleID = uint64(moduleID)
|
||||
|
||||
userIDs, err := svc.CreateRecord(params)
|
||||
cli.HandleError(err)
|
||||
|
||||
cmd.Printf(" Created %d records", len(userIDs))
|
||||
cmd.Println()
|
||||
},
|
||||
},
|
||||
&cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "Delete records",
|
||||
Args: cobra.MaximumNArgs(0),
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
cli.HandleError(svc.DeleteAllRecord(&cTypes.Module{}))
|
||||
|
||||
cmd.Println(" Deleted all records")
|
||||
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
cmdCreate := cmd.Commands()[0]
|
||||
cmdCreate.Flags().IntVarP(¶ms.Limit, "limit", "l", 1, "How many records to be created")
|
||||
// @todo: Can be improved by adding one flag which accept string(handle) or id(int) for namespace and module
|
||||
cmd.Flags().IntVarP(&namespaceID, "namespace-id", "n", 0, "namespace id for recode creation")
|
||||
cmd.Flags().StringVarP(¶ms.NamespaceHandle, "namespace-handle", "a", "", "namespace handle for recode creation")
|
||||
cmd.Flags().IntVarP(&moduleID, "module-id", "m", 0, "module id for recode creation")
|
||||
cmd.Flags().StringVarP(¶ms.ModuleHandle, "module-handle", "b", "", "module handle for recode creation")
|
||||
cmdCreate.Flags().IntVarP(&namespaceID, "namespace-id", "n", 0, "namespace id for recode creation")
|
||||
cmdCreate.Flags().StringVarP(¶ms.NamespaceHandle, "namespace-handle", "a", "", "namespace handle for recode creation")
|
||||
cmdCreate.Flags().IntVarP(&moduleID, "module-id", "m", 0, "module id for recode creation")
|
||||
cmdCreate.Flags().StringVarP(¶ms.ModuleHandle, "module-handle", "b", "", "module handle for recode creation")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
func deleteAll(ctx context.Context, app serviceInitializer) (cmd *cobra.Command) {
|
||||
func cmdDelete() (cmd *cobra.Command) {
|
||||
var (
|
||||
namespaceID int
|
||||
moduleID int
|
||||
@ -142,25 +163,15 @@ func deleteAll(ctx context.Context, app serviceInitializer) (cmd *cobra.Command)
|
||||
params = seeder.RecordParams{}
|
||||
)
|
||||
cmd = &cobra.Command{
|
||||
Use: "delete",
|
||||
Short: "delete all seeded data",
|
||||
PreRunE: commandPreRunInitService(app),
|
||||
Use: "delete",
|
||||
Short: "delete all seeded data",
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
var (
|
||||
seed = seeder.Seeder(ctx, seeder.DefaultStore, dal.Service(), seeder.Faker())
|
||||
err error
|
||||
)
|
||||
|
||||
params.NamespaceID = uint64(namespaceID)
|
||||
params.ModuleID = uint64(moduleID)
|
||||
|
||||
err = seed.DeleteAll(¶ms)
|
||||
cli.HandleError(err)
|
||||
cli.HandleError(svc.DeleteAll(¶ms))
|
||||
|
||||
fmt.Fprintf(
|
||||
cmd.OutOrStdout(),
|
||||
" Deleted all fake data\n",
|
||||
)
|
||||
cmd.Println(" Deleted all fake data")
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user