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