Skip to content

Commit ed276b7

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

File tree

4 files changed

+30
-28
lines changed

4 files changed

+30
-28
lines changed

server/src/main/java/com/objectcomputing/checkins/services/feedback_external_recipient/FeedbackExternalRecipientServicesImpl.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.objectcomputing.checkins.services.feedback_external_recipient;
22

3+
import com.objectcomputing.checkins.exceptions.NotFoundException;
34
import jakarta.inject.Singleton;
45

56
import java.util.List;
7+
import java.util.Optional;
68
import java.util.UUID;
79

810
@Singleton
@@ -31,7 +33,12 @@ public void delete(UUID id) {
3133

3234
@Override
3335
public FeedbackExternalRecipient getById(UUID id) {
34-
return null;
36+
Optional<FeedbackExternalRecipient> optional = feedbackExternalRecipientRepository.findById(id);
37+
if (optional.isEmpty()) {
38+
throw new NotFoundException("No external recipient found with id: " + id);
39+
}
40+
FeedbackExternalRecipient feedbackExternalRecipient = optional.get();
41+
return feedbackExternalRecipient;
3542
}
3643

3744
@Override

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

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,6 @@ public FeedbackRequestController(FeedbackRequestServices feedbackReqServices, Fe
5555
public HttpResponse<FeedbackRequestResponseDTO> save(@Body @Valid @NotNull FeedbackRequestCreateDTO requestBody) {
5656
FeedbackRequest savedFeedbackRequest;
5757
FeedbackRequest feedbackRequest = fromDTO(requestBody);
58-
/*
59-
FeedbackExternalRecipient feedbackExternalRecipient = new FeedbackExternalRecipient();
60-
feedbackExternalRecipient.setEmail("[email protected]");
61-
feedbackExternalRecipient.setCompanyName("OCI");
62-
feedbackExternalRecipient.setFirstName("None");
63-
feedbackExternalRecipient.setLastName("None");
64-
feedbackExternalRecipient = feedbackExternalRecipientServices.save(feedbackExternalRecipient);
65-
feedbackRequest.setExternalRecipientId(feedbackExternalRecipient.getId());
66-
*/
6758
try {
6859
savedFeedbackRequest = feedbackReqServices.save(feedbackRequest);
6960
} catch (Exception e) {
@@ -126,11 +117,6 @@ public HttpResponse<FeedbackRequestResponseDTO> getById(UUID id) {
126117
@RequiredPermission(Permission.CAN_VIEW_FEEDBACK_REQUEST)
127118
@Get("/{?creatorId,requesteeId,recipientId,oldestDate,reviewPeriodId,templateId,requesteeIds}")
128119
public List<FeedbackRequestResponseDTO> findByValues(@Nullable UUID creatorId, @Nullable UUID requesteeId, @Nullable UUID recipientId, @Nullable @Format("yyyy-MM-dd") LocalDate oldestDate, @Nullable UUID reviewPeriodId, @Nullable UUID templateId, @Nullable List<UUID> requesteeIds, @Nullable UUID externalRecipientId) {
129-
List<FeedbackRequestResponseDTO> feedbackRequestResponseDTOList = feedbackReqServices.findByValues(creatorId, requesteeId, recipientId, oldestDate, reviewPeriodId, templateId, requesteeIds, externalRecipientId)
130-
.stream()
131-
.map(this::fromEntity)
132-
.toList();
133-
134120
return feedbackReqServices.findByValues(creatorId, requesteeId, recipientId, oldestDate, reviewPeriodId, templateId, requesteeIds, externalRecipientId)
135121
.stream()
136122
.map(this::fromEntity)

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

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.objectcomputing.checkins.notifications.email.EmailSender;
88
import com.objectcomputing.checkins.notifications.email.MailJetFactory;
99
import com.objectcomputing.checkins.services.email.Email;
10+
import com.objectcomputing.checkins.services.feedback_external_recipient.FeedbackExternalRecipient;
1011
import com.objectcomputing.checkins.services.feedback_external_recipient.FeedbackExternalRecipientServices;
1112
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
1213
import 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

server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestControllerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ void testCreateFeedbackRequestWithNoRecipients() {
396396
JsonNode body = responseException.getResponse().getBody(JsonNode.class).orElse(null);
397397
String error = Objects.requireNonNull(body).get("message").asText();
398398
assertEquals(HttpStatus.BAD_REQUEST, responseException.getStatus());
399-
assertEquals("Cannot save feedback request without recipient/external-recipient ID", error);
399+
assertEquals("Cannot save feedback request without both recipient and external-recipient ID", error);
400400
}
401401

402402
@Test

0 commit comments

Comments
 (0)