NewCollectionCreateCmd returns a command for creating a collection.
()
| 82 | |
| 83 | // NewCollectionCreateCmd returns a command for creating a collection. |
| 84 | func NewCollectionCreateCmd() *cobra.Command { |
| 85 | cmd := &cobra.Command{ |
| 86 | Use: "create [ioc]...", |
| 87 | Short: "Create a collection.", |
| 88 | Long: createCollectionCmdHelp, |
| 89 | Example: createCollectionExample, |
| 90 | Args: cobra.MinimumNArgs(1), |
| 91 | |
| 92 | RunE: func(cmd *cobra.Command, args []string) error { |
| 93 | c, err := NewAPIClient() |
| 94 | if err != nil { |
| 95 | return err |
| 96 | } |
| 97 | p, err := NewPrinter(cmd) |
| 98 | if err != nil { |
| 99 | return err |
| 100 | } |
| 101 | reader := utils.StringReaderFromCmdArgs(args) |
| 102 | |
| 103 | collection := vt.NewObject("collection") |
| 104 | collection.SetString("name", viper.GetString("name")) |
| 105 | collection.SetString("description", viper.GetString("description")) |
| 106 | collection.SetData("raw_items", rawFromReader(reader)) |
| 107 | |
| 108 | if err := c.PostObject(vt.URL("collections"), collection); err != nil { |
| 109 | return err |
| 110 | } |
| 111 | |
| 112 | if viper.GetBool("identifiers-only") { |
| 113 | fmt.Printf("%s\n", collection.ID()) |
| 114 | } else { |
| 115 | if err := p.PrintObject(collection); err != nil { |
| 116 | return err |
| 117 | } |
| 118 | } |
| 119 | |
| 120 | return nil |
| 121 | }, |
| 122 | } |
| 123 | |
| 124 | cmd.Flags().StringP( |
| 125 | "name", "n", "", |
| 126 | "Collection's name (required)") |
| 127 | cmd.Flags().StringP( |
| 128 | "description", "d", "", |
| 129 | "Collection's description (required)") |
| 130 | _ = cmd.MarkFlagRequired("name") |
| 131 | _ = cmd.MarkFlagRequired("description") |
| 132 | addIncludeExcludeFlags(cmd.Flags()) |
| 133 | addIDOnlyFlag(cmd.Flags()) |
| 134 | |
| 135 | return cmd |
| 136 | } |
| 137 | |
| 138 | func patchCollection(id, attr string, value interface{}) error { |
| 139 | client, err := NewAPIClient() |
no test coverage detected