diff --git a/src/main/java/io/sobok/SobokSobok/external/firebase/FCMPushService.java b/src/main/java/io/sobok/SobokSobok/external/firebase/FCMPushService.java index a94239f..66313d9 100644 --- a/src/main/java/io/sobok/SobokSobok/external/firebase/FCMPushService.java +++ b/src/main/java/io/sobok/SobokSobok/external/firebase/FCMPushService.java @@ -55,6 +55,44 @@ public void sendNotificationByToken(PushNotificationRequest request) { sendMessageToFirebase(message, user.getId()); } + public void sendNotificationByTokenWithFriendData(PushNotificationRequest request) { + User user = UserServiceUtil.findUserById(userRepository, request.userId()); + + Message message = Message.builder() + .setToken(user.getDeviceToken()) + .setNotification( + Notification.builder() + .setTitle(request.title()) + .setBody(request.body()) + .build() + ) + .setAndroidConfig( + AndroidConfig.builder() + .setNotification( + AndroidNotification.builder() + .setTitle(request.title()) + .setBody(request.body()) + .setClickAction("push_click") + .build() + ) + .build() + ) + .setApnsConfig( + ApnsConfig.builder() + .setAps(Aps.builder() + .setCategory("push_click") + .build()) + .build() + ) + .putData("title", request.title()) + .putData("body", request.body() == null ? "" : request.body()) + .putData("type", request.type()) + .putData("friendId", request.data().get("friendId")) + .build(); + + sendMessageToFirebase(message, user.getId()); + } + private void sendMessageToFirebase(Message message, Long userId) { try { firebaseMessaging.send(message); diff --git a/src/main/java/io/sobok/SobokSobok/friend/application/FriendService.java b/src/main/java/io/sobok/SobokSobok/friend/application/FriendService.java index ee3089e..43b857f 100644 --- a/src/main/java/io/sobok/SobokSobok/friend/application/FriendService.java +++ b/src/main/java/io/sobok/SobokSobok/friend/application/FriendService.java @@ -29,6 +29,7 @@ import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; @@ -150,16 +151,17 @@ public HandleFriendRequestResponse updateNoticeStatus(Long userId, Long noticeId sender.getUsername() )); - fcmPushService.sendNotificationByToken(PushNotificationRequest.builder() + fcmPushService.sendNotificationByTokenWithFriendData(PushNotificationRequest.builder() .userId(sender.getId()) .title(receiver.getUsername() + "님이 친구를 수락했어요") - .type("notice") + .type("share") + .data(Map.of("friendId", Long.toString(userId))) .build()); } else { fcmPushService.sendNotificationByToken(PushNotificationRequest.builder() .userId(sender.getId()) .title(receiver.getUsername() + "님이 친구를 거절했어요") - .type("notice") + .type("notice") .build()); }