diff --git a/cakk-api/src/main/java/com/cakk/api/config/MessageTemplateConfig.java b/cakk-api/src/main/java/com/cakk/api/config/MessageTemplateConfig.java index 168c1eca..4c2c69a7 100644 --- a/cakk-api/src/main/java/com/cakk/api/config/MessageTemplateConfig.java +++ b/cakk-api/src/main/java/com/cakk/api/config/MessageTemplateConfig.java @@ -1,16 +1,44 @@ package com.cakk.api.config; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.mail.javamail.JavaMailSender; + +import net.gpedro.integrations.slack.SlackApi; import com.cakk.external.extractor.CertificationSlackMessageExtractor; import com.cakk.external.extractor.ErrorAlertSlackMessageExtractor; import com.cakk.external.extractor.MessageExtractor; +import com.cakk.external.extractor.VerificationCodeMimeMessageExtractor; +import com.cakk.external.sender.EmailMessageSender; +import com.cakk.external.sender.MessageSender; +import com.cakk.external.sender.SlackMessageSender; import com.cakk.external.template.MessageTemplate; @Configuration public class MessageTemplateConfig { + private final JavaMailSender javaMailSender; + private final SlackApi slackApi; + + private final String senderEmail; + private final Boolean isEnable; + + public MessageTemplateConfig( + JavaMailSender javaMailSender, + SlackApi slackApi, + @Value("${spring.mail.username}") + String senderEmail, + @Value("${slack.webhook.is-enable}") + Boolean isEnable + ) { + this.javaMailSender = javaMailSender; + this.senderEmail = senderEmail; + this.isEnable = isEnable; + this.slackApi = slackApi; + } + @Bean public MessageTemplate certificationTemplate() { return new MessageTemplate(); @@ -25,4 +53,19 @@ public MessageExtractor certificationMessageExtractor() { public MessageExtractor errorAlertMessageExtractor() { return new ErrorAlertSlackMessageExtractor(); } + + @Bean + public MessageExtractor verificationCodeMimeMessageExtractor() { + return new VerificationCodeMimeMessageExtractor(javaMailSender, senderEmail); + } + + @Bean + public MessageSender emailMessageSender() { + return new EmailMessageSender(javaMailSender); + } + + @Bean + public MessageSender slackMessageSender() { + return new SlackMessageSender(slackApi, isEnable); + } } diff --git a/cakk-external/src/main/java/com/cakk/external/extractor/VerificationCodeMimeMessageExtractor.kt b/cakk-external/src/main/java/com/cakk/external/extractor/VerificationCodeMimeMessageExtractor.kt index 04ef2d0e..15413760 100644 --- a/cakk-external/src/main/java/com/cakk/external/extractor/VerificationCodeMimeMessageExtractor.kt +++ b/cakk-external/src/main/java/com/cakk/external/extractor/VerificationCodeMimeMessageExtractor.kt @@ -6,13 +6,11 @@ import jakarta.mail.internet.MimeMessage import org.springframework.beans.factory.annotation.Value import org.springframework.mail.javamail.JavaMailSender import org.springframework.mail.javamail.MimeMessageHelper -import org.springframework.stereotype.Component import com.cakk.common.enums.ReturnCode import com.cakk.common.exception.CakkException import com.cakk.external.vo.VerificationMessage -@Component class VerificationCodeMimeMessageExtractor( private val mailSender: JavaMailSender, @Value("\${spring.mail.username}") diff --git a/cakk-external/src/main/java/com/cakk/external/sender/EmailMessageSender.kt b/cakk-external/src/main/java/com/cakk/external/sender/EmailMessageSender.kt index f6788e10..74ab9146 100644 --- a/cakk-external/src/main/java/com/cakk/external/sender/EmailMessageSender.kt +++ b/cakk-external/src/main/java/com/cakk/external/sender/EmailMessageSender.kt @@ -3,12 +3,10 @@ package com.cakk.external.sender import jakarta.mail.internet.MimeMessage import org.springframework.mail.javamail.JavaMailSender -import org.springframework.stereotype.Component import com.cakk.common.enums.ReturnCode import com.cakk.common.exception.CakkException -@Component class EmailMessageSender( private val mailSender: JavaMailSender ) : MessageSender { diff --git a/cakk-external/src/main/java/com/cakk/external/sender/SlackMessageSender.kt b/cakk-external/src/main/java/com/cakk/external/sender/SlackMessageSender.kt index 4420ea27..f299a392 100644 --- a/cakk-external/src/main/java/com/cakk/external/sender/SlackMessageSender.kt +++ b/cakk-external/src/main/java/com/cakk/external/sender/SlackMessageSender.kt @@ -4,9 +4,7 @@ import net.gpedro.integrations.slack.SlackApi import net.gpedro.integrations.slack.SlackMessage import org.springframework.beans.factory.annotation.Value -import org.springframework.stereotype.Component -@Component class SlackMessageSender( private val slackApi: SlackApi, @Value("\${slack.webhook.is-enable}")