From 47c5dd4ce30b458354c87a09d35ebba2ce37f875 Mon Sep 17 00:00:00 2001 From: dev-Crayon Date: Fri, 10 May 2024 15:57:17 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[Update]:=20=EC=95=8C=EB=A6=BC=20=EB=A6=AC?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=B5=9C=EC=8B=A0=EC=88=9C=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B0=98=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Related to: #134 --- .../io/sobok/SobokSobok/notice/application/NoticeService.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/io/sobok/SobokSobok/notice/application/NoticeService.java b/src/main/java/io/sobok/SobokSobok/notice/application/NoticeService.java index c31a228..8a7e1b1 100644 --- a/src/main/java/io/sobok/SobokSobok/notice/application/NoticeService.java +++ b/src/main/java/io/sobok/SobokSobok/notice/application/NoticeService.java @@ -26,6 +26,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; +import java.util.Comparator; import java.util.List; @Service @@ -47,6 +49,8 @@ public NoticeResponse getList(Long userId) { User user = UserServiceUtil.findUserById(userRepository, userId); List noticeList = noticeQueryRepository.getNoticeList(userId); + Comparator compareByCreatedAt = Comparator.comparing(NoticeInfo::createdAt).reversed(); + noticeList.sort(compareByCreatedAt); return NoticeResponse.builder() .username(user.getUsername()) From 1671b65154ee8c3e40fb83812c41677e5e063730 Mon Sep 17 00:00:00 2001 From: dev-Crayon Date: Fri, 10 May 2024 16:12:28 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[Fix]:=20=ED=83=88=ED=87=B4=20=EC=9D=B4?= =?UTF-8?q?=EC=9C=A0=20=EB=AF=B8=EC=9E=85=EB=A0=A5=20=EA=B0=80=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Related to: #136 --- src/main/java/io/sobok/SobokSobok/auth/ui/AuthController.java | 2 +- .../java/io/sobok/SobokSobok/auth/ui/dto/LeaveRequest.java | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/io/sobok/SobokSobok/auth/ui/AuthController.java b/src/main/java/io/sobok/SobokSobok/auth/ui/AuthController.java index 570665e..9219c88 100644 --- a/src/main/java/io/sobok/SobokSobok/auth/ui/AuthController.java +++ b/src/main/java/io/sobok/SobokSobok/auth/ui/AuthController.java @@ -100,7 +100,7 @@ public ResponseEntity> refresh( description = "소복소복 서비스를 탈퇴하는 API 입니다." ) public ResponseEntity> leave( - @RequestBody @Valid final LeaveRequest request, + @RequestBody final LeaveRequest request, @AuthenticationPrincipal User user ) { diff --git a/src/main/java/io/sobok/SobokSobok/auth/ui/dto/LeaveRequest.java b/src/main/java/io/sobok/SobokSobok/auth/ui/dto/LeaveRequest.java index c5a4c81..dede50b 100644 --- a/src/main/java/io/sobok/SobokSobok/auth/ui/dto/LeaveRequest.java +++ b/src/main/java/io/sobok/SobokSobok/auth/ui/dto/LeaveRequest.java @@ -1,10 +1,7 @@ package io.sobok.SobokSobok.auth.ui.dto; -import jakarta.validation.constraints.NotBlank; - public record LeaveRequest( - @NotBlank String text ) { } From c808c65b41a479c0be6427da2f38ceaeab5a890d Mon Sep 17 00:00:00 2001 From: Lee SeungHeon <51286325+dev-Crayon@users.noreply.github.com> Date: Tue, 4 Jun 2024 07:17:37 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[Feat]:=20=EC=B9=9C=EA=B5=AC=20=EC=88=98?= =?UTF-8?q?=EB=9D=BD=20=ED=91=B8=EC=8B=9C=EC=95=8C=EB=A6=BC=20Data=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20(#139)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 친구 수락 푸시알림시 friendId와 type 전송 Related to: #138 --- .../external/firebase/FCMPushService.java | 38 +++++++++++++++++++ .../friend/application/FriendService.java | 8 ++-- 2 files changed, 43 insertions(+), 3 deletions(-) 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()); }