Skip to content

Commit

Permalink
[feat] #229 질의응답게시판 이메일 발송 임시 (#231)
Browse files Browse the repository at this point in the history
* [fix] #224 userId hidden

* [fix] #229 질의응답게시판 이메일 발송 임시
  • Loading branch information
JangInho authored Feb 28, 2025
1 parent 24a9d58 commit 5c25b2a
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,14 @@

import java.util.*;

import jakarta.mail.MessagingException;
import jakarta.mail.internet.MimeMessage;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
Expand All @@ -22,6 +27,7 @@

import ussum.homepage.application.post.service.dto.response.postSave.*;

import ussum.homepage.application.user.service.dto.request.OnBoardingEmailRequest;
import ussum.homepage.application.user.service.dto.response.CollegeAndDepartmentResponse;
import ussum.homepage.application.user.service.dto.response.MyPostsResponse;
import ussum.homepage.domain.comment.PostComment;
Expand All @@ -46,6 +52,7 @@
import ussum.homepage.domain.postlike.service.PostReactionManager;
import ussum.homepage.domain.postlike.service.PostReactionReader;
import ussum.homepage.domain.user.User;
import ussum.homepage.domain.user.exception.OnBoardingMessagingException;
import ussum.homepage.domain.user.service.UserReader;
import ussum.homepage.global.common.PageInfo;
import ussum.homepage.global.error.exception.GeneralException;
Expand All @@ -61,7 +68,7 @@
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import static ussum.homepage.global.error.status.ErrorStatus.MEMBER_NOT_FOUND;
import static ussum.homepage.global.error.status.ErrorStatus.*;

@Service
@RequiredArgsConstructor
Expand All @@ -85,7 +92,10 @@ public class PostManageService {
private final PostFactory postFactory;
private final PostAdditionalAppender postAdditionalAppender;
private final PostAdditionalReader postAdditionalReader;
private final JavaMailSender javaMailSender;

@Value("${spring.mail.username}")
private String SENDER_EMAIL_ADDRESS;

private final Map<String, PostDetailFunction<Post, Boolean, Boolean, User, Member, Integer, String, FileResponse, PostOfficialCommentResponse, RightsDetail,? extends PostDetailResDto>> postDetailResponseMap = Map.of(
"공지사항게시판", (post, isAuthor, ignored, user, another_ignored1, another_ignored2, categoryName, fileResponseList, another_ignored3, another_ignored4) -> NoticePostDetailResponse.of(post, isAuthor, user, categoryName, fileResponseList),
Expand Down Expand Up @@ -225,6 +235,11 @@ public PostCreateResponse createBoardPost(Long userId, String boardCode, PostCre
Post post = postAppender.createPost(converPostCreateRequest.toDomain(board, userId));
postAdditionalAppender.createAdditional(converPostCreateRequest,post.getId());
postFileAppender.updatePostIdForIds(converPostCreateRequest.getPostFileList(), post.getId(), FileCategory.자료집아님);

// TODO(inho): 임시로 유나님 계정으로 메일 보내게 함
if (board.getName().equals("질의응답게시판")) {
sendEmail("[질의응답게시판 질문] " + postCreateRequest.getTitle() , postCreateRequest.getContent());
}
return PostCreateResponse.of(post.getId(), boardCode);
}

Expand Down Expand Up @@ -531,4 +546,20 @@ public CollegeAndDepartmentResponse getCollegeAndDepartment(Long userId) {

return CollegeAndDepartmentResponse.of(colleges, departments);
}

public void sendEmail(String subject, String content) {
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
mimeMessageHelper.setTo(SENDER_EMAIL_ADDRESS);
mimeMessageHelper.setFrom(SENDER_EMAIL_ADDRESS);
// mimeMessageHelper.setReplyTo(onBoardingEmailRequest.email());
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(content);

javaMailSender.send(mimeMessage);
} catch (MessagingException | OnBoardingMessagingException onBoardingMessagingException) {
throw new OnBoardingMessagingException(POST_FAIL_MAIL_ERROR);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public enum ErrorStatus implements BaseErrorCode {
//Post 관련 에러
POST_NOT_FOUND(HttpStatus.NOT_FOUND,"POST_001","게시글을 찾을 수 없습니다."),
POST_ONGOING_STATUS_IS_NOT_UPDATED(HttpStatus.INTERNAL_SERVER_ERROR,"POST_002","게시글 진행상태를 업데이트 하지 못했습니다."),
POST_FAIL_MAIL_ERROR(HttpStatus.BAD_REQUEST, "POST_003","메일이 정상적으로 보내지지 않았습니다."),

//RightsDetail 관련 에러
RIGHTS_DETAIL_NOT_FOUND(HttpStatus.NOT_FOUND, "RIGHTS_DETAIL_001", "인권게시물 세부사항을 찾을 수 없습니다."),
Expand Down

0 comments on commit 5c25b2a

Please sign in to comment.