(deps commandDeps)
| 2079 | } |
| 2080 | |
| 2081 | func newTaskPromoteCommand(deps commandDeps) *cobra.Command { |
| 2082 | var input taskPromoteInput |
| 2083 | cmd := &cobra.Command{ |
| 2084 | Use: networkPromoteCommandUse, |
| 2085 | Short: "Promote one network thread message into a task", |
| 2086 | Args: cobra.NoArgs, |
| 2087 | RunE: func(cmd *cobra.Command, _ []string) error { |
| 2088 | metadata, err := parseOptionalNetworkMetadata(cmd, input.MetadataRaw) |
| 2089 | if err != nil { |
| 2090 | return err |
| 2091 | } |
| 2092 | client, err := clientFromDeps(deps) |
| 2093 | if err != nil { |
| 2094 | return err |
| 2095 | } |
| 2096 | workspace, err := resolveCLIWorkspaceRouteRef( |
| 2097 | cmd.Context(), |
| 2098 | deps, |
| 2099 | client, |
| 2100 | strings.TrimSpace(input.WorkspaceRef), |
| 2101 | ) |
| 2102 | if err != nil { |
| 2103 | return err |
| 2104 | } |
| 2105 | promoted, err := client.PromoteNetworkThreadTask( |
| 2106 | cmd.Context(), |
| 2107 | workspace, |
| 2108 | strings.TrimSpace(input.Channel), |
| 2109 | strings.TrimSpace(input.ThreadID), |
| 2110 | PromoteNetworkThreadTaskRequest{ |
| 2111 | OriginMessageID: strings.TrimSpace(input.OriginMessageID), |
| 2112 | Title: strings.TrimSpace(input.Title), |
| 2113 | Description: strings.TrimSpace(input.Description), |
| 2114 | Priority: strings.TrimSpace(input.Priority), |
| 2115 | Metadata: metadata, |
| 2116 | }, |
| 2117 | ) |
| 2118 | if err != nil { |
| 2119 | return err |
| 2120 | } |
| 2121 | return writeCommandOutput(cmd, networkThreadPromotionBundle(&promoted)) |
| 2122 | }, |
| 2123 | } |
| 2124 | cmd.Flags().StringVar(&input.WorkspaceRef, "workspace", "", "Workspace path, name, or ID") |
| 2125 | cmd.Flags().StringVar(&input.Channel, networkChannelKey, "", "Source network channel") |
| 2126 | cmd.Flags().StringVar(&input.ThreadID, networkSurfaceThread, "", "Source public thread id") |
| 2127 | cmd.Flags().StringVar(&input.OriginMessageID, "origin-message", "", "Origin message id to promote") |
| 2128 | cmd.Flags().StringVar(&input.Title, taskTitleKey, "", "Optional task title") |
| 2129 | cmd.Flags().StringVar(&input.Description, taskDescriptionKey, "", "Optional task description") |
| 2130 | cmd.Flags().StringVar(&input.Priority, "priority", "", "Optional task priority") |
| 2131 | cmd.Flags().StringVar(&input.MetadataRaw, "metadata", "", "Optional JSON metadata for the promoted task") |
| 2132 | mustMarkFlagRequired(cmd, "workspace") |
| 2133 | mustMarkFlagRequired(cmd, networkChannelKey) |
| 2134 | mustMarkFlagRequired(cmd, networkSurfaceThread) |
| 2135 | mustMarkFlagRequired(cmd, "origin-message") |
| 2136 | return cmd |
| 2137 | } |
| 2138 |
no test coverage detected