diff --git a/src/main/java/com/tiki/server/email/emailsender/entity/MailSender.java b/src/main/java/com/tiki/server/email/emailsender/entity/MailSender.java
index ade98ace..4f61d02e 100644
--- a/src/main/java/com/tiki/server/email/emailsender/entity/MailSender.java
+++ b/src/main/java/com/tiki/server/email/emailsender/entity/MailSender.java
@@ -3,8 +3,10 @@
import com.tiki.server.email.emailsender.exception.EmailSenderException;
import com.tiki.server.email.emailsender.message.ErrorCode;
import jakarta.mail.internet.MimeMessage;
+
import java.util.HashMap;
import java.util.Map;
+
import lombok.RequiredArgsConstructor;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.javamail.JavaMailSender;
@@ -37,9 +39,16 @@ public void sendPasswordChangingMail(final String email, final String code, fina
javaMailSender.send(message);
}
- public void sendTeamInvitationMail(final String email,final String senderName, final String teamName, final long teamId) {
+ public void sendTeamInvitationMail(
+ final String email,
+ final String senderName,
+ final String teamName,
+ final long teamId,
+ final long invitationId
+ ) {
Map map = new HashMap<>();
- map.put("teamId", String.format("%d",teamId));
+ map.put("teamId", String.format("%d", teamId));
+ map.put("invitationId", String.format("%d", invitationId));
map.put("teamName", teamName);
map.put("senderName", senderName);
MimeMessage message = makeMessage(email, MAIL_INVITE_TEAM_MEMBER, INVITE_TEAM_MEMBER_TEMPLATE_NAME, map);
diff --git a/src/main/java/com/tiki/server/email/emailsender/service/EmailSenderService.java b/src/main/java/com/tiki/server/email/emailsender/service/EmailSenderService.java
index 677430fd..c29133c0 100644
--- a/src/main/java/com/tiki/server/email/emailsender/service/EmailSenderService.java
+++ b/src/main/java/com/tiki/server/email/emailsender/service/EmailSenderService.java
@@ -21,6 +21,7 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
@Slf4j
@Service
@@ -56,20 +57,22 @@ public void sendPasswordChanging(final EmailServiceRequest emailServiceRequest)
emailVerificationSaver.save(emailVerification);
}
+ @Transactional
public void createTeamInvitation(final TeamInvitationCreateServiceRequest request) {
MemberTeamManager memberTeamManager = memberTeamManagerFinder.findByMemberIdAndTeamId(request.senderId(),
request.teamId());
memberTeamManager.checkMemberAccessible(Position.ADMIN);
Team team = teamFinder.findById(request.teamId());
checkIsPresentTeamMember(request);
+ TeamInvitation teamInvitation = teamInvitationSaver.createTeamInvitation(
+ TeamInvitation.of(memberTeamManager.getName(), request.teamId(), request.targetEmail()));
mailSender.sendTeamInvitationMail(
request.targetEmail().getEmail(),
memberTeamManager.getName(),
team.getName(),
- request.teamId()
+ request.teamId(),
+ teamInvitation.getId()
);
- teamInvitationSaver.createTeamInvitation(
- TeamInvitation.of(memberTeamManager.getName(), request.teamId(), request.targetEmail()));
}
private void checkIsPresentTeamMember(final TeamInvitationCreateServiceRequest request) {
diff --git a/src/main/resources/templates/invitation.html b/src/main/resources/templates/invitation.html
index 1f39262f..12bc6cfa 100644
--- a/src/main/resources/templates/invitation.html
+++ b/src/main/resources/templates/invitation.html
@@ -65,7 +65,7 @@
티키에서 더 편리해진 동아리 관리를 경험해보세요.