@@ -194,6 +194,10 @@ public FeedbackRequest update(FeedbackRequestUpdateDTO feedbackRequestUpdateDTO)
194194 * status has to be updated with any permissions--fired on submission from any recipient
195195 * submit date can be updated only when the recipient is logged in--fired on submission from any recipient
196196 */
197+ UUID recipientOrExternalRecipientId ;
198+ MemberProfile reviewerMemberProfile ;
199+ FeedbackExternalRecipient reviewerExternalRecipient ;
200+ String reviewerFirstName , reviewerEmail ;
197201
198202 final FeedbackRequest feedbackRequest = this .getFromDTO (feedbackRequestUpdateDTO );
199203 FeedbackRequest originalFeedback = null ;
@@ -255,20 +259,32 @@ public FeedbackRequest update(FeedbackRequestUpdateDTO feedbackRequestUpdateDTO)
255259 }
256260
257261 FeedbackRequest storedRequest = feedbackReqRepository .update (feedbackRequest );
258- MemberProfile reviewer = memberProfileServices .getById (storedRequest .getRecipientId ());
262+
263+ if (storedRequest .getExternalRecipientId () != null ) {
264+ recipientOrExternalRecipientId = storedRequest .getExternalRecipientId ();
265+ reviewerExternalRecipient = feedbackExternalRecipientServices .getById (recipientOrExternalRecipientId );
266+ reviewerFirstName = reviewerExternalRecipient .getFirstName ();
267+ reviewerEmail = reviewerExternalRecipient .getEmail ();
268+ } else {
269+ recipientOrExternalRecipientId = storedRequest .getRecipientId ();
270+ reviewerMemberProfile = memberProfileServices .getById (recipientOrExternalRecipientId );
271+ reviewerFirstName = reviewerMemberProfile .getFirstName ();
272+ reviewerEmail = reviewerMemberProfile .getWorkEmail ();
273+ }
274+
259275 MemberProfile requestee = memberProfileServices .getById (storedRequest .getRequesteeId ());
260276 // Send email if the feedback request has been reopened for edits
261277 if (originalFeedback .getStatus ().equals ("submitted" ) && feedbackRequest .getStatus ().equals ("sent" )) {
262278 MemberProfile creator = memberProfileServices .getById (storedRequest .getCreatorId ());
263279 String senderName = MemberProfileUtils .getFullName (creator );
264280 String newContent = String .format (
265281 templateToString (updateRequestTemplate ),
266- reviewer . getFirstName () , senderName ,
282+ reviewerFirstName , senderName ,
267283 MemberProfileUtils .getFullName (requestee ),
268284 String .format ("%s/feedback/submit?request=%s" ,
269285 webURL , storedRequest .getId ().toString ()));
270286
271- emailSender .sendEmail (senderName , creator .getWorkEmail (), notificationSubject , newContent , reviewer . getWorkEmail () );
287+ emailSender .sendEmail (senderName , creator .getWorkEmail (), notificationSubject , newContent , reviewerEmail );
272288 }
273289
274290 // Send email if the feedback request has been reassigned
@@ -282,7 +298,8 @@ public FeedbackRequest update(FeedbackRequestUpdateDTO feedbackRequestUpdateDTO)
282298 }
283299
284300 // Send email to reviewers. But, only when the requestee is the
285- // recipient (i.e., a self-review).
301+ // recipient (i.e., a self-review)
302+ // 2024-10-22 - This should not involve the external-recipient ID, only the recipient-id, since self-review should always only use recipient-id
286303 if (reviewAssignmentsSet != null && reviewAssignmentsSet .size () > 0 &&
287304 feedbackRequest .getRequesteeId ().equals (feedbackRequest .getRecipientId ())) {
288305 sendSelfReviewCompletionEmailToReviewers (feedbackRequest , reviewAssignmentsSet );
0 commit comments