diff --git a/src/main/java/vom/spring/domain/webpush/domain/Fcm.java b/src/main/java/vom/spring/domain/webpush/domain/Fcm.java index 333af7b..03414c7 100644 --- a/src/main/java/vom/spring/domain/webpush/domain/Fcm.java +++ b/src/main/java/vom/spring/domain/webpush/domain/Fcm.java @@ -29,4 +29,8 @@ public class Fcm { @OneToOne @JoinColumn(referencedColumnName = "id", name = "member_id", nullable = false) private Member member; + + public void setFcmToken(String fcmToken) { + this.fcmToken = fcmToken; + } } diff --git a/src/main/java/vom/spring/domain/webpush/service/FcmService.java b/src/main/java/vom/spring/domain/webpush/service/FcmService.java index d7cabde..47f8410 100644 --- a/src/main/java/vom/spring/domain/webpush/service/FcmService.java +++ b/src/main/java/vom/spring/domain/webpush/service/FcmService.java @@ -39,14 +39,19 @@ public FcmService(FcmRepository fcmRepository, MemberRepository memberRepository public void setFcmToken(String fcmToken, Long member_id) { Member member = memberRepository.findById(member_id).get(); + Fcm fcm = fcmRepository.findByMember_id(member_id); - fcmRepository.save( - Fcm.builder() - .createdAt(LocalDateTime.now()) - .fcmToken(fcmToken) - .member(member) - .build() - ); + if (fcm == null) { + fcmRepository.save( + Fcm.builder() + .createdAt(LocalDateTime.now()) + .fcmToken(fcmToken) + .member(member) + .build() + ); + } else { + fcm.setFcmToken(fcmToken); + } } /** @@ -61,6 +66,7 @@ public int sendMessageTo(Long memberId) throws IOException { if (fcm == null) { // log.error("Fcm token not found for memberId: " + memberId); // throw new IllegalArgumentException("Fcm token not found for memberId: " + memberId); + System.out.println("해당 멤버가 알림 설정을 하지 않았습니다."); return 0; } @@ -118,12 +124,13 @@ private String makeMessage(Fcm fcm) throws JsonProcessingException { ObjectMapper om = new ObjectMapper(); + System.out.println(fcm.getFcmToken()); FcmMessageDto fcmMessageDto = FcmMessageDto.builder() .message(FcmMessageDto.Message.builder() .token(fcm.getFcmToken()) .notification(FcmMessageDto.Notification.builder() - .title("테스트") - .body("테스트입니다용") + .title("화상 채팅 요청!") + .body("짱구 님께서 화상 채팅 요청을 보냈어요. 알림을 클릭하면 방에 입장합니다.") .image(null) .build() ).build()).validateOnly(false).build();