From bd4dcf2c6e2d5419fbbe0e50f58e6d6b9dca2671 Mon Sep 17 00:00:00 2001 From: Nate Meyer <672246+notnmeyer@users.noreply.github.com> Date: Fri, 8 May 2026 11:24:37 -0700 Subject: [PATCH 1/2] contacts --- cmd/contacts.go | 17 +++++------------ cmd/contacts_suppression.go | 12 ++++-------- 2 files changed, 9 insertions(+), 20 deletions(-) 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) From 42b410f74a9ed3cbcf0c9ece303762f81c0e87b4 Mon Sep 17 00:00:00 2001 From: Nate Meyer <672246+notnmeyer@users.noreply.github.com> Date: Fri, 8 May 2026 11:24:43 -0700 Subject: [PATCH 2/2] events --- cmd/events.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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) }