(opts *DeleteOptions)
| 130 | } |
| 131 | |
| 132 | func selectVersions(opts *DeleteOptions) ([]*buildinformation.BuildInformation, error) { |
| 133 | if len(opts.Version.Value) > 0 { |
| 134 | return selectVersionsBasedOnUserInput(opts) |
| 135 | } |
| 136 | |
| 137 | shouldSelectVersions := false |
| 138 | var selectVersionsAnswer string |
| 139 | err := opts.Ask(&survey.Select{ |
| 140 | Message: "Select versions to delete?", |
| 141 | Help: "Select 'No' to delete every version of build information for a package id", |
| 142 | Options: []string{"Yes", "No"}, |
| 143 | }, &selectVersionsAnswer) |
| 144 | if err != nil { |
| 145 | return nil, err |
| 146 | } |
| 147 | if selectVersionsAnswer == "Yes" { |
| 148 | shouldSelectVersions = true |
| 149 | } else { |
| 150 | shouldSelectVersions = false |
| 151 | } |
| 152 | |
| 153 | if shouldSelectVersions { |
| 154 | versionsMap, versions, err := getVersionMap(opts) |
| 155 | if err != nil { |
| 156 | return nil, err |
| 157 | } |
| 158 | var selectedKeys []string |
| 159 | err = opts.Ask(&survey.MultiSelect{ |
| 160 | Message: "Select version(s)", |
| 161 | Options: versions, |
| 162 | }, &selectedKeys, survey.WithValidator(survey.Required)) |
| 163 | |
| 164 | if err != nil { |
| 165 | return nil, err |
| 166 | } |
| 167 | |
| 168 | var selectedBuildInformationVersions []*buildinformation.BuildInformation |
| 169 | for _, v := range selectedKeys { |
| 170 | if value, ok := versionsMap[v]; ok { |
| 171 | selectedBuildInformationVersions = append(selectedBuildInformationVersions, value) |
| 172 | } |
| 173 | } |
| 174 | |
| 175 | return selectedBuildInformationVersions, nil |
| 176 | } |
| 177 | |
| 178 | return selectAllVersionsForPackage(opts) |
| 179 | } |
| 180 | |
| 181 | func getVersionMap(opts *DeleteOptions) (map[string]*buildinformation.BuildInformation, []string, error) { |
| 182 | buildInfoForPackageId, err := buildinformation.Get(opts.Client, opts.Client.GetSpaceID(), buildinformation.BuildInformationQuery{ |
no test coverage detected