Skip to content

Commit

Permalink
fix: case where fcmToken already exists
Browse files Browse the repository at this point in the history
  • Loading branch information
okodeee committed Jun 13, 2024
1 parent 18e04c5 commit 3618c19
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
4 changes: 4 additions & 0 deletions src/main/java/vom/spring/domain/webpush/domain/Fcm.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
25 changes: 16 additions & 9 deletions src/main/java/vom/spring/domain/webpush/service/FcmService.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}

/**
Expand All @@ -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;
}

Expand Down Expand Up @@ -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();
Expand Down

0 comments on commit 3618c19

Please sign in to comment.