Files
chat-deploy/pkg/common/cmd/admin_api.go
kim.dev.6789 b7f8db7d08 复制项目
2026-01-14 22:35:45 +08:00

50 lines
1.4 KiB
Go

package cmd
import (
"context"
"git.imall.cloud/openim/chat/internal/api/admin"
"git.imall.cloud/openim/chat/pkg/common/config"
"github.com/openimsdk/tools/system/program"
"github.com/spf13/cobra"
)
type AdminApiCmd struct {
*RootCmd
ctx context.Context
configMap map[string]any
apiConfig admin.Config
}
func NewAdminApiCmd() *AdminApiCmd {
ret := AdminApiCmd{apiConfig: admin.Config{
AllConfig: &config.AllConfig{},
}}
ret.configMap = map[string]any{
config.DiscoveryConfigFileName: &ret.apiConfig.Discovery,
config.LogConfigFileName: &ret.apiConfig.Log,
config.MongodbConfigFileName: &ret.apiConfig.Mongo,
config.ChatAPIAdminCfgFileName: &ret.apiConfig.AdminAPI,
config.ChatAPIChatCfgFileName: &ret.apiConfig.ChatAPI,
config.ChatRPCAdminCfgFileName: &ret.apiConfig.Admin,
config.ChatRPCChatCfgFileName: &ret.apiConfig.Chat,
config.RedisConfigFileName: &ret.apiConfig.Redis,
config.ShareFileName: &ret.apiConfig.Share,
}
ret.RootCmd = NewRootCmd(program.GetProcessName(), WithConfigMap(ret.configMap))
ret.ctx = context.WithValue(context.Background(), "version", config.Version)
ret.Command.RunE = func(cmd *cobra.Command, args []string) error {
ret.apiConfig.ConfigPath = ret.configPath
return ret.runE()
}
return &ret
}
func (a *AdminApiCmd) Exec() error {
return a.Execute()
}
func (a *AdminApiCmd) runE() error {
return admin.Start(a.ctx, a.Index(), &a.apiConfig)
}