make it possible for multiple apps to be deleted

This commit is contained in:
Adora Laura Kalb 2023-06-22 13:10:15 +02:00
parent de5dad2d56
commit 923c718e28
Signed by: adoralaura
GPG key ID: 7A4552166FC8C056

View file

@ -4,11 +4,12 @@ Copyright © 2023 Laura Kalb <dev@lauka.net>
package cmd package cmd
import ( import (
"codeberg.org/lauralani/ovh-apikey-manager/app"
"log" "log"
"os" "os"
"strconv" "strconv"
"codeberg.org/lauralani/ovh-apikey-manager/app"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
@ -16,27 +17,44 @@ import (
var deleteCmd = &cobra.Command{ var deleteCmd = &cobra.Command{
Use: "delete", Use: "delete",
Short: "Delete API keys", Short: "Delete API keys",
Long: `Delete a single API key by ID`, Long: `Delete one or multiple api keys by ID, separated by spaces`,
Args: cobra.ExactArgs(1), Args: cobra.MinimumNArgs(1),
Example: "ovh-apikey-manager delete 111111 22222 33333",
Run: runDelete,
}
Run: func(cmd *cobra.Command, args []string) { func runDelete(cmd *cobra.Command, args []string) {
client := app.GetOVHClient() ids, err := getIntsfromDeleteArgs(args)
id := args[0]
_, err := strconv.Atoi(id)
if err != nil { if err != nil {
log.Printf("Argument must be a valid number\n") log.Printf("Arguments must be valid numbers!\n")
os.Exit(1) os.Exit(1)
} }
err = client.Delete("/me/api/application/"+id, nil) client := app.GetOVHClient()
for _, id := range ids {
str := strconv.Itoa(id)
err = client.Delete("/me/api/application/"+str, nil)
if err != nil { if err != nil {
log.Printf("Error deleting application: %q\n", err) log.Printf("Error deleting application: %q\n", err)
os.Exit(1) os.Exit(1)
} }
log.Printf("Deleted Application %v\n", id)
}
}
log.Printf("Application with id %v was successfully deleted.\n", id) func getIntsfromDeleteArgs(args []string) ([]int, error) {
}, var ints []int
for _, arg := range args {
num, err := strconv.Atoi(arg)
if err == nil {
ints = append(ints, num)
} else {
var empty []int
return empty, err
}
}
return ints, nil
} }
func init() { func init() {