(cli *cli)
| 727 | } |
| 728 | |
| 729 | func redeliverManyEventStreamCmd(cli *cli) *cobra.Command { |
| 730 | var inputs struct { |
| 731 | StreamID string |
| 732 | EventType string |
| 733 | From string |
| 734 | To string |
| 735 | } |
| 736 | |
| 737 | cmd := &cobra.Command{ |
| 738 | Use: "redeliver-many [stream-id]", |
| 739 | Args: cobra.MaximumNArgs(1), |
| 740 | Short: "Bulk retry failed event deliveries using filters", |
| 741 | Long: "Retry multiple failed event deliveries for a given event stream. \n" + |
| 742 | "You can filter by event type and date range. \n" + |
| 743 | "All filters are combined using AND logic. \n" + |
| 744 | "If no filters are passed, all failed events are retried", |
| 745 | Example: ` auth0 event-streams redeliver-many |
| 746 | auth0 event-streams redeliver-many <stream-id> |
| 747 | auth0 event-streams redeliver-many <stream-id> --type=user.created,user.deleted --from=-2d`, |
| 748 | RunE: func(cmd *cobra.Command, args []string) error { |
| 749 | if len(args) >= 1 { |
| 750 | inputs.StreamID = args[0] |
| 751 | } |
| 752 | if inputs.StreamID == "" { |
| 753 | if err := eventStreamID.Pick(cmd, &inputs.StreamID, cli.eventStreamPickerOptions); err != nil { |
| 754 | return err |
| 755 | } |
| 756 | } |
| 757 | |
| 758 | var req management.BulkRedeliverRequest |
| 759 | |
| 760 | if inputs.EventType != "" { |
| 761 | types := strings.Split(inputs.EventType, ",") |
| 762 | req.EventTypes = &types |
| 763 | } |
| 764 | |
| 765 | if inputs.From != "" { |
| 766 | fromDate, err := parseFlexibleDate(inputs.From) |
| 767 | if err != nil { |
| 768 | return fmt.Errorf("invalid --from date: %w", err) |
| 769 | } |
| 770 | req.DateFrom = &fromDate |
| 771 | } |
| 772 | |
| 773 | if inputs.To != "" { |
| 774 | toDate, err := parseFlexibleDate(inputs.To) |
| 775 | if err != nil { |
| 776 | return fmt.Errorf("invalid --to date: %w", err) |
| 777 | } |
| 778 | req.DateTo = &toDate |
| 779 | } |
| 780 | |
| 781 | return ansi.Spinner("Bulk redelivering events...", func() error { |
| 782 | return cli.api.EventStream.RedeliverMany(cmd.Context(), inputs.StreamID, &req) |
| 783 | }) |
| 784 | }, |
| 785 | } |
| 786 |
no test coverage detected