77import com .objectcomputing .checkins .notifications .email .EmailSender ;
88import com .objectcomputing .checkins .notifications .email .MailJetFactory ;
99import com .objectcomputing .checkins .services .email .Email ;
10+ import com .objectcomputing .checkins .services .feedback_external_recipient .FeedbackExternalRecipient ;
1011import com .objectcomputing .checkins .services .feedback_external_recipient .FeedbackExternalRecipientServices ;
1112import com .objectcomputing .checkins .services .memberprofile .MemberProfile ;
1213import com .objectcomputing .checkins .services .memberprofile .MemberProfileUtils ;
@@ -90,8 +91,11 @@ private void validateMembers(FeedbackRequest feedbackRequest) {
9091 throw new BadArgException ("Cannot save feedback request with invalid creator ID" );
9192 }
9293
93- if (feedbackRequest .getRecipientId () == null && feedbackRequest .getExternalRecipientId () == null ) {
94- throw new BadArgException ("Cannot save feedback request without recipient/external-recipient ID" );
94+ if (feedbackRequest .getExternalRecipientId () != null && feedbackRequest .getRecipientId () != null ) {
95+ throw new BadArgException ("Cannot save feedback request with both recipient and external-recipient ID" );
96+ }
97+ if (feedbackRequest .getExternalRecipientId () == null && feedbackRequest .getRecipientId () == null ) {
98+ throw new BadArgException ("Cannot save feedback request without both recipient and external-recipient ID" );
9599 }
96100
97101 try {
@@ -102,21 +106,20 @@ private void validateMembers(FeedbackRequest feedbackRequest) {
102106 throw new BadArgException ("Cannot save feedback request with invalid recipient ID" );
103107 }
104108
105- /** TODO Luch
106109 try {
107110 if (feedbackRequest .getExternalRecipientId () != null ) {
108- memberProfileServices .getById(feedbackRequest.getExternalRecipientId());
111+ feedbackExternalRecipientServices .getById (feedbackRequest .getExternalRecipientId ());
109112 }
110113 } catch (NotFoundException e ) {
111114 throw new BadArgException ("Cannot save feedback request with invalid external-recipient ID" );
112115 }
113- **/
114116
115117 try {
116118 memberProfileServices .getById (feedbackRequest .getRequesteeId ());
117119 } catch (NotFoundException e ) {
118120 throw new BadArgException ("Cannot save feedback request with invalid requestee ID" );
119121 }
122+
120123 }
121124
122125 @ Override
@@ -144,21 +147,24 @@ public FeedbackRequest save(FeedbackRequest feedbackRequest) {
144147
145148 public void sendNewRequestEmail (FeedbackRequest storedRequest ) {
146149 MemberProfile creator = memberProfileServices .getById (storedRequest .getCreatorId ());
147- MemberProfile reviewer = memberProfileServices .getById (storedRequest .getRecipientId ());
150+ MemberProfile reviewerMemberProfile ;
151+ FeedbackExternalRecipient reviewerExternalRecipient ;
148152 MemberProfile requestee = memberProfileServices .getById (storedRequest .getRequesteeId ());
149153 String senderName = MemberProfileUtils .getFullName (creator );
150154 UUID recipientOrExternalRecipientId ;
151155 String reviewerFirstName , reviewerEmail ;
152156
153157 if (storedRequest .getExternalRecipientId () != null ) {
154158 recipientOrExternalRecipientId = storedRequest .getExternalRecipientId ();
155- reviewerFirstName = "" ;
156- reviewerEmail = "" ;
159+ reviewerExternalRecipient = feedbackExternalRecipientServices .getById (recipientOrExternalRecipientId );
160+ reviewerFirstName = reviewerExternalRecipient .getFirstName ();
161+ reviewerEmail = reviewerExternalRecipient .getEmail ();
157162 } else {
158- reviewer = memberProfileServices .getById (storedRequest .getRecipientId ());
159163 recipientOrExternalRecipientId = storedRequest .getRecipientId ();
160- reviewerFirstName = reviewer .getFirstName ();
161- reviewerEmail = reviewer .getWorkEmail ();
164+ reviewerMemberProfile = memberProfileServices .getById (recipientOrExternalRecipientId );
165+ recipientOrExternalRecipientId = storedRequest .getRecipientId ();
166+ reviewerFirstName = reviewerMemberProfile .getFirstName ();
167+ reviewerEmail = reviewerMemberProfile .getWorkEmail ();
162168 }
163169
164170 String newContent = String .format (
@@ -207,7 +213,10 @@ public FeedbackRequest update(FeedbackRequestUpdateDTO feedbackRequestUpdateDTO)
207213 reviewAssignmentsSet = reviewAssignmentRepository .findByReviewPeriodIdAndRevieweeId (feedbackRequest .getReviewPeriodId (), feedbackRequest .getRequesteeId ());
208214 }
209215
210- boolean reassignAttempted = !Objects .equals (originalFeedback .getRecipientId (), feedbackRequest .getRecipientId ());
216+ boolean reassignAttempted = false ;
217+ if ((!Objects .equals (originalFeedback .getRecipientId (), feedbackRequest .getRecipientId ())) || (!Objects .equals (originalFeedback .getExternalRecipientId (), feedbackRequest .getExternalRecipientId ()))) {
218+ reassignAttempted = true ;
219+ }
211220 boolean dueDateUpdateAttempted = !Objects .equals (originalFeedback .getDueDate (), feedbackRequest .getDueDate ());
212221 boolean submitDateUpdateAttempted = !Objects .equals (originalFeedback .getSubmitDate (), feedbackRequest .getSubmitDate ());
213222
0 commit comments