ProjectV2Ids returns a pair of slices. The first is the projects the item should be added to. The second is the projects the items should be removed from.
()
| 232 | // The first is the projects the item should be added to. |
| 233 | // The second is the projects the items should be removed from. |
| 234 | func (e Editable) ProjectV2Ids() (*[]string, *[]string, error) { |
| 235 | if !e.Projects.Edited { |
| 236 | return nil, nil, nil |
| 237 | } |
| 238 | |
| 239 | // titles of projects to add |
| 240 | addTitles := set.NewStringSet() |
| 241 | // titles of projects to remove |
| 242 | removeTitles := set.NewStringSet() |
| 243 | |
| 244 | if len(e.Projects.Add) != 0 || len(e.Projects.Remove) != 0 { |
| 245 | // Projects were selected using flags. |
| 246 | addTitles.AddValues(e.Projects.Add) |
| 247 | removeTitles.AddValues(e.Projects.Remove) |
| 248 | } else { |
| 249 | // Projects were selected interactively. |
| 250 | addTitles.AddValues(e.Projects.Value) |
| 251 | addTitles.RemoveValues(e.Projects.Default) |
| 252 | removeTitles.AddValues(e.Projects.Default) |
| 253 | removeTitles.RemoveValues(e.Projects.Value) |
| 254 | } |
| 255 | |
| 256 | var addIds []string |
| 257 | var removeIds []string |
| 258 | var err error |
| 259 | |
| 260 | if addTitles.Len() > 0 { |
| 261 | _, addIds, err = e.Metadata.ProjectsTitlesToIDs(addTitles.ToSlice()) |
| 262 | if err != nil { |
| 263 | return nil, nil, err |
| 264 | } |
| 265 | } |
| 266 | |
| 267 | if removeTitles.Len() > 0 { |
| 268 | _, removeIds, err = e.Metadata.ProjectsTitlesToIDs(removeTitles.ToSlice()) |
| 269 | if err != nil { |
| 270 | return nil, nil, err |
| 271 | } |
| 272 | } |
| 273 | |
| 274 | return &addIds, &removeIds, nil |
| 275 | } |
| 276 | |
| 277 | func (e Editable) MilestoneId() (*string, error) { |
| 278 | if !e.Milestone.Edited { |
no test coverage detected