diff --git a/cmd/download.go b/cmd/download.go index 4d6d02e59..dc2091899 100644 --- a/cmd/download.go +++ b/cmd/download.go @@ -64,32 +64,32 @@ func runDownload(cfg config.Config, flags *pflag.FlagSet, args []string) error { if err != nil { return err } - if uuid == "" && slug == "" { + if uuid != "" && slug != "" || uuid == slug { return errors.New("need an --exercise name or a solution --uuid") } - param := "latest" - if param == "" { - param = uuid - } - url := fmt.Sprintf("%s/solutions/%s", usrCfg.GetString("apibaseurl"), param) - - client, err := api.NewClient(usrCfg.GetString("token"), usrCfg.GetString("apibaseurl")) + track, err := flags.GetString("track") if err != nil { return err } - req, err := client.NewRequest("GET", url, nil) + team, err := flags.GetString("team") if err != nil { return err } - track, err := flags.GetString("track") + param := "latest" + if uuid != "" { + param = uuid + } + url := fmt.Sprintf("%s/solutions/%s", usrCfg.GetString("apibaseurl"), param) + + client, err := api.NewClient(usrCfg.GetString("token"), usrCfg.GetString("apibaseurl")) if err != nil { return err } - team, err := flags.GetString("team") + req, err := client.NewRequest("GET", url, nil) if err != nil { return err }