Skip to content

Commit 20ee809

Browse files
committed
2024-10-21 - feedback - external reviewer - server-side
1 parent 5c1c584 commit 20ee809

File tree

7 files changed

+63
-9
lines changed

7 files changed

+63
-9
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,12 @@ public class FeedbackExternalRecipient {
6666
private String companyName;
6767

6868
public FeedbackExternalRecipient(
69-
@NotBlank String email, @Nullable String firstName, @Nullable String lastName, @Nullable String company
69+
@NotBlank String email, @Nullable String firstName, @Nullable String lastName, @Nullable String companyName
7070
) {
7171
this.email = email;
7272
this.firstName = firstName;
7373
this.lastName = lastName;
74-
this.companyName = company;
74+
this.companyName = companyName;
7575
}
7676

7777
public FeedbackExternalRecipient() {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.objectcomputing.checkins.services.feedback_external_recipient;
2+
3+
import com.objectcomputing.checkins.services.feedback_request.FeedbackRequest;
4+
import io.micronaut.core.annotation.NonNull;
5+
import io.micronaut.core.annotation.Nullable;
6+
import io.micronaut.data.annotation.Query;
7+
import io.micronaut.data.annotation.TypeDef;
8+
import io.micronaut.data.jdbc.annotation.JdbcRepository;
9+
import io.micronaut.data.model.DataType;
10+
import io.micronaut.data.model.query.builder.sql.Dialect;
11+
import io.micronaut.data.repository.CrudRepository;
12+
import jakarta.validation.Valid;
13+
import jakarta.validation.constraints.NotNull;
14+
15+
import java.time.LocalDate;
16+
import java.util.List;
17+
import java.util.UUID;
18+
19+
@JdbcRepository(dialect = Dialect.POSTGRES)
20+
public interface FeedbackExternalRecipientRepository extends CrudRepository<FeedbackExternalRecipient, UUID> {
21+
22+
@Override
23+
<S extends FeedbackExternalRecipient> S save(@Valid @NotNull @NonNull S entity);
24+
@Override
25+
<S extends FeedbackExternalRecipient> S update(@NotNull @NonNull S entity);
26+
}
27+

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
@@ -7,9 +7,16 @@
77

88
@Singleton
99
public class FeedbackExternalRecipientServicesImpl implements FeedbackExternalRecipientServices {
10+
11+
private final FeedbackExternalRecipientRepository feedbackExternalRecipientRepository;
12+
13+
public FeedbackExternalRecipientServicesImpl(FeedbackExternalRecipientRepository feedbackExternalRecipientRepository) {
14+
this.feedbackExternalRecipientRepository = feedbackExternalRecipientRepository;
15+
}
16+
1017
@Override
1118
public FeedbackExternalRecipient save(FeedbackExternalRecipient feedbackExternalRecipient) {
12-
return null;
19+
return feedbackExternalRecipientRepository.save(feedbackExternalRecipient);
1320
}
1421

1522
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ public class FeedbackRequest {
4646
private UUID requesteeId;
4747

4848
@Column(name = "recipient_id")
49+
@Nullable
4950
@TypeDef(type = DataType.STRING)
5051
@Schema(description = "id of the person who was requested to give feedback")
51-
@Nullable
5252
private UUID recipientId;
5353

5454
@Column(name = "template_id")

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

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.objectcomputing.checkins.services.feedback_request;
22

3+
import com.objectcomputing.checkins.services.feedback_external_recipient.FeedbackExternalRecipient;
4+
import com.objectcomputing.checkins.services.feedback_external_recipient.FeedbackExternalRecipientServices;
35
import com.objectcomputing.checkins.services.permissions.Permission;
46
import com.objectcomputing.checkins.services.permissions.RequiredPermission;
57
import io.micronaut.core.annotation.Nullable;
@@ -35,9 +37,11 @@
3537
public class FeedbackRequestController {
3638

3739
private final FeedbackRequestServices feedbackReqServices;
40+
private final FeedbackExternalRecipientServices feedbackExternalRecipientServices;
3841

39-
public FeedbackRequestController(FeedbackRequestServices feedbackReqServices) {
42+
public FeedbackRequestController(FeedbackRequestServices feedbackReqServices, FeedbackExternalRecipientServices feedbackExternalRecipientServices) {
4043
this.feedbackReqServices = feedbackReqServices;
44+
this.feedbackExternalRecipientServices = feedbackExternalRecipientServices;
4145
}
4246

4347
/**
@@ -49,8 +53,22 @@ public FeedbackRequestController(FeedbackRequestServices feedbackReqServices) {
4953
@RequiredPermission(Permission.CAN_CREATE_FEEDBACK_REQUEST)
5054
@Post
5155
public HttpResponse<FeedbackRequestResponseDTO> save(@Body @Valid @NotNull FeedbackRequestCreateDTO requestBody) {
56+
FeedbackRequest savedFeedbackRequest;
5257
FeedbackRequest feedbackRequest = fromDTO(requestBody);
53-
FeedbackRequest savedFeedbackRequest = feedbackReqServices.save(feedbackRequest);
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+
*/
67+
try {
68+
savedFeedbackRequest = feedbackReqServices.save(feedbackRequest);
69+
} catch (Exception e) {
70+
throw e;
71+
}
5472
return HttpResponse.created(fromEntity(savedFeedbackRequest))
5573
.headers(headers -> headers.location(URI.create("/feedback_request/" + savedFeedbackRequest.getId())));
5674
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@ public class FeedbackRequestResponseDTO {
1919
@Schema(description = "unique id of the feedback request")
2020
private UUID id;
2121

22+
@Nullable
2223
@Schema(description = "id of the person who was requested to give feedback")
2324
private UUID recipientId;
2425

2526
@NotNull
2627
@Schema(description = "id of the feedback request creator")
2728
private UUID creatorId;
2829

29-
@Nullable
30+
@NotNull
3031
@Schema(description = "id of the person who is getting feedback requested on them")
3132
private UUID requesteeId;
3233

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,15 @@ private void validateMembers(FeedbackRequest feedbackRequest) {
102102
throw new BadArgException("Cannot save feedback request with invalid recipient ID");
103103
}
104104

105+
/** TODO Luch
105106
try {
106107
if (feedbackRequest.getExternalRecipientId() != null) {
107108
memberProfileServices.getById(feedbackRequest.getExternalRecipientId());
108109
}
109110
} catch (NotFoundException e) {
110111
throw new BadArgException("Cannot save feedback request with invalid external-recipient ID");
111112
}
113+
**/
112114

113115
try {
114116
memberProfileServices.getById(feedbackRequest.getRequesteeId());
@@ -128,7 +130,6 @@ public FeedbackRequest save(FeedbackRequest feedbackRequest) {
128130
throw new BadArgException("Attempted to save feedback request with non-auto-populated ID");
129131
}
130132

131-
132133
if (feedbackRequest.getDueDate() != null && feedbackRequest.getSendDate().isAfter(feedbackRequest.getDueDate())) {
133134
throw new BadArgException("Send date of feedback request must be before the due date.");
134135
}
@@ -149,7 +150,7 @@ public void sendNewRequestEmail(FeedbackRequest storedRequest) {
149150
UUID recipientOrExternalRecipientId;
150151
String reviewerFirstName, reviewerEmail;
151152

152-
if (memberProfileServices.getById(storedRequest.getExternalRecipientId()) != null) {
153+
if (storedRequest.getExternalRecipientId() != null) {
153154
recipientOrExternalRecipientId = storedRequest.getExternalRecipientId();
154155
reviewerFirstName = "";
155156
reviewerEmail = "";

0 commit comments

Comments
 (0)