Skip to content

Commit 72f24b2

Browse files
committed
2024-10-22 - feedback - external reviewer - server-side
1 parent 6723dc6 commit 72f24b2

File tree

5 files changed

+85
-34
lines changed

5 files changed

+85
-34
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class FeedbackExternalRecipient {
3535
@NotNull
3636
@Column(name="email")
3737
@ColumnTransformer(
38-
read = "pgp_sym_decrypt(workEmail::bytea,'${aes.key}')",
38+
read = "pgp_sym_decrypt(email::bytea,'${aes.key}')",
3939
write = "pgp_sym_encrypt(?,'${aes.key}') "
4040
)
4141
@Schema(description = "email of the feedback external recipient")

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

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
import com.objectcomputing.checkins.notifications.email.MailJetFactory;
66
import com.objectcomputing.checkins.services.MailJetFactoryReplacement;
77
import com.objectcomputing.checkins.services.TestContainersSuite;
8+
import com.objectcomputing.checkins.services.feedback_external_recipient.FeedbackExternalRecipient;
89
import com.objectcomputing.checkins.services.feedback_template.FeedbackTemplate;
910
import com.objectcomputing.checkins.services.fixture.FeedbackRequestFixture;
1011
import com.objectcomputing.checkins.services.fixture.FeedbackTemplateFixture;
1112
import com.objectcomputing.checkins.services.fixture.MemberProfileFixture;
13+
import com.objectcomputing.checkins.services.fixture.FeedbackExternalRecipientFixture;
1214
import com.objectcomputing.checkins.services.fixture.ReviewPeriodFixture;
1315
import com.objectcomputing.checkins.services.fixture.RoleFixture;
1416
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
@@ -45,7 +47,7 @@
4547
import static org.junit.jupiter.api.Assertions.assertTrue;
4648

4749
@Property(name = "replace.mailjet.factory", value = StringUtils.TRUE)
48-
class FeedbackRequestControllerTest extends TestContainersSuite implements MemberProfileFixture, FeedbackTemplateFixture, FeedbackRequestFixture, RoleFixture, ReviewPeriodFixture {
50+
class FeedbackRequestControllerTest extends TestContainersSuite implements MemberProfileFixture, FeedbackTemplateFixture, FeedbackRequestFixture, RoleFixture, ReviewPeriodFixture, FeedbackExternalRecipientFixture {
4951

5052
@Inject
5153
@Client("/services/feedback/requests")
@@ -80,6 +82,7 @@ private FeedbackRequestCreateDTO createDTO(FeedbackRequest feedbackRequest) {
8082
dto.setDueDate(feedbackRequest.getDueDate());
8183
dto.setStatus(feedbackRequest.getStatus());
8284
dto.setSubmitDate(feedbackRequest.getSubmitDate());
85+
dto.setExternalRecipientId(feedbackRequest.getExternalRecipientId());
8386
return dto;
8487
}
8588

@@ -120,15 +123,15 @@ private void assertResponseEqualsEntity(FeedbackRequest feedbackRequest, Feedbac
120123
}
121124

122125
@Test
123-
void testCreateFeedbackRequestByAdmin() {
126+
void testCreateFeedbackRequestByAdminToRecipient() {
124127
//create two member profiles: one for normal employee, one for admin
125128
final MemberProfile memberProfile = createADefaultMemberProfile();
126129
final MemberProfile admin = getMemberProfileRepository().save(mkMemberProfile("admin"));
127130
final MemberProfile recipient = createADefaultRecipient();
128131
assignAdminRole(admin);
129132

130133
//create feedback request
131-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, memberProfile, recipient);
134+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, memberProfile, recipient);
132135
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
133136

134137
//send feedback request
@@ -147,11 +150,11 @@ void testCreateFeedbackRequestByAdminToExternalRecipient() {
147150
//create two member profiles: one for normal employee, one for admin
148151
final MemberProfile memberProfile = createADefaultMemberProfile();
149152
final MemberProfile admin = getMemberProfileRepository().save(mkMemberProfile("admin"));
150-
final MemberProfile recipient = createADefaultRecipient();
153+
final FeedbackExternalRecipient feedbackExternalRecipient = createADefaultFeedbackExternalRecipient();
151154
assignAdminRole(admin);
152155

153156
//create feedback request
154-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, memberProfile, recipient);
157+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithExternalRecipient(admin, memberProfile, feedbackExternalRecipient);
155158
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
156159

157160
//send feedback request
@@ -174,7 +177,7 @@ void testCreateFeedbackRequestByAssignedPDL() {
174177
final MemberProfile recipient = createADefaultRecipient();
175178

176179
//create feedback request
177-
final FeedbackRequest feedbackRequest = createFeedbackRequest(pdlMemberProfile, employeeMemberProfile, recipient);
180+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(pdlMemberProfile, employeeMemberProfile, recipient);
178181
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
179182

180183
//send feedback request
@@ -198,7 +201,7 @@ void testCreateFeedbackRequestSendsEmailNow() {
198201
final MemberProfile recipient = createADefaultRecipient();
199202

200203
//create feedback request
201-
final FeedbackRequest feedbackRequest = createFeedbackRequest(pdlMemberProfile, employeeMemberProfile, recipient);
204+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(pdlMemberProfile, employeeMemberProfile, recipient);
202205
feedbackRequest.setSendDate(LocalDate.now());
203206
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
204207

@@ -230,7 +233,7 @@ void testCreateFeedbackRequestSendsEmailFuture() {
230233
final MemberProfile recipient = createADefaultRecipient();
231234

232235
//create feedback request
233-
final FeedbackRequest feedbackRequest = createFeedbackRequest(pdlMemberProfile, employeeMemberProfile, recipient);
236+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(pdlMemberProfile, employeeMemberProfile, recipient);
234237
feedbackRequest.setSendDate(LocalDate.now().plusDays(1));
235238
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
236239

@@ -253,7 +256,7 @@ void testCreateFeedbackRequestByUnassignedPdl() {
253256
MemberProfile recipient = createAnUnrelatedUser();
254257

255258
//create feedback request
256-
final FeedbackRequest feedbackRequest = createFeedbackRequest(memberProfileForPDL, memberProfile, recipient);
259+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(memberProfileForPDL, memberProfile, recipient);
257260
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
258261

259262
//send feedback request
@@ -273,7 +276,7 @@ void testCreateFeedbackRequestByMember() {
273276
MemberProfile recipient = createAnUnrelatedUser();
274277

275278
//create feedback request
276-
final FeedbackRequest feedbackRequest = createFeedbackRequest(requesteeProfile, memberProfile, recipient);
279+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(requesteeProfile, memberProfile, recipient);
277280
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
278281

279282
//send feedback request
@@ -293,7 +296,7 @@ void testCreateFeedbackRequestWithInvalidCreatorId() {
293296
assignAdminRole(admin);
294297

295298
// Create feedback request with invalid creator ID
296-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, requestee, recipient);
299+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, requestee, recipient);
297300
feedbackRequest.setCreatorId(UUID.randomUUID());
298301
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
299302

@@ -315,7 +318,7 @@ void testCreateFeedbackRequestWithInvalidRecipientId() {
315318
assignAdminRole(admin);
316319

317320
// Create feedback request with invalid recipient ID
318-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, requestee, recipient);
321+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, requestee, recipient);
319322
feedbackRequest.setRecipientId(UUID.randomUUID());
320323
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
321324

@@ -337,7 +340,7 @@ void testCreateFeedbackRequestWithInvalidRequesteeId() {
337340
assignAdminRole(admin);
338341

339342
// Create feedback request with invalid requestee ID
340-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, requestee, recipient);
343+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, requestee, recipient);
341344
feedbackRequest.setRequesteeId(UUID.randomUUID());
342345
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
343346

@@ -359,7 +362,7 @@ void testCreateFeedbackRequestWithNoRequestee() {
359362
assignAdminRole(admin);
360363

361364
// Create feedback request with no requestee
362-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, requestee, recipient);
365+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, requestee, recipient);
363366
feedbackRequest.setRequesteeId(null);
364367
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
365368

@@ -383,7 +386,7 @@ void testCreateFeedbackRequestWithNoRecipients() {
383386
assignAdminRole(admin);
384387

385388
// Create feedback request with no recipient(s)
386-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, requestee, recipient);
389+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, requestee, recipient);
387390
feedbackRequest.setRecipientId(null);
388391
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
389392

@@ -407,7 +410,7 @@ void testCreateFeedbackRequestWithNoSelectedTemplate() {
407410
assignAdminRole(admin);
408411

409412
// Create feedback request with no template
410-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, requestee, recipient);
413+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, requestee, recipient);
411414
feedbackRequest.setTemplateId(null);
412415
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
413416

@@ -431,7 +434,7 @@ void testCreateFeedbackRequestWithSendDateAfterDueDate() {
431434
assignAdminRole(admin);
432435

433436
// Create feedback request with invalid requestee ID
434-
final FeedbackRequest feedbackRequest = createFeedbackRequest(admin, requestee, recipient);
437+
final FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(admin, requestee, recipient);
435438
feedbackRequest.setSendDate(LocalDate.of(1111, 11, 2));
436439
feedbackRequest.setDueDate(LocalDate.of(1111, 11, 1));
437440
final FeedbackRequestCreateDTO dto = createDTO(feedbackRequest);
@@ -1006,7 +1009,7 @@ void testUpdateSubmitDateNotAuthorized() {
10061009
MemberProfile recipient = createADefaultRecipient();
10071010

10081011
// Save feedback request that has not been submitted yet
1009-
final FeedbackRequest feedbackReq = createFeedbackRequest(pdl, requestee, recipient);
1012+
final FeedbackRequest feedbackReq = createFeedbackRequestWithRecipient(pdl, requestee, recipient);
10101013
feedbackReq.setSubmitDate(null);
10111014
getFeedbackRequestRepository().save(feedbackReq);
10121015

@@ -1030,7 +1033,7 @@ void testUpdateSubmitDateWhenPdlEnablesEdits() {
10301033
MemberProfile recipient = createADefaultRecipient();
10311034

10321035
// Save feedback request that has already been submitted
1033-
final FeedbackRequest feedbackReq = createFeedbackRequest(pdl, requestee, recipient);
1036+
final FeedbackRequest feedbackReq = createFeedbackRequestWithRecipient(pdl, requestee, recipient);
10341037
feedbackReq.setSubmitDate(LocalDate.now());
10351038
getFeedbackRequestRepository().save(feedbackReq);
10361039

@@ -1055,7 +1058,7 @@ void testFeedbackRequestEnableEditsSendsEmail() {
10551058
MemberProfile recipient = createADefaultRecipient();
10561059

10571060
// Save feedback request that has already been submitted
1058-
final FeedbackRequest feedbackReq = createFeedbackRequest(pdl, requestee, recipient);
1061+
final FeedbackRequest feedbackReq = createFeedbackRequestWithRecipient(pdl, requestee, recipient);
10591062
feedbackReq.setSubmitDate(LocalDate.now());
10601063
feedbackReq.setStatus("submitted");
10611064
getFeedbackRequestRepository().save(feedbackReq);
@@ -1272,7 +1275,7 @@ void testRecipientGetBeforeSendDateNotAuthorized() {
12721275
MemberProfile pdlMemberProfile = createADefaultMemberProfile();
12731276
MemberProfile requestee = createADefaultMemberProfileForPdl(pdlMemberProfile);
12741277
MemberProfile recipient = createADefaultRecipient();
1275-
FeedbackRequest feedbackRequest = createFeedbackRequest(pdlMemberProfile, requestee, recipient);
1278+
FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(pdlMemberProfile, requestee, recipient);
12761279
feedbackRequest.setSendDate(LocalDate.now().plusDays(1));
12771280
getFeedbackRequestRepository().save(feedbackRequest);
12781281

@@ -1296,7 +1299,7 @@ void testRecipientGetBeforeSendDateAsAdminAuthorized() {
12961299
assignAdminRole(adminUser);
12971300

12981301
// Save feedback request with send date in the future
1299-
FeedbackRequest feedbackRequest = createFeedbackRequest(pdlMemberProfile, requestee, recipient);
1302+
FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(pdlMemberProfile, requestee, recipient);
13001303
feedbackRequest.setSendDate(LocalDate.now().plusDays(1));
13011304
getFeedbackRequestRepository().save(feedbackRequest);
13021305

@@ -1318,7 +1321,7 @@ void testRecipientGetBeforeSendDateAsPdlAuthorized() {
13181321
MemberProfile recipient = createADefaultRecipient();
13191322

13201323
// Save feedback request with send date in the future
1321-
FeedbackRequest feedbackRequest = createFeedbackRequest(pdlMemberProfile, requestee, recipient);
1324+
FeedbackRequest feedbackRequest = createFeedbackRequestWithRecipient(pdlMemberProfile, requestee, recipient);
13221325
feedbackRequest.setSendDate(LocalDate.now().plusDays(1));
13231326
getFeedbackRequestRepository().save(feedbackRequest);
13241327

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.objectcomputing.checkins.services.fixture;
2+
3+
import com.objectcomputing.checkins.services.feedback_external_recipient.FeedbackExternalRecipient;
4+
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
5+
6+
import java.time.LocalDate;
7+
import java.util.Map;
8+
9+
public interface FeedbackExternalRecipientFixture extends RepositoryFixture {
10+
11+
default FeedbackExternalRecipient createADefaultFeedbackExternalRecipient() {
12+
String email = "[email protected]";
13+
String firstName = "External-01";
14+
String lastName = "Recipient";
15+
String companyName = "Company Name";
16+
17+
return getFeedbackExternalRecipientRepository().save(new FeedbackExternalRecipient(
18+
email, firstName, lastName, companyName
19+
));
20+
}
21+
22+
}

0 commit comments

Comments
 (0)