| 569 | } |
| 570 | |
| 571 | func deactivateCmd() *cobra.Command { |
| 572 | cmd := &cobra.Command{ |
| 573 | Use: "deactivate-user --user-id [user-id] --mark-messages-deleted [true|false]", |
| 574 | Short: "Deactivate a user", |
| 575 | Long: heredoc.Doc(` |
| 576 | Deactivated users cannot connect to Stream Chat or send/receive messages. |
| 577 | Deactivated users can be re-activated with the 'reactivate-user' command. |
| 578 | `), |
| 579 | Example: heredoc.Doc(` |
| 580 | # Deactivate the user 'joe' |
| 581 | $ stream-cli chat deactivate-user --user-id joe --mark-messages-deleted true |
| 582 | `), |
| 583 | RunE: func(cmd *cobra.Command, args []string) error { |
| 584 | c, err := config.GetConfig(cmd).GetClient(cmd) |
| 585 | if err != nil { |
| 586 | return err |
| 587 | } |
| 588 | |
| 589 | targetID, _ := cmd.Flags().GetString("user-id") |
| 590 | markDeleted, _ := cmd.Flags().GetBool("mark-messages-deleted") |
| 591 | |
| 592 | deactivateOpts := []stream.DeactivateUserOptions{} |
| 593 | if markDeleted { |
| 594 | deactivateOpts = append(deactivateOpts, stream.DeactivateUserWithMarkMessagesDeleted()) |
| 595 | } |
| 596 | |
| 597 | _, err = c.DeactivateUser(cmd.Context(), targetID, deactivateOpts...) |
| 598 | if err != nil { |
| 599 | return err |
| 600 | } |
| 601 | |
| 602 | cmd.Println("Successfully deactivated user") |
| 603 | return nil |
| 604 | }, |
| 605 | } |
| 606 | |
| 607 | fl := cmd.Flags() |
| 608 | fl.StringP("user-id", "u", "", "[required] ID of the user to deactivate") |
| 609 | fl.Bool("mark-messages-deleted", false, "[optional] Mark all messages from the user as deleted") |
| 610 | _ = cmd.MarkFlagRequired("user-id") |
| 611 | |
| 612 | return cmd |
| 613 | } |
| 614 | |
| 615 | func muteCmd() *cobra.Command { |
| 616 | cmd := &cobra.Command{ |