diff --git a/cmd/harbor/root/artifact/label/add.go b/cmd/harbor/root/artifact/label/add.go index 25bcfa644..e809da42f 100644 --- a/cmd/harbor/root/artifact/label/add.go +++ b/cmd/harbor/root/artifact/label/add.go @@ -88,7 +88,10 @@ Examples: } } - label := api.GetLabel(labelID) + label, err := api.GetLabel(labelID) + if err != nil { + return fmt.Errorf("failed to get label: %v", utils.ParseHarborErrorMsg(err)) + } if _, err := api.AddLabelArtifact(projectName, repoName, reference, label); err != nil { return fmt.Errorf("failed to add label to artifact: %v", utils.ParseHarborErrorMsg(err)) diff --git a/cmd/harbor/root/labels/update.go b/cmd/harbor/root/labels/update.go index 473f1ca8a..ecc6622ca 100644 --- a/cmd/harbor/root/labels/update.go +++ b/cmd/harbor/root/labels/update.go @@ -19,6 +19,7 @@ import ( "github.com/goharbor/go-client/pkg/sdk/v2.0/models" "github.com/goharbor/harbor-cli/pkg/api" "github.com/goharbor/harbor-cli/pkg/prompt" + "github.com/goharbor/harbor-cli/pkg/utils" "github.com/goharbor/harbor-cli/pkg/views/label/update" "github.com/spf13/cobra" ) @@ -68,9 +69,9 @@ func UpdateLableCommand() *cobra.Command { return fmt.Errorf("failed to parse label id: %v", err) } - existingLabel := api.GetLabel(labelId) - if existingLabel == nil { - return fmt.Errorf("label is not found") + existingLabel, err := api.GetLabel(labelId) + if err != nil { + return fmt.Errorf("failed to get label: %v", utils.ParseHarborErrorMsg(err)) } updateView := &models.Label{ Name: existingLabel.Name, diff --git a/pkg/api/label_handler.go b/pkg/api/label_handler.go index 7425d6a6d..2f9a0ff62 100644 --- a/pkg/api/label_handler.go +++ b/pkg/api/label_handler.go @@ -107,17 +107,22 @@ func UpdateLabel(updateView *models.Label, Labelid int64) error { return nil } -func GetLabel(labelid int64) *models.Label { +func GetLabel(labelid int64) (*models.Label, error) { ctx, client, err := utils.ContextWithClient() if err != nil { - return nil + return nil, err } response, err := client.Label.GetLabelByID(ctx, &label.GetLabelByIDParams{LabelID: labelid}) if err != nil { - return nil + return nil, err + } + + payload := response.GetPayload() + if payload == nil || payload.ID == 0 { + return nil, fmt.Errorf("label with id %d not found", labelid) } - return response.GetPayload() + return payload, nil } func GetLabelIdByName(labelName string, opts ListFlags) (int64, error) {