Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[hotfix] 리뷰요청 메일 양식에 리뷰 작성 url 추가 #162

Merged
merged 1 commit into from
Oct 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ public void sendReviewRequestEmail() throws MessagingException {
for(Meetup meetup : meetups) {
Member kuddy = meetup.getKuddy();
Member traveler = meetup.getTraveler();
sendReviewRequestEmail(kuddy, traveler);
sendReviewRequestEmail(traveler, kuddy);
sendReviewRequestEmail(kuddy, traveler, meetup.getId());
sendReviewRequestEmail(traveler, kuddy, meetup.getId());
}
}

Expand All @@ -58,15 +58,15 @@ public void sendMeetupPayedMail(String kuddyEmail, String travelerEmail, String
sendMeetupPayedEmail(travelerEmail, travelerNickname, kuddyNickname);

}
private void sendReviewRequestEmail(Member receiver, Member partner) throws MessagingException {
public void sendReviewRequestEmail(Member receiver, Member partner, Long meetupId) throws MessagingException { //TODO: private으로 수정
String emailSubject = "[KUDDY] How was the meet up yesterday? Please write a review.";

MimeMessage kuddyMessage = javaMailSender.createMimeMessage();
MimeMessageHelper kuddyMessageHelper = new MimeMessageHelper(kuddyMessage, false, "UTF-8");

kuddyMessageHelper.setTo(receiver.getEmail());
kuddyMessageHelper.setSubject(emailSubject);
kuddyMessageHelper.setText(setContext(receiver.getNickname(), partner.getNickname()), true);
kuddyMessageHelper.setText(setContext(receiver.getNickname(), partner.getNickname(), meetupId), true);
javaMailSender.send(kuddyMessage);
}

Expand All @@ -81,10 +81,11 @@ private void sendMeetupPayedEmail(String receiverEmail, String receiverNickname,
javaMailSender.send(kuddyMessage);
}

public String setContext(String receiver, String partner){
public String setContext(String receiver, String partner, Long meetupId){
Context context = new Context();
context.setVariable("receiver", receiver);
context.setVariable("partner", partner);
context.setVariable("meetupId", meetupId);
return templateEngine.process("email-form.html",context);
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아래는 코드 패치입니다. 이에 대한 간단한 코드 리뷰와 버그 위험 및 개선 제안을 도와드리겠습니다.

@@ -46,8 +46,8 @@ public void sendReviewRequestEmail() throws MessagingException {
     for(Meetup meetup : meetups) {
         Member kuddy = meetup.getKuddy();
         Member traveler = meetup.getTraveler();
-        sendReviewRequestEmail(kuddy, traveler);
-        sendReviewRequestEmail(traveler, kuddy);
+        sendReviewRequestEmail(kuddy, traveler, meetup.getId());
+        sendReviewRequestEmail(traveler, kuddy, meetup.getId());
     }
 }

@@ -58,15 +58,15 @@ public void sendMeetupPayedMail(String kuddyEmail, String travelerEmail, String
     sendMeetupPayedEmail(travelerEmail, travelerNickname, kuddyNickname);

 }
-    private void sendReviewRequestEmail(Member receiver, Member partner) throws MessagingException {
+public void sendReviewRequestEmail(Member receiver, Member partner, Long meetupId) throws MessagingException { //TODO: private으로 수정
     String emailSubject = "[KUDDY] How was the meet up yesterday? Please write a review.";

     MimeMessage kuddyMessage = javaMailSender.createMimeMessage();
     MimeMessageHelper kuddyMessageHelper = new MimeMessageHelper(kuddyMessage, false, "UTF-8");

     kuddyMessageHelper.setTo(receiver.getEmail());
     kuddyMessageHelper.setSubject(emailSubject);
-    kuddyMessageHelper.setText(setContext(receiver.getNickname(), partner.getNickname()), true);
+    kuddyMessageHelper.setText(setContext(receiver.getNickname(), partner.getNickname(), meetupId), true);
     javaMailSender.send(kuddyMessage);
 }

@@ -81,10 +81,11 @@ private void sendMeetupPayedEmail(String receiverEmail, String receiverNickname,
     javaMailSender.send(kuddyMessage);
 }

-    public String setContext(String receiver, String partner){
+public String setContext(String receiver, String partner, Long meetupId){
     Context context = new Context();
     context.setVariable("receiver", receiver);
     context.setVariable("partner", partner);
+    context.setVariable("meetupId", meetupId);
     return templateEngine.process("email-form.html",context);
 }

리뷰어 메소드에서 sendReviewRequestEmail은 두 회원 간의 서로에게 이메일을 보내는 역할입니다. sendReviewRequestEmail 메소드 안에서는 이메일이 전송될 관련 멤버, 제목 및 텍스트 콘텐츠가 설정됩니다. 번역된 HTML 템플릿(email-form.html)에 대한 변수도 설정됩니다.

개선 제안:

  • sendReviewRequestEmail 메소드를 private으로 변경하는 것이 좋습니다. 외부 클래스나 외부 패키지에서 직접적으로 액세스하지 않아도 되기 때문입니다.
  • setContext 메소드와 sendReviewRequestEmail 메소드에서 meetupId 변수를 받고 사용하므로, setContext 메소드의 인자에도 meetupId를 추가해야 합니다.
  • 주석에서 언급한 sendReviewRequestEmail 메소드의 접근 제어 수정(TODO: private으로 수정)에 대해 작업이 필요합니다.
  • 다른 메소드(sendMeetupPayedMailsendMeetupPayedEmail)에서 전달되는 kuddyNickname, travelerNickname 변수를 사용하지 않고 있는데, 이 부분은 제거하거나 사용할 수 있도록 수정하는 것이 좋을 수 있습니다.

Expand Down
4 changes: 2 additions & 2 deletions api-server/src/main/resources/templates/email-form.html
Original file line number Diff line number Diff line change
Expand Up @@ -239,9 +239,9 @@
<table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="border-collapse:separate;line-height:100%;">
<tr>
<td align="center" bgcolor="#2F67F6" role="presentation" style="border:none;border-radius:3px;color:#ffffff;cursor:auto;padding:15px 25px;" valign="middle">
<p style="background:#2F67F6;color:#ffffff;font-family:'Helvetica Neue',Arial,sans-serif;font-size:15px;font-weight:normal;line-height:120%;Margin:0;text-decoration:none;text-transform:none;">
<a th:href="@{https://kuddy.co.kr/my/write-review/{meetupId}(meetupId = ${meetupId})}" style="background-color: rgba(0, 0, 0, 0); color: #fff; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 15px; font-weight: normal; line-height: 120%; Margin: 0; text-decoration: none; text-transform: none;">
Write a Review
</p>
</a>
</td>
</tr>
</table>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

해당 코드 패치를 간단하게 검토해보겠습니다.

이 코드 패치의 변경 사항은 특정 링크를 감싸는 HTML 요소를 <p> 태그에서 <a> 태그로 변경합니다. 이로 인해 "Write a Review"라는 텍스트가 링크로 바뀌게 됩니다.

향상 사항 및 버그 리스크:

  • 가독성: 코드 변경 후, th:href 속성에 사용된 식과 변수(meetupId)를 이해하기 쉽도록 주석으로 설명하는 것이 좋을 것 같습니다.
  • 접근성: 배경색과 글자색 조합이 웹 접근성 가이드라인을 따르고 있는지 확인해야 합니다.
  • URL 보안: 해당 링크가 안전한지, 적절한 대상 페이지로 연결되는지 확인하는 것이 중요합니다.

이 외에도 코드 자체 외에 버그나 개선사항을 평가하기 위해서는 목적 및 문맥을 더 이해해야 할 필요가 있습니다.

Expand Down