feat: add tenant commands
This commit is contained in:
73
backend/common/service/tenants/tenants.go
Normal file
73
backend/common/service/tenants/tenants.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package tenants
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"backend/modules/commands/tenant"
|
||||
"backend/modules/medias"
|
||||
"backend/modules/users"
|
||||
"backend/providers/app"
|
||||
"backend/providers/postgres"
|
||||
"backend/providers/storage"
|
||||
|
||||
"git.ipao.vip/rogeecn/atom"
|
||||
"git.ipao.vip/rogeecn/atom/container"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
func defaultProviders(providers ...container.ProviderContainer) container.Providers {
|
||||
return append(container.Providers{
|
||||
app.DefaultProvider(),
|
||||
storage.DefaultProvider(),
|
||||
postgres.DefaultProvider(),
|
||||
}, providers...)
|
||||
}
|
||||
|
||||
func Command() atom.Option {
|
||||
return atom.Command(
|
||||
atom.Name("tenants"),
|
||||
atom.Short("run tenants"),
|
||||
atom.Command(
|
||||
atom.Name("create"),
|
||||
atom.Providers(defaultProviders().With(
|
||||
medias.Provide,
|
||||
users.Provide,
|
||||
tenant.Provide,
|
||||
)),
|
||||
atom.Arguments(func(cmd *cobra.Command) {
|
||||
cmd.Flags().String("slug", "", "slug")
|
||||
}),
|
||||
atom.RunE(func(cmd *cobra.Command, args []string) error {
|
||||
return container.Container.Invoke(func(t *tenant.Create) error {
|
||||
slug := cmd.Flag("slug").Value.String()
|
||||
return t.RunE(args[0], slug)
|
||||
})
|
||||
}),
|
||||
),
|
||||
atom.Command(
|
||||
atom.Name("expire"),
|
||||
atom.Long("expire [slug] [2024-01-01]"),
|
||||
atom.Providers(defaultProviders().With(
|
||||
medias.Provide,
|
||||
users.Provide,
|
||||
tenant.Provide,
|
||||
)),
|
||||
atom.Arguments(func(cmd *cobra.Command) {
|
||||
}),
|
||||
atom.RunE(func(cmd *cobra.Command, args []string) error {
|
||||
return container.Container.Invoke(func(t *tenant.Expire) error {
|
||||
slug := args[0]
|
||||
expireStr := args[1] // format 2024-01-01
|
||||
// parse expire string as time.Time
|
||||
expire, err := time.Parse("2006-01-02", expireStr)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "parse expire time failed: %s", expireStr)
|
||||
}
|
||||
|
||||
return t.RunE(slug, expire)
|
||||
})
|
||||
}),
|
||||
),
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user