-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor | CAKK-59 | Message Extractor, Sender 관련 리팩토링
* Refactor | CAKK-59 | MessageExtractor 인터페이스 추상화 * Refactor | CAKK-59 | as-is 클래스 및 인터페이스 제거 * Refactor | CAKK-59 | as-is 클래스 및 인터페이스 제거 * Refactor | CAKK-59 | 메시지 extractor, template 추상화 * Refactor | CAKK-59 | 에러 메시지 리스너 구현 * Refactor | CAKK-59 | api 모듈 slack 의존성 제거 * Refactor | CAKK-59 | 메시지 관련 비즈니스 리팩토링 * Test | CAKK-59 | 메시지 전송 관련 테스트 수정 * Chore | CAKK-59 | jacoco exclude에 리스너 등록 * Refactor | CAKK-59 | email 관련 sender 네이밍 수정 * Refactor | CAKK-59 | 제네릭 범위 수정 * Test | CAKK-59 | Error 관련 리스너 테스트 작성
- Loading branch information
Showing
33 changed files
with
382 additions
and
342 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 0 additions & 33 deletions
33
cakk-api/src/main/java/com/cakk/api/config/CertificationTemplateConfig.java
This file was deleted.
Oops, something went wrong.
28 changes: 28 additions & 0 deletions
28
cakk-api/src/main/java/com/cakk/api/config/MessageTemplateConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package com.cakk.api.config; | ||
|
||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.context.annotation.Configuration; | ||
|
||
import com.cakk.external.extractor.CertificationSlackMessageExtractor; | ||
import com.cakk.external.extractor.ErrorAlertSlackMessageExtractor; | ||
import com.cakk.external.extractor.MessageExtractor; | ||
import com.cakk.external.template.MessageTemplate; | ||
|
||
@Configuration | ||
public class MessageTemplateConfig { | ||
|
||
@Bean | ||
public MessageTemplate certificationTemplate() { | ||
return new MessageTemplate(); | ||
} | ||
|
||
@Bean | ||
public MessageExtractor certificationMessageExtractor() { | ||
return new CertificationSlackMessageExtractor(); | ||
} | ||
|
||
@Bean | ||
public MessageExtractor errorAlertMessageExtractor() { | ||
return new ErrorAlertSlackMessageExtractor(); | ||
} | ||
} |
30 changes: 0 additions & 30 deletions
30
cakk-api/src/main/java/com/cakk/api/config/VerificationCodeSendTemplateConfig.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
cakk-api/src/main/java/com/cakk/api/dto/event/ErrorAlertEvent.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package com.cakk.api.dto.event; | ||
|
||
import jakarta.servlet.http.HttpServletRequest; | ||
|
||
public record ErrorAlertEvent( | ||
Exception exception, | ||
HttpServletRequest request, | ||
String profile | ||
) { | ||
} |
24 changes: 18 additions & 6 deletions
24
cakk-api/src/main/java/com/cakk/api/listener/CertificationEventListener.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,39 @@ | ||
package com.cakk.api.listener; | ||
|
||
import org.springframework.beans.factory.annotation.Qualifier; | ||
import org.springframework.scheduling.annotation.Async; | ||
import org.springframework.transaction.event.TransactionPhase; | ||
import org.springframework.transaction.event.TransactionalEventListener; | ||
|
||
import lombok.RequiredArgsConstructor; | ||
|
||
import com.cakk.api.annotation.ApplicationEventListener; | ||
import com.cakk.api.mapper.EventMapper; | ||
import com.cakk.domain.mysql.event.shop.CertificationEvent; | ||
import com.cakk.external.template.CertificationTemplate; | ||
import com.cakk.external.extractor.MessageExtractor; | ||
import com.cakk.external.sender.MessageSender; | ||
import com.cakk.external.template.MessageTemplate; | ||
import com.cakk.external.vo.CertificationMessage; | ||
|
||
@RequiredArgsConstructor | ||
@ApplicationEventListener | ||
public class CertificationEventListener { | ||
|
||
private final CertificationTemplate certificationTemplate; | ||
private final MessageTemplate messageTemplate; | ||
private final MessageExtractor messageExtractor; | ||
private final MessageSender messageSender; | ||
|
||
public CertificationEventListener( | ||
MessageTemplate messageTemplate, | ||
@Qualifier("certificationMessageExtractor") MessageExtractor messageExtractor, | ||
@Qualifier("slackMessageSender") MessageSender messageSender | ||
) { | ||
this.messageTemplate = messageTemplate; | ||
this.messageExtractor = messageExtractor; | ||
this.messageSender = messageSender; | ||
} | ||
|
||
@Async | ||
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) | ||
public void sendMessageToSlack(CertificationEvent certificationEvent) { | ||
CertificationMessage certificationMessage = EventMapper.supplyCertificationMessageBy(certificationEvent); | ||
certificationTemplate.sendMessageForCertification(certificationMessage); | ||
messageTemplate.sendMessage(certificationMessage, messageExtractor, messageSender); | ||
} | ||
} |
20 changes: 13 additions & 7 deletions
20
cakk-api/src/main/java/com/cakk/api/listener/EmailSendEventListener.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,39 @@ | ||
package com.cakk.api.listener; | ||
|
||
import java.util.Objects; | ||
|
||
import org.springframework.beans.factory.annotation.Qualifier; | ||
import org.springframework.context.event.EventListener; | ||
import org.springframework.scheduling.annotation.Async; | ||
|
||
import com.cakk.api.annotation.ApplicationEventListener; | ||
import com.cakk.api.dto.event.EmailWithVerificationCodeSendEvent; | ||
import com.cakk.api.mapper.EventMapper; | ||
import com.cakk.external.template.VerificationCodeSendTemplate; | ||
import com.cakk.external.extractor.MessageExtractor; | ||
import com.cakk.external.sender.MessageSender; | ||
import com.cakk.external.template.MessageTemplate; | ||
import com.cakk.external.vo.VerificationMessage; | ||
|
||
@ApplicationEventListener | ||
public class EmailSendEventListener { | ||
|
||
|
||
private final VerificationCodeSendTemplate verificationCodeSendTemplate; | ||
private final MessageTemplate messageTemplate; | ||
private final MessageExtractor messageExtractor; | ||
private final MessageSender messageSender; | ||
|
||
public EmailSendEventListener( | ||
VerificationCodeSendTemplate verificationCodeSendTemplate | ||
MessageTemplate messageTemplate, | ||
@Qualifier("verificationCodeMimeMessageExtractor") MessageExtractor messageExtractor, | ||
@Qualifier("emailMessageSender") MessageSender messageSender | ||
) { | ||
this.verificationCodeSendTemplate = verificationCodeSendTemplate; | ||
this.messageTemplate = messageTemplate; | ||
this.messageExtractor = messageExtractor; | ||
this.messageSender = messageSender; | ||
} | ||
|
||
@Async | ||
@EventListener | ||
public void sendEmailIncludeVerificationCode(EmailWithVerificationCodeSendEvent event) { | ||
final VerificationMessage verificationMessage = EventMapper.supplyVerificationMessageBy(event); | ||
verificationCodeSendTemplate.sendMessageForVerificationCode(verificationMessage); | ||
messageTemplate.sendMessage(verificationMessage, messageExtractor, messageSender); | ||
} | ||
} |
39 changes: 39 additions & 0 deletions
39
cakk-api/src/main/java/com/cakk/api/listener/ErrorAlertEventListener.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package com.cakk.api.listener; | ||
|
||
import org.springframework.beans.factory.annotation.Qualifier; | ||
import org.springframework.scheduling.annotation.Async; | ||
import org.springframework.transaction.event.TransactionPhase; | ||
import org.springframework.transaction.event.TransactionalEventListener; | ||
|
||
import com.cakk.api.annotation.ApplicationEventListener; | ||
import com.cakk.api.dto.event.ErrorAlertEvent; | ||
import com.cakk.api.mapper.EventMapper; | ||
import com.cakk.external.extractor.MessageExtractor; | ||
import com.cakk.external.sender.MessageSender; | ||
import com.cakk.external.template.MessageTemplate; | ||
import com.cakk.external.vo.ErrorAlertMessage; | ||
|
||
@ApplicationEventListener | ||
public class ErrorAlertEventListener { | ||
|
||
private final MessageTemplate messageTemplate; | ||
private final MessageExtractor messageExtractor; | ||
private final MessageSender messageSender; | ||
|
||
public ErrorAlertEventListener( | ||
MessageTemplate messageTemplate, | ||
@Qualifier("errorAlertMessageExtractor") MessageExtractor messageExtractor, | ||
@Qualifier("slackMessageSender") MessageSender messageSender | ||
) { | ||
this.messageTemplate = messageTemplate; | ||
this.messageExtractor = messageExtractor; | ||
this.messageSender = messageSender; | ||
} | ||
|
||
@Async | ||
@TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT) | ||
public void sendMessageToSlack(ErrorAlertEvent errorAlertEvent) { | ||
ErrorAlertMessage certificationMessage = EventMapper.supplyErrorAlertMessageBy(errorAlertEvent); | ||
messageTemplate.sendMessage(certificationMessage, messageExtractor, messageSender); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.