99import io .micronaut .context .annotation .Property ;
1010import com .objectcomputing .checkins .exceptions .PermissionException ;
1111import jakarta .inject .Singleton ;
12+
13+ import java .time .LocalDate ;
1214import java .util .LinkedList ;
1315import java .util .List ;
1416import java .util .Set ;
@@ -47,11 +49,11 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
4749 }
4850
4951 List <FeedbackSuggestionDTO > suggestions = new LinkedList <>();
50- if (suggestFor .getSupervisorid () != null && !suggestFor .getSupervisorid ().equals (currentUser .getId ())) {
52+ if (suggestFor .getSupervisorid () != null && !suggestFor .getSupervisorid ().equals (currentUser .getId ()) && isMemberActive ( suggestFor . getSupervisorid ()) ) {
5153 suggestions .add (new FeedbackSuggestionDTO ("Supervisor of requestee" , suggestFor .getSupervisorid ()));
5254 }
5355
54- if (suggestFor .getPdlId () != null && !suggestFor .getPdlId ().equals (currentUser .getId ())) {
56+ if (suggestFor .getPdlId () != null && !suggestFor .getPdlId ().equals (currentUser .getId ()) && isMemberActive ( suggestFor . getPdlId ()) ) {
5557 suggestions .add (new FeedbackSuggestionDTO ("PDL of requestee" , suggestFor .getPdlId ()));
5658 }
5759
@@ -60,6 +62,7 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
6062 for (TeamMember currentMembership : teamMemberships ){
6163 Set <TeamMember > teamMembers = teamMemberServices .findByFields (currentMembership .getTeamId (), null , null );
6264 Set <TeamMember > leads = teamMembers .stream ().filter ((member )-> member .isLead ()).collect (Collectors .toSet ());
65+ leads = filterTerminated (leads );
6366 for (TeamMember lead : leads ) {
6467 if (suggestions .size () < maxSuggestions && !lead .getMemberId ().equals (id ) && !lead .getMemberId ().equals (currentUserId )) {
6568 suggestions .add (new FeedbackSuggestionDTO ("Team lead for requestee" , lead .getMemberId ()));
@@ -72,6 +75,7 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
7275 for (TeamMember currentMembership : teamMemberships ){
7376 Set <TeamMember > teamMembers = teamMemberServices .findByFields (currentMembership .getTeamId (), null , null );
7477 teamMembers = teamMembers .stream ().filter ((member )-> !member .isLead ()).collect (Collectors .toSet ());
78+ teamMembers = filterTerminated (teamMembers );
7579 for (TeamMember teamMember : teamMembers ) {
7680 if (suggestions .size () < maxSuggestions && !teamMember .getMemberId ().equals (id ) && !teamMember .getMemberId ().equals (currentUserId )) {
7781 suggestions .add (new FeedbackSuggestionDTO ("Team member for requestee" , teamMember .getMemberId ()));
@@ -80,6 +84,20 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
8084
8185 if (suggestions .size () >= maxSuggestions ) break ;
8286 }
87+
88+ return suggestions ;
89+ }
90+
91+ private Set <TeamMember > filterTerminated (Set <TeamMember > suggestions ) {
92+ suggestions = suggestions .stream ().filter ((TeamMember suggestion ) -> {
93+ return isMemberActive (suggestion .getMemberId ());
94+ }).collect (Collectors .toSet ());
8395 return suggestions ;
8496 }
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+ }
85103}
0 commit comments