Skip to content

Commit a13ed8c

Browse files
committed
2024-10-22 - feedback - external reviewer - server-side
1 parent ed276b7 commit a13ed8c

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

server/src/main/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestServicesImpl.java

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)