From 06deaf26733b4153bf4ee43c38e07f6219c4c76b Mon Sep 17 00:00:00 2001 From: louis Date: Mon, 1 Jan 2024 12:09:17 +0100 Subject: [PATCH] Add Command for deleting a User --- cmd/user.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/cmd/user.go b/cmd/user.go index 89016e62..f4ffe25b 100644 --- a/cmd/user.go +++ b/cmd/user.go @@ -50,12 +50,35 @@ var ( fmt.Printf("Password: %s\n", password) }, } + + userDeleteCmd = &cobra.Command{ + Use: "delete", + Short: "Delete a user", + Run: func(cmd *cobra.Command, args []string) { + if email == "" { + log.Fatal("email is required") + } + + user, err := store.FindUserByEmail(email) + if err != nil { + log.WithError(err).Fatal("could not find user") + } + + if err := store.DeleteUser(user); err != nil { + log.WithError(err).Fatal("could not delete user") + } + + fmt.Printf("Deleted user %s\n", email) + }, + } ) func init() { userCmd.AddCommand(userCreateCmd) - userCreateCmd.Flags().StringVar(&email, "email", "", "email address of the user") userCreateCmd.Flags().StringVar(&password, "password", "", "password of the user") userCreateCmd.Flags().BoolVar(&isSuperAdmin, "super-admin", false, "make the user a super admin") + + userCmd.AddCommand(userDeleteCmd) + userDeleteCmd.Flags().StringVar(&email, "email", "", "email address of the user") }