From 8646d0bd1ec43c00bf4e16230f6b8ba37469691c Mon Sep 17 00:00:00 2001 From: "kayos@tcp.direct" Date: Wed, 12 Oct 2022 05:55:46 -0700 Subject: [PATCH] Fix delete targets for groups+lights --- internal/cli/commands.go | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/internal/cli/commands.go b/internal/cli/commands.go index a9dec23..0ff6ee1 100644 --- a/internal/cli/commands.go +++ b/internal/cli/commands.go @@ -170,36 +170,48 @@ func cmdDelete(br *ziggy.Bridge, args []string) error { if len(args) < 2 { return errors.New("not enough arguments") } - argID, err := strconv.Atoi(args[1]) - if err != nil { - return err - } confirm := func() bool { - log.Info().Msgf("Are you sure you want to delete %s with ID %d? [y/N]", args[0], argID) + log.Info().Msgf("Are you sure you want to delete the %s identified as %s? [y/N]", args[0], args[1]) var input string fmt.Scanln(&input) return strings.ToLower(input) == "y" } switch args[0] { case "light": + t, err := br.FindLight(args[1]) + if err != nil { + return err + } if confirm() { - return br.DeleteLight(argID) + return br.DeleteLight(t.ID) } case "group": + t, err := br.FindGroup(args[1]) + if err != nil { + return err + } if confirm() { - return br.DeleteGroup(argID) + return br.DeleteGroup(t.ID) } case "schedule": if confirm() { - return br.DeleteSchedule(argID) + if argID, err := strconv.Atoi(args[1]); err == nil { + return br.DeleteSchedule(argID) + } else { + return err + } } case "rule": - if confirm() { - return br.DeleteRule(argID) + if argID, err := strconv.Atoi(args[1]); err == nil { + return br.DeleteSchedule(argID) + } else { + return err } case "sensor": - if confirm() { - return br.DeleteSensor(argID) + if argID, err := strconv.Atoi(args[1]); err == nil { + return br.DeleteSchedule(argID) + } else { + return err } default: return errors.New("invalid target type")