Skip to content

Commit

Permalink
refactor: 인증 결과 및 역할 변경 안내 클래스 분리
Browse files Browse the repository at this point in the history
- EmailNotificationService => 변경 안내 이메일 전송 관련 클래스
  • Loading branch information
gikhoon committed Oct 17, 2024
1 parent 9df6a10 commit d9467d4
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class AdminService {
private final GenerationRepository generationRepository;
private final RefusedMemberRepository refusedMemberRepository;
private final MemberService memberService;
private final EmailVerificationService emailVerificationService;
private final EmailNotificationService emailNotificationService;

public List<ApplyMemberInfoResponse> findApplicantList() {
return createApplyInfoList(memberRepository.findAllByRole(MemberRole.GENERAL));
Expand All @@ -55,7 +55,7 @@ public void approveApplicant(MemberApproveRequest request) {
memberRepository.save(member);
}

emailVerificationService.sendSignUpApprovedToEmail(member);
emailNotificationService.sendSignUpApprovedToEmail(member);
}

@Transactional
Expand All @@ -70,7 +70,7 @@ public void reapproveApplicant(MemberApproveRequest request) {
deleteRefusedMember(member);
}

emailVerificationService.sendSignUpApprovedToEmail(member);
emailNotificationService.sendSignUpApprovedToEmail(member);
}

@Transactional
Expand All @@ -83,7 +83,7 @@ public void rejectApplicant(MemberRejectRequest request) {
addRefusedMember(member);
}

emailVerificationService.sendSignupRejectionToEmail(member);
emailNotificationService.sendSignupRejectionToEmail(member);
}

private Member findMember(Long memberId) {
Expand Down Expand Up @@ -126,7 +126,7 @@ public void updateActiveMembersToOldMembers(UpdateActiveMemberToOldMemberRequest
member.updateRole(MemberRole.OLD_MEMBER);
memberRepository.save(member);

emailVerificationService.sendOldMemberConversionToEmail(member);
emailNotificationService.sendOldMemberConversionToEmail(member);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package org.cotato.csquiz.domain.auth.service;

import static org.cotato.csquiz.common.util.EmailUtil.createOldMemberConversionEmailBody;
import static org.cotato.csquiz.common.util.EmailUtil.createSignupApprovedMessageBody;
import static org.cotato.csquiz.common.util.EmailUtil.createSignupRejectionMessageBody;
import static org.cotato.csquiz.domain.auth.constant.EmailConstants.CONVERSION_TO_OM_SUBJECT;
import static org.cotato.csquiz.domain.auth.constant.EmailConstants.SIGNUP_REJECT_SUBJECT;
import static org.cotato.csquiz.domain.auth.constant.EmailConstants.SIGNUP_SUCCESS_SUBJECT;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.cotato.csquiz.common.email.EmailService;
import org.cotato.csquiz.domain.auth.entity.Member;
import org.cotato.csquiz.domain.auth.utils.EmailFormValidator;
import org.springframework.stereotype.Service;

@Slf4j
@Service
@RequiredArgsConstructor
public class EmailNotificationService {

private final EmailService emailService;
private final EmailFormValidator emailFormValidator;

public void sendSignUpApprovedToEmail(Member recipientMember) {
emailFormValidator.validateEmailForm(recipientMember.getEmail());

String successMessage = createSignupApprovedMessageBody(recipientMember);

emailService.sendEmail(recipientMember.getEmail(), successMessage, SIGNUP_SUCCESS_SUBJECT);
log.info("가입 승인 완료 이메일 전송 완료");
}

public void sendSignupRejectionToEmail(Member recipientMember) {
emailFormValidator.validateEmailForm(recipientMember.getEmail());

String rejectMessage = createSignupRejectionMessageBody(recipientMember);

emailService.sendEmail(recipientMember.getEmail(), rejectMessage, SIGNUP_REJECT_SUBJECT);
log.info("가입 승인 거절 이메일 전송 완료");
}

public void sendOldMemberConversionToEmail(Member recipientMember) {
emailFormValidator.validateEmailForm(recipientMember.getEmail());

String conversionMessageBody = createOldMemberConversionEmailBody(recipientMember);

emailService.sendEmail(recipientMember.getEmail(), conversionMessageBody, CONVERSION_TO_OM_SUBJECT);
log.info("OM 전환 이메일 전송 완료");
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
package org.cotato.csquiz.domain.auth.service;

import static org.cotato.csquiz.common.util.EmailUtil.createOldMemberConversionEmailBody;
import static org.cotato.csquiz.common.util.EmailUtil.createSignupApprovedMessageBody;
import static org.cotato.csquiz.common.util.EmailUtil.createSignupRejectionMessageBody;
import static org.cotato.csquiz.common.util.EmailUtil.getVerificationMessageBody;
import static org.cotato.csquiz.domain.auth.constant.EmailConstants.CONVERSION_TO_OM_SUBJECT;
import static org.cotato.csquiz.domain.auth.constant.EmailConstants.SIGNUP_REJECT_SUBJECT;
import static org.cotato.csquiz.domain.auth.constant.EmailConstants.SIGNUP_SUCCESS_SUBJECT;

import java.util.concurrent.ThreadLocalRandom;
import lombok.RequiredArgsConstructor;
Expand All @@ -15,7 +9,6 @@
import org.cotato.csquiz.common.error.exception.AppException;
import org.cotato.csquiz.common.error.ErrorCode;
import org.cotato.csquiz.domain.auth.cache.EmailRedisRepository;
import org.cotato.csquiz.domain.auth.entity.Member;
import org.cotato.csquiz.domain.auth.enums.EmailType;
import org.cotato.csquiz.domain.auth.utils.EmailFormValidator;
import org.cotato.csquiz.domain.auth.cache.VerificationCodeRedisRepository;
Expand Down Expand Up @@ -50,33 +43,6 @@ public void sendVerificationCodeToEmail(EmailType type, String recipient, String
emailService.sendEmail(recipient, verificationMessage, subject);
}

public void sendSignUpApprovedToEmail(Member recipientMember) {
emailFormValidator.validateEmailForm(recipientMember.getEmail());

String successMessage = createSignupApprovedMessageBody(recipientMember);

emailService.sendEmail(recipientMember.getEmail(), successMessage, SIGNUP_SUCCESS_SUBJECT);
log.info("가입 승인 완료 이메일 전송 완료");
}

public void sendSignupRejectionToEmail(Member recipientMember) {
emailFormValidator.validateEmailForm(recipientMember.getEmail());

String rejectMessage = createSignupRejectionMessageBody(recipientMember);

emailService.sendEmail(recipientMember.getEmail(), rejectMessage, SIGNUP_REJECT_SUBJECT);
log.info("가입 승인 거절 이메일 전송 완료");
}

public void sendOldMemberConversionToEmail(Member recipientMember) {
emailFormValidator.validateEmailForm(recipientMember.getEmail());

String conversionMessageBody = createOldMemberConversionEmailBody(recipientMember);

emailService.sendEmail(recipientMember.getEmail(), conversionMessageBody, CONVERSION_TO_OM_SUBJECT);
log.info("OM 전환 이메일 전송 완료");
}

private String getVerificationCode() {
final ThreadLocalRandom random = ThreadLocalRandom.current();
StringBuilder builder = new StringBuilder();
Expand All @@ -86,7 +52,6 @@ private String getVerificationCode() {
return String.valueOf(builder);
}


public void verifyCode(EmailType type, String email, String code) {
String savedVerificationCode = verificationCodeRedisRepository.getByEmail(type, email);
if (savedVerificationCode != null) {
Expand Down

0 comments on commit d9467d4

Please sign in to comment.