Skip to content
This repository has been archived by the owner on Aug 11, 2020. It is now read-only.

Commit

Permalink
Simplify the logic in reading team membership by reducing API call
Browse files Browse the repository at this point in the history
  • Loading branch information
dtan4 committed Sep 24, 2019
1 parent 70201a4 commit 1f71c0c
Showing 1 changed file with 9 additions and 18 deletions.
27 changes: 9 additions & 18 deletions pagerduty/resource_pagerduty_team_membership.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,32 +80,23 @@ func resourcePagerDutyTeamMembershipRead(d *schema.ResourceData, meta interface{

log.Printf("[DEBUG] Reading user: %s from team: %s", userID, teamID)

user, _, err := client.Users.Get(userID, &pagerduty.GetUserOptions{})
resp, _, err := client.Teams.GetMembers(teamID, &pagerduty.GetMembersOptions{})
if err != nil {
return err
}

d.Set("role", "")
for _, member := range resp.Members {
if member.User.ID == userID {
d.Set("user_id", userID)
d.Set("team_id", teamID)
d.Set("role", member.Role)

if isTeamMember(user, teamID) {
resp, _, err := client.Teams.GetMembers(teamID, &pagerduty.GetMembersOptions{})
if err != nil {
return err
return nil
}

for _, member := range resp.Members {
if member.User.ID == userID {
d.Set("role", member.Role)
break
}
}
} else {
log.Printf("[WARN] Removing %s since the user: %s is not a member of: %s", d.Id(), userID, teamID)
d.SetId("")
}

d.Set("user_id", userID)
d.Set("team_id", teamID)
log.Printf("[WARN] Removing %s since the user: %s is not a member of: %s", d.Id(), userID, teamID)
d.SetId("")

return nil
}
Expand Down

0 comments on commit 1f71c0c

Please sign in to comment.