68 lines
1.6 KiB
Go
68 lines
1.6 KiB
Go
package user
|
||
|
||
import (
|
||
"fmt"
|
||
"gitee_cli/config"
|
||
"gitee_cli/internal/api/enterprises"
|
||
"gitee_cli/internal/api/user"
|
||
"gitee_cli/utils"
|
||
"github.com/fatih/color"
|
||
"github.com/spf13/cobra"
|
||
)
|
||
|
||
var SearchCmd = &cobra.Command{
|
||
Use: "search",
|
||
Short: "Search for a user info, Usage: gitee user search {username}",
|
||
Args: cobra.ExactArgs(1),
|
||
Run: func(cmd *cobra.Command, args []string) {
|
||
if len(args) == 0 {
|
||
color.Red("请给定用户名!")
|
||
return
|
||
}
|
||
username := args[0]
|
||
isEntPath, _ := cmd.Flags().GetBool("ent")
|
||
if isEntPath {
|
||
entPath := config.Conf.DefaultEntPath
|
||
|
||
if entPath == "" {
|
||
color.Red("请使用 gitee config default_ent_path xxx 指定默认 path!")
|
||
return
|
||
}
|
||
|
||
enterprise, err := enterprises.Find(entPath)
|
||
|
||
if err != nil {
|
||
color.Red("企业未找到!")
|
||
return
|
||
}
|
||
|
||
var member user.Member
|
||
|
||
if member, err = user.FindMember(username, enterprise.Id); err == nil {
|
||
fmt.Printf("成员 ID:%s\n成员名称:%s\n用户名:%s\n", utils.Cyan(member.Id), utils.Cyan(member.Remark), utils.Blue(member.UserName))
|
||
} else {
|
||
color.Red("未查找到对应用户!")
|
||
return
|
||
}
|
||
} else {
|
||
user, err := user.FindUser(username)
|
||
|
||
if err != nil {
|
||
color.Red("查询用户失败!%v", err)
|
||
return
|
||
}
|
||
|
||
if user.Id == 0 {
|
||
color.Red("未查找到对应用户!")
|
||
return
|
||
}
|
||
fmt.Printf("用户 ID:%s\n用户名称:%s\n用户主页:%s\n", utils.Cyan(user.Id), utils.Cyan(user.Name), utils.Blue(user.HtmlUrl))
|
||
}
|
||
|
||
},
|
||
}
|
||
|
||
func init() {
|
||
SearchCmd.Flags().BoolP("ent", "e", false, "search member from current enterprise")
|
||
}
|