Skip to content

Commit cb39434

Browse files
authored
Merge pull request #2174 from objectcomputing/feature-2173/send-sheduled-emails
Send emails that are scheduled
2 parents 8d322bd + 1c42fe9 commit cb39434

File tree

2 files changed

+47
-3
lines changed

2 files changed

+47
-3
lines changed

server/src/main/java/com/objectcomputing/checkins/services/request_notifications/CheckServicesController.java

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
package com.objectcomputing.checkins.services.request_notifications;
22

33

4+
import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken;
5+
import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier;
6+
import com.google.api.client.http.javanet.NetHttpTransport;
7+
import com.google.api.client.json.gson.GsonFactory;
48
import io.micronaut.http.HttpResponse;
59
import io.micronaut.http.annotation.Controller;
610
import io.micronaut.http.annotation.Get;
11+
import io.micronaut.http.annotation.Header;
712
import io.micronaut.scheduling.TaskExecutors;
813
import io.netty.channel.EventLoopGroup;
914
import jakarta.annotation.security.PermitAll;
10-
1115
import jakarta.inject.Named;
1216
import reactor.core.publisher.Mono;
1317
import reactor.core.scheduler.Schedulers;
1418

19+
import java.io.IOException;
20+
import java.security.GeneralSecurityException;
21+
import java.util.Collections;
1522
import java.util.concurrent.ExecutorService;
1623

1724
@Controller("/services/feedback/daily-request-check")
@@ -20,6 +27,10 @@ public class CheckServicesController {
2027
private final CheckServices checkServices;
2128
private final EventLoopGroup eventLoopGroup;
2229
private final ExecutorService ioExecutorService;
30+
private final GoogleIdTokenVerifier verifier =
31+
new GoogleIdTokenVerifier.Builder(new NetHttpTransport(), new GsonFactory())
32+
.setAudience(Collections.singletonList("https://checkins.objectcomputing.com/services/feedback/daily-request-check"))
33+
.build();
2334

2435
public CheckServicesController(CheckServices checkServices, EventLoopGroup eventLoopGroup,
2536
@Named(TaskExecutors.IO) ExecutorService ioExecutorService) {
@@ -29,7 +40,37 @@ public CheckServicesController(CheckServices checkServices, EventLoopGroup event
2940
}
3041

3142
@Get
32-
public Mono<? extends HttpResponse<?>> GetTodaysRequests() {
43+
public Mono<? extends HttpResponse<?>> GetTodaysRequests(@Header("Authorization") String authorizationHeader) {
44+
System.out.println("!!!!!!-"+authorizationHeader);
45+
String authorization = authorizationHeader.split(" ")[1];
46+
GoogleIdToken idToken = null;
47+
try {
48+
idToken = verifier.verify(authorization);
49+
GoogleIdToken.Payload payload = idToken.getPayload();
50+
51+
// Print user identifier
52+
String userId = payload.getSubject();
53+
System.out.println("User ID: " + userId);
54+
55+
// Get profile information from payload
56+
String email = payload.getEmail();
57+
System.out.println("Email:"+ email);
58+
String hostedDomain = payload.getHostedDomain();
59+
System.out.println("Hosted Domain" + hostedDomain);
60+
String prettyString = payload.toPrettyString();
61+
System.out.println(prettyString);
62+
boolean emailVerified = payload.getEmailVerified();
63+
System.out.println("emailVerified:" + emailVerified);
64+
// String name = (String) payload.get("name");
65+
// String pictureUrl = (String) payload.get("picture");
66+
// String locale = (String) payload.get("locale");
67+
// String familyName = (String) payload.get("family_name");
68+
// String givenName = (String) payload.get("given_name");
69+
} catch (GeneralSecurityException | IOException e) {
70+
throw new RuntimeException(e);
71+
}
72+
73+
GoogleIdToken.Payload payload = idToken.getPayload();
3374
return Mono.fromCallable(checkServices::GetTodaysRequests)
3475
.publishOn(Schedulers.fromExecutor(eventLoopGroup))
3576
.map(success -> (HttpResponse<?>) HttpResponse.ok())

server/src/main/java/com/objectcomputing/checkins/services/request_notifications/CheckServicesImpl.java

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

33
import com.objectcomputing.checkins.notifications.email.EmailSender;
4+
import com.objectcomputing.checkins.notifications.email.MailJetConfig;
45
import com.objectcomputing.checkins.services.feedback_request.FeedbackRequest;
56
import com.objectcomputing.checkins.services.feedback_request.FeedbackRequestRepository;
67
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
78
import com.objectcomputing.checkins.services.memberprofile.MemberProfileServices;
89
import io.micronaut.context.annotation.Property;
10+
import jakarta.inject.Named;
911
import jakarta.inject.Singleton;
1012
import java.time.LocalDate;
1113
import java.util.*;
@@ -21,7 +23,8 @@ public class CheckServicesImpl implements CheckServices {
2123
private String notificationContent;
2224
private final MemberProfileServices memberProfileServices;
2325

24-
public CheckServicesImpl(FeedbackRequestRepository feedbackReqRepository, EmailSender emailSender,
26+
public CheckServicesImpl(FeedbackRequestRepository feedbackReqRepository,
27+
@Named(MailJetConfig.HTML_FORMAT) EmailSender emailSender,
2528
@Property(name = FEEDBACK_REQUEST_NOTIFICATION_SUBJECT) String notificationSubject,
2629
@Property(name = FEEDBACK_REQUEST_NOTIFICATION_CONTENT) String notificationContent,
2730
MemberProfileServices memberProfileServices) {

0 commit comments

Comments
 (0)