diff --git a/src/main/java/org/patinanetwork/codebloom/api/auth/AuthController.java b/src/main/java/org/patinanetwork/codebloom/api/auth/AuthController.java index 6b3a0a68e..f3073b942 100644 --- a/src/main/java/org/patinanetwork/codebloom/api/auth/AuthController.java +++ b/src/main/java/org/patinanetwork/codebloom/api/auth/AuthController.java @@ -24,10 +24,10 @@ import org.patinanetwork.codebloom.common.dto.Empty; import org.patinanetwork.codebloom.common.dto.autogen.UnsafeGenericFailureResponse; import org.patinanetwork.codebloom.common.dto.security.AuthenticationObjectDto; -import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmail; +import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmailClient; import org.patinanetwork.codebloom.common.email.error.EmailException; import org.patinanetwork.codebloom.common.email.options.SendEmailOptions; -import org.patinanetwork.codebloom.common.email.template.ReactEmailClient; +import org.patinanetwork.codebloom.common.email.template.ReactEmailTemplater; import org.patinanetwork.codebloom.common.jwt.JWTClient; import org.patinanetwork.codebloom.common.lag.FakeLag; import org.patinanetwork.codebloom.common.reporter.Reporter; @@ -65,11 +65,11 @@ public class AuthController { private final Protector protector; private final JWTClient jwtClient; private final UserRepository userRepository; - private final OfficialCodebloomEmail emailClient; + private final OfficialCodebloomEmailClient emailClient; private final ServerUrlUtils serverUrlUtils; private final UserTagRepository userTagRepository; private final Reporter reporter; - private final ReactEmailClient reactEmailClient; + private final ReactEmailTemplater reactEmailTemplater; private final SimpleRedis simpleRedis; public AuthController( @@ -77,11 +77,11 @@ public AuthController( final Protector protector, final JWTClient jwtClient, final UserRepository userRepository, - final OfficialCodebloomEmail emailClient, + final OfficialCodebloomEmailClient emailClient, final ServerUrlUtils serverUrlUtils, final UserTagRepository userTagRepository, final Reporter reporter, - final ReactEmailClient reactEmailClient, + final ReactEmailTemplater reactEmailTemplater, final SimpleRedisProvider simpleRedisProvider) { this.sessionRepository = sessionRepository; this.protector = protector; @@ -91,7 +91,7 @@ public AuthController( this.serverUrlUtils = serverUrlUtils; this.userTagRepository = userTagRepository; this.reporter = reporter; - this.reactEmailClient = reactEmailClient; + this.reactEmailTemplater = reactEmailTemplater; this.simpleRedis = simpleRedisProvider.select(SimpleRedisSlot.VERIFICATION_EMAIL_SENDING); } @@ -238,7 +238,7 @@ public ResponseEntity> enrollSchool( emailClient.sendMessage(SendEmailOptions.builder() .recipientEmail(email) .subject("Hello from Codebloom!") - .body(reactEmailClient.schoolEmailTemplate(verificationLink)) + .body(reactEmailTemplater.schoolEmailTemplate(verificationLink)) .build()); return ResponseEntity.ok() .body(ApiResponder.success("Magic link sent! Check your school inbox to continue.", Empty.of())); diff --git a/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmail.java b/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailClient.java similarity index 91% rename from src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmail.java rename to src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailClient.java index 4ff7874e1..98986ec23 100644 --- a/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmail.java +++ b/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailClient.java @@ -22,14 +22,14 @@ *

For example, we use this client to send emails to users who are trying to verify their school status. */ @Component -@EnableConfigurationProperties(OfficialCodebloomEmailProperties.class) +@EnableConfigurationProperties(OfficialCodebloomEmailClientProperties.class) @Timed(value = "email.client.execution") -public class OfficialCodebloomEmail extends Email { +public class OfficialCodebloomEmailClient extends Email { - private final OfficialCodebloomEmailProperties emailProperties; + private final OfficialCodebloomEmailClientProperties emailProperties; private Session session; - public OfficialCodebloomEmail(final OfficialCodebloomEmailProperties emailProperties) { + public OfficialCodebloomEmailClient(final OfficialCodebloomEmailClientProperties emailProperties) { this.emailProperties = emailProperties; final Properties properties = new Properties(); properties.setProperty("mail.smtp.host", emailProperties.getHost()); diff --git a/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailProperties.java b/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailClientProperties.java similarity index 95% rename from src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailProperties.java rename to src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailClientProperties.java index b472e9a94..41754c86f 100644 --- a/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailProperties.java +++ b/src/main/java/org/patinanetwork/codebloom/common/email/client/codebloom/OfficialCodebloomEmailClientProperties.java @@ -3,7 +3,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "codebloom.email") -public class OfficialCodebloomEmailProperties { +public class OfficialCodebloomEmailClientProperties { private String host; private String port; diff --git a/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmail.java b/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailClient.java similarity index 93% rename from src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmail.java rename to src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailClient.java index 3c154e7bc..30654fd70 100644 --- a/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmail.java +++ b/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailClient.java @@ -19,14 +19,14 @@ /** Provides read-only access to the Github email account in order to access the OAuth code. */ @Component -@EnableConfigurationProperties(GithubOAuthEmailProperties.class) +@EnableConfigurationProperties(GithubOAuthEmailClientProperties.class) @Timed(value = "email.client.execution") -public class GithubOAuthEmail extends Email { +public class GithubOAuthEmailClient extends Email { - private final GithubOAuthEmailProperties emailProperties; + private final GithubOAuthEmailClientProperties emailProperties; private static Session session; - public GithubOAuthEmail(final GithubOAuthEmailProperties emailProperties) { + public GithubOAuthEmailClient(final GithubOAuthEmailClientProperties emailProperties) { this.emailProperties = emailProperties; final Properties properties = new Properties(); properties.setProperty("mail.imap.host", emailProperties.getHost()); diff --git a/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailProperties.java b/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailClientProperties.java similarity index 95% rename from src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailProperties.java rename to src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailClientProperties.java index 8f3fae7ce..021b6aa23 100644 --- a/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailProperties.java +++ b/src/main/java/org/patinanetwork/codebloom/common/email/client/github/GithubOAuthEmailClientProperties.java @@ -3,7 +3,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "github.email") -public class GithubOAuthEmailProperties { +public class GithubOAuthEmailClientProperties { private String host; private String port; diff --git a/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClient.java b/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplater.java similarity index 95% rename from src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClient.java rename to src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplater.java index 3317a9f0c..13fc04f54 100644 --- a/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClient.java +++ b/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplater.java @@ -2,7 +2,7 @@ import java.io.IOException; -public interface ReactEmailClient { +public interface ReactEmailTemplater { /** * Load the generated HTML from ClassPathResources as a String then injects variables using Jsoup and renders HTML * as a string. diff --git a/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClientImpl.java b/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplaterImpl.java similarity index 96% rename from src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClientImpl.java rename to src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplaterImpl.java index f95c89e0c..de0bd74b1 100644 --- a/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClientImpl.java +++ b/src/main/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplaterImpl.java @@ -9,7 +9,7 @@ import org.springframework.util.StreamUtils; @Component -public class ReactEmailClientImpl implements ReactEmailClient { +public class ReactEmailTemplaterImpl implements ReactEmailTemplater { private String getHtmlAsString(final String path) throws IOException { ClassPathResource resource = new ClassPathResource(path); diff --git a/src/main/java/org/patinanetwork/codebloom/playwright/PlaywrightClient.java b/src/main/java/org/patinanetwork/codebloom/playwright/PlaywrightClient.java index a0f5733c6..c9bb78384 100644 --- a/src/main/java/org/patinanetwork/codebloom/playwright/PlaywrightClient.java +++ b/src/main/java/org/patinanetwork/codebloom/playwright/PlaywrightClient.java @@ -18,7 +18,7 @@ import org.patinanetwork.codebloom.common.db.models.usertag.Tag; import org.patinanetwork.codebloom.common.email.Email; import org.patinanetwork.codebloom.common.email.Message; -import org.patinanetwork.codebloom.common.email.client.github.GithubOAuthEmail; +import org.patinanetwork.codebloom.common.email.client.github.GithubOAuthEmailClient; import org.patinanetwork.codebloom.common.url.ServerUrlUtils; import org.patinanetwork.codebloom.scheduled.auth.CodeExtractor; import org.springframework.stereotype.Component; @@ -33,9 +33,9 @@ public class PlaywrightClient { private final ServerUrlUtils serverUrlUtils; private final Email email; - public PlaywrightClient(final ServerUrlUtils serverUrlUtils, GithubOAuthEmail githubOAuthEmail) { + public PlaywrightClient(final ServerUrlUtils serverUrlUtils, GithubOAuthEmailClient githubOAuthEmailClient) { this.serverUrlUtils = serverUrlUtils; - this.email = githubOAuthEmail; + this.email = githubOAuthEmailClient; } private T withPage(final Function consumer) { diff --git a/src/test/java/org/patinanetwork/codebloom/api/auth/AuthControllerTest.java b/src/test/java/org/patinanetwork/codebloom/api/auth/AuthControllerTest.java index 2ba0ab293..34efcb7e2 100644 --- a/src/test/java/org/patinanetwork/codebloom/api/auth/AuthControllerTest.java +++ b/src/test/java/org/patinanetwork/codebloom/api/auth/AuthControllerTest.java @@ -27,10 +27,10 @@ import org.patinanetwork.codebloom.common.db.repos.session.SessionRepository; import org.patinanetwork.codebloom.common.db.repos.user.UserRepository; import org.patinanetwork.codebloom.common.db.repos.usertag.UserTagRepository; -import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmail; +import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmailClient; import org.patinanetwork.codebloom.common.email.error.EmailException; import org.patinanetwork.codebloom.common.email.options.SendEmailOptions; -import org.patinanetwork.codebloom.common.email.template.ReactEmailClient; +import org.patinanetwork.codebloom.common.email.template.ReactEmailTemplater; import org.patinanetwork.codebloom.common.jwt.JWTClient; import org.patinanetwork.codebloom.common.reporter.Reporter; import org.patinanetwork.codebloom.common.schools.magic.MagicLink; @@ -50,11 +50,11 @@ public class AuthControllerTest { private final Protector protector = mock(Protector.class); private final JWTClient jwtClient = mock(JWTClient.class); private final UserRepository userRepository = mock(UserRepository.class); - private final OfficialCodebloomEmail emailClient = mock(OfficialCodebloomEmail.class); + private final OfficialCodebloomEmailClient emailClient = mock(OfficialCodebloomEmailClient.class); private final ServerUrlUtils serverUrlUtils = mock(ServerUrlUtils.class); private final UserTagRepository userTagRepository = mock(UserTagRepository.class); private final Reporter reporter = mock(Reporter.class); - private final ReactEmailClient reactEmailClient = mock(ReactEmailClient.class); + private final ReactEmailTemplater reactEmailTemplater = mock(ReactEmailTemplater.class); private final SimpleRedis simpleRedis = mock(SimpleRedis.class); private final SimpleRedisProvider simpleRedisProvider = mock(SimpleRedisProvider.class); @@ -74,7 +74,7 @@ void setup() { serverUrlUtils, userTagRepository, reporter, - reactEmailClient, + reactEmailTemplater, simpleRedisProvider); this.faker = Faker.instance(); } @@ -284,7 +284,7 @@ void enrollSchoolEmailSendFailure() throws Exception { when(protector.validateSession(request)).thenReturn(authObj); when(jwtClient.encode(any(MagicLink.class), any(Duration.class))).thenReturn("mock-token"); when(serverUrlUtils.getUrl()).thenReturn("http://localhost:8080"); - when(reactEmailClient.schoolEmailTemplate(any())).thenReturn("Template"); + when(reactEmailTemplater.schoolEmailTemplate(any())).thenReturn("Template"); doThrow(new EmailException("Failed to send email")).when(emailClient).sendMessage(any(SendEmailOptions.class)); ResponseStatusException exception = @@ -311,7 +311,7 @@ void enrollSchoolHappyPath() throws Exception { when(simpleRedis.containsKey(user.getId())).thenReturn(false); when(jwtClient.encode(any(MagicLink.class), any(Duration.class))).thenReturn("mock-token"); when(serverUrlUtils.getUrl()).thenReturn("http://localhost:8080"); - when(reactEmailClient.schoolEmailTemplate(any())).thenReturn("Template"); + when(reactEmailTemplater.schoolEmailTemplate(any())).thenReturn("Template"); var response = authController.enrollSchool(emailBody, request); diff --git a/src/test/java/org/patinanetwork/codebloom/common/db/repos/BaseRepositoryTest.java b/src/test/java/org/patinanetwork/codebloom/common/db/repos/BaseRepositoryTest.java index 4b9b76dec..4c8977896 100644 --- a/src/test/java/org/patinanetwork/codebloom/common/db/repos/BaseRepositoryTest.java +++ b/src/test/java/org/patinanetwork/codebloom/common/db/repos/BaseRepositoryTest.java @@ -1,7 +1,7 @@ package org.patinanetwork.codebloom.common.db.repos; -import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmail; -import org.patinanetwork.codebloom.common.email.client.github.GithubOAuthEmail; +import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmailClient; +import org.patinanetwork.codebloom.common.email.client.github.GithubOAuthEmailClient; import org.patinanetwork.codebloom.jda.JDAInitializer; import org.springframework.test.context.bean.override.mockito.MockitoBean; @@ -16,8 +16,8 @@ public class BaseRepositoryTest { private JDAInitializer jdaInitializer; @MockitoBean - private OfficialCodebloomEmail codebloomEmail; + private OfficialCodebloomEmailClient codebloomEmailClient; @MockitoBean - private GithubOAuthEmail githubOAuthEmail; + private GithubOAuthEmailClient githubOAuthEmailClient; } diff --git a/src/test/java/org/patinanetwork/codebloom/common/email/TestEmailClients.java b/src/test/java/org/patinanetwork/codebloom/common/email/TestEmailClients.java index eff9299bb..7631dad1f 100644 --- a/src/test/java/org/patinanetwork/codebloom/common/email/TestEmailClients.java +++ b/src/test/java/org/patinanetwork/codebloom/common/email/TestEmailClients.java @@ -1,8 +1,8 @@ package org.patinanetwork.codebloom.common.email; import org.junit.jupiter.api.Test; -import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmail; -import org.patinanetwork.codebloom.common.email.client.github.GithubOAuthEmail; +import org.patinanetwork.codebloom.common.email.client.codebloom.OfficialCodebloomEmailClient; +import org.patinanetwork.codebloom.common.email.client.github.GithubOAuthEmailClient; import org.patinanetwork.codebloom.common.email.error.EmailException; import org.patinanetwork.codebloom.config.NoJdaRequired; import org.springframework.beans.factory.annotation.Autowired; @@ -11,19 +11,20 @@ @SpringBootTest public class TestEmailClients extends NoJdaRequired { - private final GithubOAuthEmail githubOAuthEmail; - private final OfficialCodebloomEmail officialCodebloomEmail; + private final GithubOAuthEmailClient githubOAuthEmailClient; + private final OfficialCodebloomEmailClient officialCodebloomEmailClient; @Autowired public TestEmailClients( - final GithubOAuthEmail githubOAuthEmail, final OfficialCodebloomEmail officialCodebloomEmail) { - this.githubOAuthEmail = githubOAuthEmail; - this.officialCodebloomEmail = officialCodebloomEmail; + final GithubOAuthEmailClient githubOAuthEmailClient, + final OfficialCodebloomEmailClient officialCodebloomEmailClient) { + this.githubOAuthEmailClient = githubOAuthEmailClient; + this.officialCodebloomEmailClient = officialCodebloomEmailClient; } @Test void testConnections() throws EmailException { - githubOAuthEmail.testConnection(); - officialCodebloomEmail.testConnection(); + githubOAuthEmailClient.testConnection(); + officialCodebloomEmailClient.testConnection(); } } diff --git a/src/test/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClientTest.java b/src/test/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplaterTest.java similarity index 94% rename from src/test/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClientTest.java rename to src/test/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplaterTest.java index 914b5662c..d3a2630c3 100644 --- a/src/test/java/org/patinanetwork/codebloom/common/email/template/ReactEmailClientTest.java +++ b/src/test/java/org/patinanetwork/codebloom/common/email/template/ReactEmailTemplaterTest.java @@ -9,11 +9,11 @@ import org.jsoup.nodes.Element; import org.junit.jupiter.api.Test; -class ReactEmailClientTest { +class ReactEmailTemplaterTest { @Test void exampleTemplateTest() throws IOException { - ReactEmailClient client = new ReactEmailClientImpl(); + ReactEmailTemplater client = new ReactEmailTemplaterImpl(); String recipientName = "Example"; String verifyUrl = "https://example.com"; @@ -46,7 +46,7 @@ void exampleTemplateTest() throws IOException { @Test void emailTest() throws IOException { - ReactEmailClient client = new ReactEmailClientImpl(); + ReactEmailTemplater client = new ReactEmailTemplaterImpl(); String verifyUrl = "https://example.com/example/href"; String renderedHtml = client.schoolEmailTemplate(verifyUrl);