From 3bf564b3e4c26bc00731c450e4b7f411894a8c7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AA=85=EC=A4=80?= <86913355+mjj111@users.noreply.github.com> Date: Fri, 18 Oct 2024 03:03:35 +0900 Subject: [PATCH 1/5] =?UTF-8?q?style=20(GreatService)=20:=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20import=20?= =?UTF-8?q?=EB=AC=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../board/service/CommentEventPublisher.java | 41 ------------------- .../backend/board/service/GreatService.java | 1 - .../backend/global/BaseIntegrationTest.java | 3 +- 3 files changed, 2 insertions(+), 43 deletions(-) delete mode 100644 src/main/java/com/aliens/backend/board/service/CommentEventPublisher.java diff --git a/src/main/java/com/aliens/backend/board/service/CommentEventPublisher.java b/src/main/java/com/aliens/backend/board/service/CommentEventPublisher.java deleted file mode 100644 index b015f69b..00000000 --- a/src/main/java/com/aliens/backend/board/service/CommentEventPublisher.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.aliens.backend.board.service; - -import com.aliens.backend.board.controller.dto.request.ChildCommentCreateRequest; -import com.aliens.backend.board.controller.dto.request.ParentCommentCreateRequest; -import com.aliens.backend.board.domain.Board; -import com.aliens.backend.notification.controller.dto.NotificationRequest; -import org.springframework.context.ApplicationEventPublisher; -import org.springframework.stereotype.Component; - -import java.util.List; - -@Component -public class CommentEventPublisher { - private final ApplicationEventPublisher eventPublisher; - - public CommentEventPublisher(ApplicationEventPublisher eventPublisher) { - this.eventPublisher = eventPublisher; - } - - public void sendParentCommentNotification(Board board, - ParentCommentCreateRequest request) { - - eventPublisher.publishEvent(new NotificationRequest( - board.getCategory(), - board.getId(), - "\"" + request.content() + "\" 라는 댓글이 달렸습니다.", - List.of(board.getWriterId()))); - } - - public void sendChildCommentNotification(Board board, - ChildCommentCreateRequest request, - Long parentCommentMemberId) { - System.out.println("작성자 Id" + board.getWriterId()); - System.out.println("부모댓글 Id" + parentCommentMemberId); - eventPublisher.publishEvent(new NotificationRequest( - board.getCategory(), - board.getId(), - "\"" + request.content() + "\" 라는 댓글이 달렸습니다.", - List.of(board.getWriterId(), parentCommentMemberId))); - } -} diff --git a/src/main/java/com/aliens/backend/board/service/GreatService.java b/src/main/java/com/aliens/backend/board/service/GreatService.java index 2986443a..27e95370 100644 --- a/src/main/java/com/aliens/backend/board/service/GreatService.java +++ b/src/main/java/com/aliens/backend/board/service/GreatService.java @@ -17,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; -import java.util.Optional; @Service public class GreatService { diff --git a/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java b/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java index 810d55e6..9d426161 100644 --- a/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java +++ b/src/test/java/com/aliens/backend/global/BaseIntegrationTest.java @@ -1,5 +1,6 @@ package com.aliens.backend.global; +import com.aliens.backend.auth.domain.Member; import com.aliens.backend.chat.controller.ChatController; import com.aliens.backend.chat.domain.repository.MessageRepository; import com.aliens.backend.chat.service.model.ChatAuthValidator; @@ -49,7 +50,7 @@ void setUpSpy() { //FCM doNothing().when(fcmSender).sendChatMessage(any()); doNothing().when(fcmSender).sendMatchedNotification(any()); - doNothing().when(fcmSender).sendBoardNotification(any(),any()); + doNothing().when(fcmSender).sendBoardNotification(any(), (Member)any()); //AWS S3File tmpFile = new S3File(DummyGenerator.GIVEN_FILE_NAME, DummyGenerator.GIVEN_FILE_URL); From 5e1848b8ed592283fba5c60b8fed868153ed2e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AA=85=EC=A4=80?= <86913355+mjj111@users.noreply.github.com> Date: Fri, 18 Oct 2024 03:05:04 +0900 Subject: [PATCH 2/5] =?UTF-8?q?fix=20(NotificationService)=20:=20=ED=86=A0?= =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EC=8B=B1=20=EB=B0=A9=EB=B2=95=EC=9D=84=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/NotificationService.java | 25 +++++++------------ .../notification/NotificationServiceTest.java | 10 ++++---- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/aliens/backend/notification/service/NotificationService.java b/src/main/java/com/aliens/backend/notification/service/NotificationService.java index 774653a2..5f5d38f0 100644 --- a/src/main/java/com/aliens/backend/notification/service/NotificationService.java +++ b/src/main/java/com/aliens/backend/notification/service/NotificationService.java @@ -42,18 +42,23 @@ public NotificationService(final NotificationRepository notificationRepository, @Transactional public void registerFcmToken(final LoginMember loginMember, final String fcmToken) { Member member = getMember(loginMember.memberId()); + String parsedFcmToken = parseFcmToken(fcmToken); Optional optionalFcmToken = fcmTokenRepository.findByMember(member); if (optionalFcmToken.isPresent()) { FcmToken fcmTokenEntity = optionalFcmToken.get(); - fcmTokenEntity.changeToken(fcmToken); + fcmTokenEntity.changeToken(parsedFcmToken); return; } - FcmToken fcmTokenEntity = FcmToken.of(member, fcmToken); + FcmToken fcmTokenEntity = FcmToken.of(member, parsedFcmToken); fcmTokenRepository.save(fcmTokenEntity); } + private String parseFcmToken(final String fcmToken) { + return fcmToken.substring(13, fcmToken.length()-2); + } + @Transactional(readOnly = true) public List getNotifications(final LoginMember loginMember) { List notifications = notificationRepository.findNotificationsByMemberId(loginMember.memberId()); @@ -79,24 +84,12 @@ private Member getMember(final Long memberId) { return memberRepository.findById(memberId).orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); } - @EventListener + @Transactional public void saveNotification(NotificationRequest request) { - List tokens = new ArrayList<>(); - - for(Long memberId : request.memberIds()) { - Member member = getMember(memberId); + for(Member member : request.members()) { Notification notification = Notification.of(request, member); - notificationRepository.save(notification); - - FcmToken fcmToken = getFcmTokenByMember(member); - - if(fcmToken.isAccepted()) { - tokens.add(fcmToken.getToken()); - } } - - fcmSender.sendBoardNotification(request,tokens); } private FcmToken getFcmTokenByMember(final Member member) { diff --git a/src/test/java/com/aliens/backend/notification/NotificationServiceTest.java b/src/test/java/com/aliens/backend/notification/NotificationServiceTest.java index 8a0b17a4..69a4e6e5 100644 --- a/src/test/java/com/aliens/backend/notification/NotificationServiceTest.java +++ b/src/test/java/com/aliens/backend/notification/NotificationServiceTest.java @@ -42,14 +42,14 @@ void setUp() { @DisplayName("fcm토큰 저장") void registerFcmTokenTest() { //Given - String givenToken = "fcmTokenExample"; - + String givenToken = "{\"fcmToken\":\"fcmTokenExample\"}"; + String expectedToken = "fcmTokenExample"; //When notificationService.registerFcmToken(loginMember, givenToken); //Then FcmToken result = fcmTokenRepository.findAll().get(0); - Assertions.assertEquals(result.getToken(), givenToken); + Assertions.assertEquals(expectedToken, result.getToken()); } @ParameterizedTest @@ -84,7 +84,7 @@ void readNotificationTest() { @DisplayName("알림 저장") void saveNotificationTest() { //Given - NotificationRequest request = new NotificationRequest(BoardCategory.ALL, 1L, DummyGenerator.GIVEN_COMMENT_CONTENT, List.of(1L)); + NotificationRequest request = new NotificationRequest(BoardCategory.ALL, 1L, DummyGenerator.GIVEN_COMMENT_CONTENT, List.of(dummyGenerator.generateSingleMember())); //When notificationService.saveNotification(request); @@ -93,4 +93,4 @@ void saveNotificationTest() { List result = notificationRepository.findAll(); Assertions.assertEquals(result.size(), 1); } -} +} \ No newline at end of file From 92051a51c7a2abefb8c63693f1529838969edb08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AA=85=EC=A4=80?= <86913355+mjj111@users.noreply.github.com> Date: Fri, 18 Oct 2024 03:07:57 +0900 Subject: [PATCH 3/5] =?UTF-8?q?fix=20(FcmSender)=20:=20Single=20=EC=A0=84?= =?UTF-8?q?=EC=86=A1=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/board/service/CommentService.java | 56 +++++++++++++---- .../controller/dto/NotificationRequest.java | 3 +- .../notification/service/FcmSender.java | 60 +++++++++---------- .../aliens/backend/global/DummyGenerator.java | 7 ++- 4 files changed, 76 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/aliens/backend/board/service/CommentService.java b/src/main/java/com/aliens/backend/board/service/CommentService.java index 5f31f14a..87d4c25d 100644 --- a/src/main/java/com/aliens/backend/board/service/CommentService.java +++ b/src/main/java/com/aliens/backend/board/service/CommentService.java @@ -15,12 +15,16 @@ import com.aliens.backend.global.exception.RestApiException; import com.aliens.backend.global.response.error.BoardError; import com.aliens.backend.global.response.error.MemberError; +import com.aliens.backend.notification.controller.dto.NotificationRequest; +import com.aliens.backend.notification.service.FcmSender; +import com.aliens.backend.notification.service.NotificationService; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; +import java.util.Objects; @Service public class CommentService { @@ -28,49 +32,63 @@ public class CommentService { private final MemberRepository memberRepository; private final BoardRepository boardRepository; private final CommentCustomRepository commentCustomRepository; - private final CommentEventPublisher eventPublisher; + private final FcmSender fcmSender; + private final NotificationService notificationService; public CommentService(final CommentRepository commentRepository, final MemberRepository memberRepository, final BoardRepository boardRepository, final CommentCustomRepository commentCustomRepository, - final CommentEventPublisher eventPublisher) { + final FcmSender fcmSender, NotificationService notificationService) { this.commentRepository = commentRepository; this.memberRepository = memberRepository; this.boardRepository = boardRepository; this.commentCustomRepository = commentCustomRepository; - this.eventPublisher = eventPublisher; + this.fcmSender = fcmSender; + this.notificationService = notificationService; } @Transactional public void postParentComment(final ParentCommentCreateRequest request, final LoginMember loginMember) { - Member member = getMember(loginMember); + Member member = getMember(loginMember.memberId()); Board board = findBoard(request.boardId()); Comment comment = Comment.parentOf(request.content(), board, member); board.addComment(comment); commentRepository.save(comment); + sendNotification(comment, board); + } - if(!comment.isWriter(board.getWriterId())) { - eventPublisher.sendParentCommentNotification(board, request); - } + private void sendNotification(Comment comment, Board board) { + if(comment.isWriter(board.getWriterId())) return; + + Member writer = getMember(board.getWriterId()); + + NotificationRequest request = makeNotificationRequest(board, comment, List.of(writer)); + notificationService.saveNotification(request); + + fcmSender.sendBoardNotification(comment, writer); + } + + private NotificationRequest makeNotificationRequest(Board board, Comment comment, List members) { + return new NotificationRequest(board.getCategory(),board.getId(),comment.getContent(), members); } private Board findBoard(final Long boardId) { return boardRepository.findById(boardId).orElseThrow(() -> new RestApiException(BoardError.INVALID_BOARD_ID)); } - private Member getMember(final LoginMember loginMember) { - return memberRepository.findById(loginMember.memberId()).orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); + private Member getMember(final Long memberId) { + return memberRepository.findById(memberId).orElseThrow(() -> new RestApiException(MemberError.NULL_MEMBER)); } @Transactional public void postChildComment(final ChildCommentCreateRequest request, final LoginMember loginMember) { - Member member = getMember(loginMember); + Member member = getMember(loginMember.memberId()); Board board = findBoard(request.boardId()); Comment parentComment = findComment(request); @@ -79,9 +97,21 @@ public void postChildComment(final ChildCommentCreateRequest request, commentRepository.save(childComment); - if(!parentComment.isWriter(member.getId())) { - eventPublisher.sendChildCommentNotification(board, request, parentComment.getWriterId()); - } + sendNotification(childComment, board, parentComment); + } + + private void sendNotification(Comment child, Board board, Comment parent) { + if(child.isWriter(board.getWriterId())) return; + if(Objects.equals(parent.getWriterId(), child.getWriterId())) return; + + Member boardWriter = getMember(board.getWriterId()); + Member parentWriter = getMember(parent.getWriterId()); + List writers = List.of(boardWriter, parentWriter); + + NotificationRequest request = makeNotificationRequest(board, child, writers); + notificationService.saveNotification(request); + + fcmSender.sendBoardNotification(child, writers); } private Comment findComment(ChildCommentCreateRequest request) { diff --git a/src/main/java/com/aliens/backend/notification/controller/dto/NotificationRequest.java b/src/main/java/com/aliens/backend/notification/controller/dto/NotificationRequest.java index beb3ccdc..15e81b65 100644 --- a/src/main/java/com/aliens/backend/notification/controller/dto/NotificationRequest.java +++ b/src/main/java/com/aliens/backend/notification/controller/dto/NotificationRequest.java @@ -1,5 +1,6 @@ package com.aliens.backend.notification.controller.dto; +import com.aliens.backend.auth.domain.Member; import com.aliens.backend.board.domain.enums.BoardCategory; import java.util.List; @@ -7,5 +8,5 @@ public record NotificationRequest(BoardCategory boardCategory, Long boardId, String content, - List memberIds) { + List members) { } diff --git a/src/main/java/com/aliens/backend/notification/service/FcmSender.java b/src/main/java/com/aliens/backend/notification/service/FcmSender.java index 53520733..6b19bee5 100644 --- a/src/main/java/com/aliens/backend/notification/service/FcmSender.java +++ b/src/main/java/com/aliens/backend/notification/service/FcmSender.java @@ -2,19 +2,17 @@ import com.aliens.backend.auth.domain.Member; import com.aliens.backend.auth.domain.repository.MemberRepository; +import com.aliens.backend.board.domain.Comment; import com.aliens.backend.global.response.error.CommonError; import com.aliens.backend.global.exception.RestApiException; import com.aliens.backend.global.response.error.MemberError; -import com.aliens.backend.notification.controller.dto.NotificationRequest; import com.aliens.backend.notification.domain.repository.FcmTokenRepository; import com.google.firebase.messaging.*; import com.aliens.backend.global.response.log.InfoLogResponse; import com.aliens.backend.global.response.success.NotificationSuccess; -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.firebase.messaging.FirebaseMessaging; import com.google.firebase.messaging.Message; -import com.google.firebase.messaging.MulticastMessage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -24,8 +22,9 @@ @Component public class FcmSender { - private final static String MATCHING_SUCCESS_MESSAGE_TITLE = "매칭이 완료되었습니다!"; - private final static String MATCHING_SUCCESS_MESSAGE_BODY = "파트너를 확인해보세요!"; + private final static String COMMENT_BODY = "새로운 댓글이 달렸어요 : "; + private final static String FRIENDSHIP_TITLE = "Friendship"; + private final static String MATCHING_SUCCESS_MESSAGE_BODY = "Friendship 매칭이 완료되었습니다. 파트너를 확인해보세요!"; private final MemberRepository memberRepository; private final FcmTokenRepository fcmTokenRepository; private final ObjectMapper objectMapper; @@ -40,38 +39,33 @@ public FcmSender(MemberRepository memberRepository, this.objectMapper = objectMapper; } - public void sendBoardNotification(NotificationRequest request, List tokens) { - MulticastMessage message = makeMessage(request, tokens); - sendMultiFcm(message); - } - - private MulticastMessage makeMessage(NotificationRequest request, - List tokens) { - var notification = com.google.firebase.messaging.Notification.builder() - .setTitle(String.valueOf(request.boardCategory())) - .setBody(request.content()). - build(); + public void sendBoardNotification(Comment comment, Member writer) { + Notification notification = Notification.builder() + .setTitle(FRIENDSHIP_TITLE) + .setBody(COMMENT_BODY + comment.getContent()) + .build(); - return MulticastMessage.builder() + String token = findFcmTokenByMember(writer); + Message message = Message.builder() + .setToken(token) .setNotification(notification) - .addAllTokens(tokens) .build(); - + sendSingleFcm(message); } - private void sendMultiFcm(MulticastMessage message) { - try { - FirebaseMessaging.getInstance().sendMulticastAsync(message); - InfoLogResponse response = InfoLogResponse.from(NotificationSuccess.SEND_MULTI_NOTIFICATION_SUCCESS); - log.info(objectMapper.writeValueAsString(response)); - } catch (Exception e) { - InfoLogResponse response = InfoLogResponse.from(CommonError.FCM_MESSAGING_ERROR); - try { - log.error(objectMapper.writeValueAsString(response)); - } catch (JsonProcessingException ex) { - throw new RuntimeException(ex); - } - throw new RestApiException(CommonError.FCM_MESSAGING_ERROR); + public void sendBoardNotification(Comment comment, List writers) { + Notification notification = Notification.builder() + .setTitle(FRIENDSHIP_TITLE) + .setBody(COMMENT_BODY + comment.getContent()) + .build(); + + for(Member writer : writers) { + String token = findFcmTokenByMember(writer); + Message message = Message.builder() + .setToken(token) + .setNotification(notification) + .build(); + sendSingleFcm(message); } } @@ -114,7 +108,7 @@ private void sendSingleFcm(Message message) { public void sendMatchedNotification(Set members) { List tokens = members.stream().map(this::findFcmTokenByMember).toList(); Notification notification = Notification.builder() - .setTitle(MATCHING_SUCCESS_MESSAGE_TITLE) + .setTitle(FRIENDSHIP_TITLE) .setBody(MATCHING_SUCCESS_MESSAGE_BODY) .build(); diff --git a/src/test/java/com/aliens/backend/global/DummyGenerator.java b/src/test/java/com/aliens/backend/global/DummyGenerator.java index 32888c06..46779f61 100644 --- a/src/test/java/com/aliens/backend/global/DummyGenerator.java +++ b/src/test/java/com/aliens/backend/global/DummyGenerator.java @@ -291,14 +291,15 @@ private BoardImage makeBoardImage(Board board) { public void generateNotificationWithCount(final Member member, final int count) { for(int i = 0; i < count; i++) { - NotificationRequest request = new NotificationRequest(BoardCategory.ALL, 1L, GIVEN_COMMENT_CONTENT,List.of(1L)); + NotificationRequest request = new NotificationRequest(BoardCategory.ALL, 1L, GIVEN_COMMENT_CONTENT,List.of(generateSingleMember())); Notification notification = Notification.of(request,member); notificationRepository.save(notification); } } - public Notification generateSingleNotification(final Member member) { - NotificationRequest request = new NotificationRequest(BoardCategory.ALL, 1L, GIVEN_COMMENT_CONTENT,List.of(1L)); + public Notification generateSingleNotification(Member member) { + Member opposite = generateSingleMember(); + NotificationRequest request = new NotificationRequest(BoardCategory.ALL, 1L, GIVEN_COMMENT_CONTENT,List.of(opposite)); Notification notification = Notification.of(request,member); return notificationRepository.save(notification); } From 0f36eddc17dd094f2b2550d9e4b124edc2451fae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AA=85=EC=A4=80?= <86913355+mjj111@users.noreply.github.com> Date: Fri, 18 Oct 2024 03:16:33 +0900 Subject: [PATCH 4/5] =?UTF-8?q?fix=20(MemberInfoService)=20:=20TCP=20?= =?UTF-8?q?=EC=9E=AC=EC=9A=94=EC=B2=AD=EC=9C=BC=EB=A1=9C=20=EC=9D=B8?= =?UTF-8?q?=ED=95=9C=20=EC=A4=91=EB=B3=B5=ED=9A=8C=EC=9B=90=20=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EB=B0=A9=EC=A7=80=20#185?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/response/MemberResponse.java | 2 +- .../member/sevice/MemberInfoService.java | 11 ++++++++-- .../backend/docs/MemberRestDocsTest.java | 20 ++++++++++++++----- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/aliens/backend/member/controller/dto/response/MemberResponse.java b/src/main/java/com/aliens/backend/member/controller/dto/response/MemberResponse.java index c94b8483..53a8cf3c 100644 --- a/src/main/java/com/aliens/backend/member/controller/dto/response/MemberResponse.java +++ b/src/main/java/com/aliens/backend/member/controller/dto/response/MemberResponse.java @@ -1,7 +1,7 @@ package com.aliens.backend.member.controller.dto.response; public enum MemberResponse { - + ALREADY_SIGN_UP("이미 회원 가입되어 있습니다."), SIGN_UP_SUCCESS("회원가입이 완료되었습니다."), WITHDRAW_SUCCESS("회원 탈퇴되었습니다."), TEMPORARY_PASSWORD_GENERATED_SUCCESS("임시 비밀번호가 발급되었습니다. 이메일을 확인해주세요."), diff --git a/src/main/java/com/aliens/backend/member/sevice/MemberInfoService.java b/src/main/java/com/aliens/backend/member/sevice/MemberInfoService.java index 72cca297..90b0483e 100644 --- a/src/main/java/com/aliens/backend/member/sevice/MemberInfoService.java +++ b/src/main/java/com/aliens/backend/member/sevice/MemberInfoService.java @@ -62,7 +62,8 @@ public MemberInfoService(final AwsS3Uploader uploader, @Transactional public String signUp(final SignUpRequest request, final MultipartFile profileImage) { - checkEmail(request.email()); + String result = checkEmail(request.email()); + if(result.equals(MemberResponse.ALREADY_SIGN_UP.getMessage())) return MemberResponse.SIGN_UP_SUCCESS.getMessage(); MemberImage memberImage = saveImageToS3(profileImage); @@ -77,7 +78,7 @@ public String signUp(final SignUpRequest request, final MultipartFile profileIma return MemberResponse.SIGN_UP_SUCCESS.getMessage(); } - private void checkEmail(final String email) { + private String checkEmail(final String email) { Optional emailEntity = emailAuthenticationRepository.findByEmail(email); if (emailEntity.isEmpty()) { throw new RestApiException(EmailError.NULL_EMAIL); @@ -85,6 +86,12 @@ private void checkEmail(final String email) { if (!emailEntity.get().isAuthenticated()) { throw new RestApiException(EmailError.NOT_AUTHENTICATED_EMAIL); } + + if(memberRepository.findByEmail(email).isPresent()) { + return MemberResponse.ALREADY_SIGN_UP.getMessage(); + } + + return MemberResponse.SIGN_UP_SUCCESS.getMessage(); } private MemberImage saveImageToS3(final MultipartFile profileImage) { diff --git a/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java b/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java index d3dfb909..7b278df4 100644 --- a/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java +++ b/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java @@ -33,13 +33,10 @@ class MemberRestDocsTest extends BaseRestDocsTest { @Test @DisplayName("API - 회원가입") void signUp() throws Exception { - final SignUpRequest request = createSignUpRequest(); + final SignUpRequest request = createSampleSignUpRequest(); - final String message = MemberResponse.SIGN_UP_SUCCESS.getMessage(); - SuccessResponse response = SuccessResponse.of(MemberSuccess.SIGN_UP_SUCCESS, message); MockMultipartFile multipartFile = createMultipartFile(); - - final MockMultipartFile requestMultipartFile = new MockMultipartFile("request", + MockMultipartFile requestMultipartFile = new MockMultipartFile("request", null, "application/json", objectMapper.writeValueAsString(request).getBytes(StandardCharsets.UTF_8)); dummyGenerator.authenticateEmail(request.email()); @@ -305,4 +302,17 @@ private MockMultipartFile createMultipartFile() { "image/png", "test data".getBytes()); } + + private SignUpRequest createSampleSignUpRequest() { + SignUpRequest signUpRequest = new SignUpRequest("tmp1@example.com", + "password", + "tmpName", + "INTJ", + "MALE", + "KOREA", + "1998-11-25", + "반갑습니다" + ); + return signUpRequest; + } } \ No newline at end of file From 1a2e5e2b9eb95a3e57308a6e018b8fd581de2a8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AA=85=EC=A4=80?= <86913355+mjj111@users.noreply.github.com> Date: Fri, 18 Oct 2024 03:36:11 +0900 Subject: [PATCH 5/5] =?UTF-8?q?style=20:=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notification/service/NotificationService.java | 7 +------ .../com/aliens/backend/docs/MemberRestDocsTest.java | 13 ------------- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/src/main/java/com/aliens/backend/notification/service/NotificationService.java b/src/main/java/com/aliens/backend/notification/service/NotificationService.java index e7a320cf..70ce0d91 100644 --- a/src/main/java/com/aliens/backend/notification/service/NotificationService.java +++ b/src/main/java/com/aliens/backend/notification/service/NotificationService.java @@ -7,18 +7,15 @@ import com.aliens.backend.global.response.error.CommonError; import com.aliens.backend.global.response.error.MemberError; import com.aliens.backend.global.response.error.NotificationError; -import com.aliens.backend.notification.domain.NotificationType; import com.aliens.backend.notification.domain.repository.NotificationRepository; import com.aliens.backend.notification.controller.dto.NotificationRequest; import com.aliens.backend.notification.controller.dto.NotificationResponse; import com.aliens.backend.notification.domain.FcmToken; import com.aliens.backend.notification.domain.repository.FcmTokenRepository; import com.aliens.backend.notification.domain.Notification; -import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -27,16 +24,14 @@ public class NotificationService { private final NotificationRepository notificationRepository; private final FcmTokenRepository fcmTokenRepository; private final MemberRepository memberRepository; - private final FcmSender fcmSender; public NotificationService(final NotificationRepository notificationRepository, final FcmTokenRepository fcmTokenRepository, - final MemberRepository memberRepository, FcmSender fcmSender) { + final MemberRepository memberRepository) { this.notificationRepository = notificationRepository; this.fcmTokenRepository = fcmTokenRepository; this.memberRepository = memberRepository; - this.fcmSender = fcmSender; } @Transactional diff --git a/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java b/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java index 2e4c8ea4..fc7da5c1 100644 --- a/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java +++ b/src/test/java/com/aliens/backend/docs/MemberRestDocsTest.java @@ -315,17 +315,4 @@ private MockMultipartFile createMultipartFile() { "image/png", "test data".getBytes()); } - - private SignUpRequest createSampleSignUpRequest() { - SignUpRequest signUpRequest = new SignUpRequest("tmp1@example.com", - "password", - "tmpName", - "INTJ", - "MALE", - "KOREA", - "1998-11-25", - "반갑습니다" - ); - return signUpRequest; - } } \ No newline at end of file