diff --git a/cmd/contacts.go b/cmd/contacts.go index 4245141..82c765b 100644 --- a/cmd/contacts.go +++ b/cmd/contacts.go @@ -104,10 +104,6 @@ var contactsFindCmd = &cobra.Command{ email, _ := cmd.Flags().GetString("email") userID, _ := cmd.Flags().GetString("user-id") - if (email == "") == (userID == "") { - return fmt.Errorf("exactly one of --email or --user-id is required") - } - cfg, err := loadConfig() if err != nil { return err @@ -221,10 +217,6 @@ var contactsUpdateCmd = &cobra.Command{ email, _ := cmd.Flags().GetString("email") userID, _ := cmd.Flags().GetString("user-id") - if email == "" && userID == "" { - return fmt.Errorf("at least one of --email or --user-id is required") - } - cfg, err := loadConfig() if err != nil { return err @@ -269,10 +261,6 @@ var contactsDeleteCmd = &cobra.Command{ email, _ := cmd.Flags().GetString("email") userID, _ := cmd.Flags().GetString("user-id") - if (email == "") == (userID == "") { - return fmt.Errorf("exactly one of --email or --user-id is required") - } - cfg, err := loadConfig() if err != nil { return err @@ -323,6 +311,8 @@ func formatCustomValue(v any) string { func init() { contactsFindCmd.Flags().StringP("email", "e", "", "Contact email address") contactsFindCmd.Flags().StringP("user-id", "u", "", "Contact user ID") + contactsFindCmd.MarkFlagsOneRequired("email", "user-id") + contactsFindCmd.MarkFlagsMutuallyExclusive("email", "user-id") contactsCmd.AddCommand(contactsFindCmd) contactsCreateCmd.Flags().StringP("email", "e", "", "Contact email address") @@ -335,10 +325,13 @@ func init() { contactsUpdateCmd.Flags().StringP("email", "e", "", "Contact email address") contactsUpdateCmd.Flags().StringP("user-id", "u", "", "User ID") addContactFieldFlags(contactsUpdateCmd) + contactsUpdateCmd.MarkFlagsOneRequired("email", "user-id") contactsCmd.AddCommand(contactsUpdateCmd) contactsDeleteCmd.Flags().StringP("email", "e", "", "Contact email address") contactsDeleteCmd.Flags().StringP("user-id", "u", "", "Contact user ID") + contactsDeleteCmd.MarkFlagsOneRequired("email", "user-id") + contactsDeleteCmd.MarkFlagsMutuallyExclusive("email", "user-id") contactsCmd.AddCommand(contactsDeleteCmd) rootCmd.AddCommand(contactsCmd) diff --git a/cmd/contacts_suppression.go b/cmd/contacts_suppression.go index ba8046a..9d9230f 100644 --- a/cmd/contacts_suppression.go +++ b/cmd/contacts_suppression.go @@ -26,10 +26,6 @@ var contactsSuppressionCheckCmd = &cobra.Command{ email, _ := cmd.Flags().GetString("email") userID, _ := cmd.Flags().GetString("user-id") - if (email == "") == (userID == "") { - return fmt.Errorf("exactly one of --email or --user-id is required") - } - cfg, err := loadConfig() if err != nil { return err @@ -68,10 +64,6 @@ var contactsSuppressionRemoveCmd = &cobra.Command{ email, _ := cmd.Flags().GetString("email") userID, _ := cmd.Flags().GetString("user-id") - if (email == "") == (userID == "") { - return fmt.Errorf("exactly one of --email or --user-id is required") - } - cfg, err := loadConfig() if err != nil { return err @@ -95,10 +87,14 @@ var contactsSuppressionRemoveCmd = &cobra.Command{ func init() { contactsSuppressionCheckCmd.Flags().StringP("email", "e", "", "Contact email address") contactsSuppressionCheckCmd.Flags().StringP("user-id", "u", "", "Contact user ID") + contactsSuppressionCheckCmd.MarkFlagsOneRequired("email", "user-id") + contactsSuppressionCheckCmd.MarkFlagsMutuallyExclusive("email", "user-id") contactsSuppressionCmd.AddCommand(contactsSuppressionCheckCmd) contactsSuppressionRemoveCmd.Flags().StringP("email", "e", "", "Contact email address") contactsSuppressionRemoveCmd.Flags().StringP("user-id", "u", "", "Contact user ID") + contactsSuppressionRemoveCmd.MarkFlagsOneRequired("email", "user-id") + contactsSuppressionRemoveCmd.MarkFlagsMutuallyExclusive("email", "user-id") contactsSuppressionCmd.AddCommand(contactsSuppressionRemoveCmd) contactsCmd.AddCommand(contactsSuppressionCmd) diff --git a/cmd/events.go b/cmd/events.go index 2c71ed0..a62d4ab 100644 --- a/cmd/events.go +++ b/cmd/events.go @@ -58,9 +58,6 @@ func eventsSendRunE(cmd *cobra.Command, args []string) error { email, _ := cmd.Flags().GetString("email") userID, _ := cmd.Flags().GetString("user-id") - if email == "" && userID == "" { - return fmt.Errorf("at least one of --email or --user-id is required") - } eventName := args[0] idempotencyKey, _ := cmd.Flags().GetString("idempotency-key") @@ -123,6 +120,7 @@ func addEventsSendFlags(cmd *cobra.Command) { func init() { addEventsSendFlags(eventsSendCmd) + eventsSendCmd.MarkFlagsOneRequired("email", "user-id") eventsCmd.AddCommand(eventsSendCmd) rootCmd.AddCommand(eventsCmd) }