From e5838cb69eeb999195da40a6a918a1dd6dffd052 Mon Sep 17 00:00:00 2001 From: yummygyudon Date: Mon, 13 Nov 2023 03:28:41 +0900 Subject: [PATCH 1/3] =?UTF-8?q?HOTFIX=20:=20Local=EC=97=90=20=ED=95=B4?= =?UTF-8?q?=EB=8B=B9=20=ED=86=A0=ED=81=B0=EC=9D=B4=20=EC=9E=88=EB=8A=94?= =?UTF-8?q?=EA=B2=BD=EC=9A=B0=EC=97=90=EB=A7=8C=20=EC=82=AD=EC=A0=9C=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../notification/PushTokenService.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/sopt/app/application/notification/PushTokenService.java b/src/main/java/org/sopt/app/application/notification/PushTokenService.java index 3679452b..8357c457 100644 --- a/src/main/java/org/sopt/app/application/notification/PushTokenService.java +++ b/src/main/java/org/sopt/app/application/notification/PushTokenService.java @@ -38,6 +38,11 @@ public class PushTokenService { private String apiKey; + @Transactional(readOnly = true) + public boolean isExistDeviceToken(Long userId, String token) { + return pushTokenRepository.existsByUserIdAndToken(userId, token); + } + @Transactional(readOnly = true) public PushToken getDeviceToken(Long userId, String token) { return pushTokenRepository.findByUserIdAndToken(userId, token) @@ -97,22 +102,20 @@ public PushTokenResponse.StatusResponse deleteDeviceToken(PushToken pushToken) { .message(e.getResponseMessage()) .build(); } + } @Transactional - public Integer deleteAllDeviceTokenOf(User user) { + public void deleteAllDeviceTokenOf(User user) { // 기존에 저장되어 있던 Tokens -> 알림 서버에 삭제 요청 List userTokens = pushTokenRepository.findAllByUserId(user.getId()); - int failedCount = 0; - for (PushToken token : userTokens) { - PushTokenResponse.StatusResponse statusResponse = deleteDeviceToken(token); - if (!statusResponse.getSuccess()) { - failedCount += 1; + if (!userTokens.isEmpty()) { + for (PushToken token : userTokens) { + deleteDeviceToken(token); } + // 우선 서비스 DB에 있는 모든 토큰 지워버리기 + pushTokenRepository.deleteAll(userTokens); } - // 우선 서비스 DB에 있는 모든 토큰 지워버리기 - pushTokenRepository.deleteAll(userTokens); - return failedCount; } private HttpHeaders createHeadersFor(String action, String platform) { From 92ade725d5f4f7e1a0acf8bcda2bcfc3d602d09e Mon Sep 17 00:00:00 2001 From: yummygyudon Date: Mon, 13 Nov 2023 03:30:04 +0900 Subject: [PATCH 2/3] =?UTF-8?q?FIX=20:=201=EC=B0=A8=EC=A0=81=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=A1=B4=EC=9E=AC=20=EC=97=AC=EB=B6=80=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=20=ED=9B=84,=20=ED=86=A0=ED=81=B0=20=ED=95=B4?= =?UTF-8?q?=EC=A0=9C=20=EC=9A=94=EC=B2=AD=EB=90=98=EB=8F=84=EB=A1=9D=20Pus?= =?UTF-8?q?hToken=20=ED=95=B4=EC=A0=9C=20=EC=9A=94=EC=B2=AD=20API=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 --- .../presentation/user/UserPushTokenController.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/sopt/app/presentation/user/UserPushTokenController.java b/src/main/java/org/sopt/app/presentation/user/UserPushTokenController.java index f26585f3..fd22cf3a 100644 --- a/src/main/java/org/sopt/app/presentation/user/UserPushTokenController.java +++ b/src/main/java/org/sopt/app/presentation/user/UserPushTokenController.java @@ -56,12 +56,13 @@ public ResponseEntity deletePushToken( @AuthenticationPrincipal User user, @Valid @RequestBody PushTokenRequest.DeleteRequest deletePushTokenRequest ) { - PushToken targetPushToken = pushTokenService.getDeviceToken( - user.getId(), deletePushTokenRequest.getPushToken() - ); - val result = pushTokenService.deleteDeviceToken(targetPushToken); - val response = pushTokenResponseMapper.ofStatus(result); - return ResponseEntity.status(HttpStatus.OK).body(response); + if (pushTokenService.isExistDeviceToken(user.getId(), deletePushTokenRequest.getPushToken())) { + PushToken targetPushToken = pushTokenService.getDeviceToken( + user.getId(), deletePushTokenRequest.getPushToken() + ); + pushTokenService.deleteDeviceToken(targetPushToken); + } + return ResponseEntity.status(HttpStatus.OK).body(null); } } From 6425716596280fe4357f715d2f0aff02489a1580 Mon Sep 17 00:00:00 2001 From: yummygyudon Date: Mon, 13 Nov 2023 03:30:30 +0900 Subject: [PATCH 3/3] =?UTF-8?q?FIX=20:=20=EB=A1=9C=EA=B7=B8=EC=95=84?= =?UTF-8?q?=EC=9B=83=20API=20=EB=82=B4=20=ED=86=A0=ED=81=B0=20=ED=95=B4?= =?UTF-8?q?=EC=A0=9C=20=EB=A1=9C=EC=A7=81=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/user/UserWithdrawController.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/sopt/app/presentation/user/UserWithdrawController.java b/src/main/java/org/sopt/app/presentation/user/UserWithdrawController.java index b1ce2aba..39ff9a48 100644 --- a/src/main/java/org/sopt/app/presentation/user/UserWithdrawController.java +++ b/src/main/java/org/sopt/app/presentation/user/UserWithdrawController.java @@ -41,12 +41,12 @@ public ResponseEntity logout( @AuthenticationPrincipal User user, @Valid @RequestBody PushTokenRequest.DeleteRequest deleteRequest ) { - PushToken targetPushToken = pushTokenService.getDeviceToken( - user.getId(), deleteRequest.getPushToken() - ); -// val result = - pushTokenService.deleteDeviceToken(targetPushToken); -// val response = pushTokenResponseMapper.ofStatus(result); + if (pushTokenService.isExistDeviceToken(user.getId(), deleteRequest.getPushToken())) { + PushToken targetPushToken = pushTokenService.getDeviceToken( + user.getId(), deleteRequest.getPushToken() + ); + pushTokenService.deleteDeviceToken(targetPushToken); + } return ResponseEntity.status(HttpStatus.OK).body(null); }