Skip to content

Commit a24ee6e

Browse files
committed
filter terminated team members at each step rather than at the end of suggestion gathering
1 parent a2d00ed commit a24ee6e

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

server/src/main/java/com/objectcomputing/checkins/services/feedback/suggestions/FeedbackSuggestionServiceImpl.java

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
4949
}
5050

5151
List<FeedbackSuggestionDTO> suggestions = new LinkedList<>();
52-
if(suggestFor.getSupervisorid() != null && !suggestFor.getSupervisorid().equals(currentUser.getId())) {
52+
if(suggestFor.getSupervisorid() != null && !suggestFor.getSupervisorid().equals(currentUser.getId()) && isMemberActive(suggestFor.getSupervisorid())) {
5353
suggestions.add(new FeedbackSuggestionDTO("Supervisor of requestee", suggestFor.getSupervisorid()));
5454
}
5555

56-
if(suggestFor.getPdlId() != null && !suggestFor.getPdlId().equals(currentUser.getId())) {
56+
if(suggestFor.getPdlId() != null && !suggestFor.getPdlId().equals(currentUser.getId()) && isMemberActive(suggestFor.getPdlId())) {
5757
suggestions.add(new FeedbackSuggestionDTO("PDL of requestee", suggestFor.getPdlId()));
5858
}
5959

@@ -62,6 +62,7 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
6262
for(TeamMember currentMembership: teamMemberships){
6363
Set<TeamMember> teamMembers = teamMemberServices.findByFields(currentMembership.getTeamId(), null, null);
6464
Set<TeamMember> leads = teamMembers.stream().filter((member)-> member.isLead()).collect(Collectors.toSet());
65+
leads = filterTerminated(leads);
6566
for(TeamMember lead: leads) {
6667
if(suggestions.size() < maxSuggestions && !lead.getMemberId().equals(id) && !lead.getMemberId().equals(currentUserId)) {
6768
suggestions.add(new FeedbackSuggestionDTO("Team lead for requestee", lead.getMemberId()));
@@ -74,6 +75,7 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
7475
for(TeamMember currentMembership: teamMemberships){
7576
Set<TeamMember> teamMembers = teamMemberServices.findByFields(currentMembership.getTeamId(), null, null);
7677
teamMembers = teamMembers.stream().filter((member)-> !member.isLead()).collect(Collectors.toSet());
78+
teamMembers = filterTerminated(teamMembers);
7779
for(TeamMember teamMember: teamMembers) {
7880
if(suggestions.size() < maxSuggestions && !teamMember.getMemberId().equals(id) && !teamMember.getMemberId().equals(currentUserId)) {
7981
suggestions.add(new FeedbackSuggestionDTO("Team member for requestee", teamMember.getMemberId()));
@@ -82,12 +84,20 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
8284

8385
if(suggestions.size() >= maxSuggestions) break;
8486
}
87+
88+
return suggestions;
89+
}
8590

86-
suggestions = suggestions.stream().filter((FeedbackSuggestionDTO suggestion) -> {
87-
MemberProfile suggested = memberProfileServices.getById(suggestion.getId());
88-
LocalDate terminationDate = suggested.getTerminationDate();
89-
return !(terminationDate != null && terminationDate.isBefore(LocalDate.now().atStartOfDay().toLocalDate()));
90-
}).collect(Collectors.toList());
91+
private Set<TeamMember> filterTerminated(Set<TeamMember> suggestions) {
92+
suggestions = suggestions.stream().filter((TeamMember suggestion) -> {
93+
return isMemberActive(suggestion.getMemberId());
94+
}).collect(Collectors.toSet());
9195
return suggestions;
9296
}
97+
98+
private boolean isMemberActive(UUID memberId) {
99+
MemberProfile suggested = memberProfileServices.getById(memberId);
100+
LocalDate terminationDate = suggested.getTerminationDate();
101+
return !(terminationDate != null && terminationDate.isBefore(LocalDate.now().atStartOfDay().toLocalDate()));
102+
}
93103
}

0 commit comments

Comments
 (0)