Skip to content

Commit

Permalink
refactor fetching removals from list
Browse files Browse the repository at this point in the history
  • Loading branch information
daemon1024 committed Mar 24, 2021
1 parent 2f342c5 commit 686abd3
Showing 1 changed file with 16 additions and 21 deletions.
37 changes: 16 additions & 21 deletions cmd/remove-members/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ func removeMemberFromFile(member string, path string, info os.FileInfo, confirm
}

removals := map[string][]string{
"orgs": fetchOrgRemovals(cfg, []string{}, member),
"orgs": fetchOrgRemovals(cfg, []string{}, member, path),
"teams": fetchTeamRemovals(cfg.Teams, []string{}, member),
}

Expand Down Expand Up @@ -199,35 +199,30 @@ func commitRemovedMembers(member string, orgs []string, teams []string, confirm

}

func fetchOrgRemovals(cfg org.Config, removals []string, member string) []string {
for _, i := range cfg.Members {
if i == member {
removals = append(removals, *cfg.Name)
}
}
for _, i := range cfg.Admins {
if i == member {
removals = append(removals, *cfg.Name)
}
func fetchOrgRemovals(cfg org.Config, removals []string, member string, path string) []string {
if cfg.Name != nil {
removals = fetchRemovals(cfg.Members, removals, member, *cfg.Name)
removals = fetchRemovals(cfg.Admins, removals, member, *cfg.Name)
}
return removals
}

func fetchTeamRemovals(teams map[string]org.Team, removals []string, member string) []string {
for teamName, v := range teams {
for _, i := range v.Members {
if i == member {
removals = append(removals, teamName)
}
}
for _, i := range v.Maintainers {
if i == member {
removals = append(removals, teamName)
}
}
removals = fetchRemovals(v.Members, removals, member, teamName)
removals = fetchRemovals(v.Maintainers, removals, member, teamName)
if len(v.Children) > 0 {
removals = fetchTeamRemovals(v.Children, removals, member)
}
}
return removals
}

func fetchRemovals(list []string, removals []string, member string, name string) []string {
for _, i := range list {
if i == member {
removals = append(removals, name)
}
}
return removals
}

0 comments on commit 686abd3

Please sign in to comment.