Files

88 lines
3.4 KiB
Go

package helpers
import (
"fmt"
"github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/executor"
"github.com/spf13/cobra"
)
type openCompatHandler struct {
name string
buildFn func() *cobra.Command
}
func (h openCompatHandler) Name() string { return h.name }
func (h openCompatHandler) Command(_ executor.Runner) *cobra.Command {
return h.buildFn()
}
func init() {
RegisterPublic(func() Handler {
return openCompatHandler{name: "conference", buildFn: newConferenceCommand}
})
}
func newConferenceCommand() *cobra.Command {
runUnavailable := func(cmd *cobra.Command, args []string) error {
return fmt.Errorf("conference 视频会议能力当前不可用:该产品已从开源 CLI 下线\n hint: 直接发起/邀请/会中控制请在钉钉客户端操作;如需预约日程,请改用 dws calendar event create")
}
root := &cobra.Command{
Use: "conference",
Short: "视频会议",
Hidden: true,
Long: `视频会议产品已从当前开源 CLI 下线。
该命令路径仅作为旧版本兼容入口保留,不再调用后端工具。
直接发起会议、邀请入会、会中控制请在钉钉客户端操作;如需预约日程,请改用 dws calendar event create。`,
RunE: runUnavailable,
}
meetingCmd := &cobra.Command{Use: "meeting", Short: "会议管理(已下线)", RunE: groupRunE}
meetingCreateCmd := &cobra.Command{
Use: "reserve",
Aliases: []string{"create"},
Short: "预约会议(已下线)",
Long: `视频会议预约能力已下线;如需预约日程,请改用 dws calendar event create。`,
Example: ` dws conference meeting reserve --title "产品评审会" \
--start 2026-03-11T14:00:00+08:00 --end 2026-03-11T15:00:00+08:00`,
RunE: runUnavailable,
}
meetingCreateCmd.Flags().String("title", "", "会议标题 (必填)")
meetingCreateCmd.Flags().String("start", "", "开始时间 ISO-8601 格式,如 2026-03-11T14:00:00+08:00 (必填)")
meetingCreateCmd.Flags().String("end", "", "结束时间 ISO-8601 格式,如 2026-03-11T15:00:00+08:00 (必填)")
meetingCmd.AddCommand(meetingCreateCmd)
root.AddCommand(meetingCmd)
// member 子命令组 — 成员管理
memberCmd := &cobra.Command{Use: "member", Short: "成员管理(已下线)", RunE: groupRunE}
memberInviteCmd := &cobra.Command{
Use: "invite",
Short: "邀请指定人入会(已下线)",
Long: `视频会议邀请入会能力已下线;请在钉钉客户端操作。`,
Example: ` dws conference member invite --conference-id "xxx" \
--nicks "张三,李四" --open-dingtalk-ids "id1,id2"`,
RunE: runUnavailable,
}
memberInviteCmd.Flags().String("conference-id", "", "会议ID (必填)")
memberInviteCmd.Flags().String("meeting-id", "", "会议ID别名")
memberInviteCmd.Flags().String("nicks", "", "被邀请人昵称,逗号分隔 (必填)")
memberInviteCmd.Flags().String("nick", "", "被邀请人昵称别名")
memberInviteCmd.Flags().String("nicknames", "", "被邀请人昵称别名")
memberInviteCmd.Flags().String("open-dingtalk-ids", "", "被邀请人 openDingTalkId,逗号分隔,通过 contact/aisearch 获取 (必填)")
memberInviteCmd.Flags().String("ids", "", "openDingTalkId 别名")
memberInviteCmd.Flags().MarkHidden("meeting-id")
memberInviteCmd.Flags().MarkHidden("nick")
memberInviteCmd.Flags().MarkHidden("nicknames")
memberInviteCmd.Flags().MarkHidden("ids")
memberCmd.AddCommand(memberInviteCmd)
root.AddCommand(memberCmd)
return root
}