From 861a7ed710c18f1ede74a28c35b69bd444f39afc Mon Sep 17 00:00:00 2001 From: yb__char <68099546+char-yb@users.noreply.github.com> Date: Sat, 24 Aug 2024 14:35:23 +0900 Subject: [PATCH 1/6] =?UTF-8?q?fix:=20missionHistory=20=EB=B6=84=EB=A6=AC?= =?UTF-8?q?=20(#206)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../stonebed/domain/feed/dao/FeedRepositoryImpl.java | 10 +++++----- .../domain/mission/application/MissionService.java | 6 +++--- .../mission/dao/{mission => }/MissionRepository.java | 2 +- .../dao/{mission => }/MissionRepositoryCustom.java | 2 +- .../dao/{mission => }/MissionRepositoryImpl.java | 6 +++--- .../dao}/MissionHistoryRepository.java | 4 ++-- .../dao}/MissionHistoryRepositoryCustom.java | 4 ++-- .../dao}/MissionHistoryRepositoryImpl.java | 6 +++--- .../domain/MissionHistory.java | 3 ++- .../application/MissionRecordService.java | 6 +++--- .../missionRecord/dao/MissionRecordRepository.java | 2 +- .../domain/missionRecord/domain/MissionRecord.java | 2 +- .../domain/mission/application/MissionServiceTest.java | 6 +++--- .../mission/dao/MissionHistoryRepositoryTest.java | 5 ++--- .../domain/mission/dao/MissionRepositoryTest.java | 1 - .../application/MissionRecordServiceTest.java | 4 ++-- 16 files changed, 34 insertions(+), 35 deletions(-) rename src/main/java/com/depromeet/stonebed/domain/mission/dao/{mission => }/MissionRepository.java (79%) rename src/main/java/com/depromeet/stonebed/domain/mission/dao/{mission => }/MissionRepositoryCustom.java (87%) rename src/main/java/com/depromeet/stonebed/domain/mission/dao/{mission => }/MissionRepositoryImpl.java (89%) rename src/main/java/com/depromeet/stonebed/domain/{mission/dao/missionHistory => missionHistory/dao}/MissionHistoryRepository.java (70%) rename src/main/java/com/depromeet/stonebed/domain/{mission/dao/missionHistory => missionHistory/dao}/MissionHistoryRepositoryCustom.java (73%) rename src/main/java/com/depromeet/stonebed/domain/{mission/dao/missionHistory => missionHistory/dao}/MissionHistoryRepositoryImpl.java (88%) rename src/main/java/com/depromeet/stonebed/domain/{mission => missionHistory}/domain/MissionHistory.java (92%) diff --git a/src/main/java/com/depromeet/stonebed/domain/feed/dao/FeedRepositoryImpl.java b/src/main/java/com/depromeet/stonebed/domain/feed/dao/FeedRepositoryImpl.java index 7810a292..5b172f28 100644 --- a/src/main/java/com/depromeet/stonebed/domain/feed/dao/FeedRepositoryImpl.java +++ b/src/main/java/com/depromeet/stonebed/domain/feed/dao/FeedRepositoryImpl.java @@ -1,10 +1,10 @@ package com.depromeet.stonebed.domain.feed.dao; -import static com.depromeet.stonebed.domain.member.domain.QMember.member; -import static com.depromeet.stonebed.domain.mission.domain.QMission.mission; -import static com.depromeet.stonebed.domain.mission.domain.QMissionHistory.missionHistory; -import static com.depromeet.stonebed.domain.missionRecord.domain.QMissionRecord.missionRecord; -import static com.depromeet.stonebed.domain.missionRecord.domain.QMissionRecordBoost.missionRecordBoost; +import static com.depromeet.stonebed.domain.member.domain.QMember.*; +import static com.depromeet.stonebed.domain.mission.domain.QMission.*; +import static com.depromeet.stonebed.domain.missionHistory.domain.QMissionHistory.*; +import static com.depromeet.stonebed.domain.missionRecord.domain.QMissionRecord.*; +import static com.depromeet.stonebed.domain.missionRecord.domain.QMissionRecordBoost.*; import com.depromeet.stonebed.domain.feed.dto.FindFeedDto; import com.depromeet.stonebed.domain.missionRecord.domain.MissionRecordStatus; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/application/MissionService.java b/src/main/java/com/depromeet/stonebed/domain/mission/application/MissionService.java index 0bc5efa9..9d00fbe2 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/application/MissionService.java +++ b/src/main/java/com/depromeet/stonebed/domain/mission/application/MissionService.java @@ -2,16 +2,16 @@ import com.depromeet.stonebed.domain.member.domain.Member; import com.depromeet.stonebed.domain.member.domain.RaisePet; -import com.depromeet.stonebed.domain.mission.dao.mission.MissionRepository; -import com.depromeet.stonebed.domain.mission.dao.missionHistory.MissionHistoryRepository; +import com.depromeet.stonebed.domain.mission.dao.MissionRepository; import com.depromeet.stonebed.domain.mission.domain.Mission; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; import com.depromeet.stonebed.domain.mission.dto.request.MissionCreateRequest; import com.depromeet.stonebed.domain.mission.dto.request.MissionUpdateRequest; import com.depromeet.stonebed.domain.mission.dto.response.MissionCreateResponse; import com.depromeet.stonebed.domain.mission.dto.response.MissionGetOneResponse; import com.depromeet.stonebed.domain.mission.dto.response.MissionGetTodayResponse; import com.depromeet.stonebed.domain.mission.dto.response.MissionUpdateResponse; +import com.depromeet.stonebed.domain.missionHistory.dao.MissionHistoryRepository; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import com.depromeet.stonebed.global.error.ErrorCode; import com.depromeet.stonebed.global.error.exception.CustomException; import com.depromeet.stonebed.global.util.MemberUtil; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepository.java b/src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepository.java similarity index 79% rename from src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepository.java rename to src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepository.java index 8233324f..628205b5 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepository.java +++ b/src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepository.java @@ -1,4 +1,4 @@ -package com.depromeet.stonebed.domain.mission.dao.mission; +package com.depromeet.stonebed.domain.mission.dao; import com.depromeet.stonebed.domain.mission.domain.Mission; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepositoryCustom.java b/src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryCustom.java similarity index 87% rename from src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepositoryCustom.java rename to src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryCustom.java index 9bc859cf..3f5ac043 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepositoryCustom.java +++ b/src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryCustom.java @@ -1,4 +1,4 @@ -package com.depromeet.stonebed.domain.mission.dao.mission; +package com.depromeet.stonebed.domain.mission.dao; import com.depromeet.stonebed.domain.member.domain.RaisePet; import com.depromeet.stonebed.domain.mission.domain.Mission; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepositoryImpl.java b/src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryImpl.java similarity index 89% rename from src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepositoryImpl.java rename to src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryImpl.java index 10f22f38..f0f11666 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/dao/mission/MissionRepositoryImpl.java +++ b/src/main/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryImpl.java @@ -1,7 +1,7 @@ -package com.depromeet.stonebed.domain.mission.dao.mission; +package com.depromeet.stonebed.domain.mission.dao; -import static com.depromeet.stonebed.domain.mission.domain.QMission.mission; -import static com.depromeet.stonebed.domain.mission.domain.QMissionHistory.missionHistory; +import static com.depromeet.stonebed.domain.mission.domain.QMission.*; +import static com.depromeet.stonebed.domain.missionHistory.domain.QMissionHistory.*; import com.depromeet.stonebed.domain.member.domain.RaisePet; import com.depromeet.stonebed.domain.mission.domain.Mission; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepository.java b/src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepository.java similarity index 70% rename from src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepository.java rename to src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepository.java index 46831b99..775256bb 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepository.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepository.java @@ -1,6 +1,6 @@ -package com.depromeet.stonebed.domain.mission.dao.missionHistory; +package com.depromeet.stonebed.domain.missionHistory.dao; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import java.time.LocalDate; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepositoryCustom.java b/src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepositoryCustom.java similarity index 73% rename from src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepositoryCustom.java rename to src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepositoryCustom.java index bab6f0be..983c01b6 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepositoryCustom.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepositoryCustom.java @@ -1,7 +1,7 @@ -package com.depromeet.stonebed.domain.mission.dao.missionHistory; +package com.depromeet.stonebed.domain.missionHistory.dao; import com.depromeet.stonebed.domain.member.domain.RaisePet; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import java.time.LocalDate; import java.util.Optional; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepositoryImpl.java b/src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepositoryImpl.java similarity index 88% rename from src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepositoryImpl.java rename to src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepositoryImpl.java index 9ba5a741..f7818a7f 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/dao/missionHistory/MissionHistoryRepositoryImpl.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionHistory/dao/MissionHistoryRepositoryImpl.java @@ -1,9 +1,9 @@ -package com.depromeet.stonebed.domain.mission.dao.missionHistory; +package com.depromeet.stonebed.domain.missionHistory.dao; -import static com.depromeet.stonebed.domain.mission.domain.QMissionHistory.missionHistory; +import static com.depromeet.stonebed.domain.missionHistory.domain.QMissionHistory.*; import com.depromeet.stonebed.domain.member.domain.RaisePet; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import com.querydsl.jpa.impl.JPAQueryFactory; import java.time.LocalDate; import java.util.Optional; diff --git a/src/main/java/com/depromeet/stonebed/domain/mission/domain/MissionHistory.java b/src/main/java/com/depromeet/stonebed/domain/missionHistory/domain/MissionHistory.java similarity index 92% rename from src/main/java/com/depromeet/stonebed/domain/mission/domain/MissionHistory.java rename to src/main/java/com/depromeet/stonebed/domain/missionHistory/domain/MissionHistory.java index 45db3bee..525481d2 100644 --- a/src/main/java/com/depromeet/stonebed/domain/mission/domain/MissionHistory.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionHistory/domain/MissionHistory.java @@ -1,7 +1,8 @@ -package com.depromeet.stonebed.domain.mission.domain; +package com.depromeet.stonebed.domain.missionHistory.domain; import com.depromeet.stonebed.domain.common.BaseTimeEntity; import com.depromeet.stonebed.domain.member.domain.RaisePet; +import com.depromeet.stonebed.domain.mission.domain.Mission; import jakarta.persistence.*; import java.time.LocalDate; import lombok.AccessLevel; diff --git a/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java b/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java index 09a58785..7de465f9 100644 --- a/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java @@ -3,10 +3,10 @@ import com.depromeet.stonebed.domain.fcm.application.FcmNotificationService; import com.depromeet.stonebed.domain.member.domain.Member; import com.depromeet.stonebed.domain.member.domain.RaisePet; -import com.depromeet.stonebed.domain.mission.dao.mission.MissionRepository; -import com.depromeet.stonebed.domain.mission.dao.missionHistory.MissionHistoryRepository; +import com.depromeet.stonebed.domain.mission.dao.MissionRepository; import com.depromeet.stonebed.domain.mission.domain.Mission; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; +import com.depromeet.stonebed.domain.missionHistory.dao.MissionHistoryRepository; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import com.depromeet.stonebed.domain.missionRecord.dao.MissionRecordBoostRepository; import com.depromeet.stonebed.domain.missionRecord.dao.MissionRecordRepository; import com.depromeet.stonebed.domain.missionRecord.domain.MissionRecord; diff --git a/src/main/java/com/depromeet/stonebed/domain/missionRecord/dao/MissionRecordRepository.java b/src/main/java/com/depromeet/stonebed/domain/missionRecord/dao/MissionRecordRepository.java index bc981aae..94ea12e3 100644 --- a/src/main/java/com/depromeet/stonebed/domain/missionRecord/dao/MissionRecordRepository.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionRecord/dao/MissionRecordRepository.java @@ -1,7 +1,7 @@ package com.depromeet.stonebed.domain.missionRecord.dao; import com.depromeet.stonebed.domain.member.domain.Member; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import com.depromeet.stonebed.domain.missionRecord.domain.MissionRecord; import com.depromeet.stonebed.domain.missionRecord.domain.MissionRecordStatus; import java.time.LocalDateTime; diff --git a/src/main/java/com/depromeet/stonebed/domain/missionRecord/domain/MissionRecord.java b/src/main/java/com/depromeet/stonebed/domain/missionRecord/domain/MissionRecord.java index 86217d5c..11542f34 100644 --- a/src/main/java/com/depromeet/stonebed/domain/missionRecord/domain/MissionRecord.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionRecord/domain/MissionRecord.java @@ -2,7 +2,7 @@ import com.depromeet.stonebed.domain.common.BaseFullTimeEntity; import com.depromeet.stonebed.domain.member.domain.Member; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.*; import lombok.AccessLevel; diff --git a/src/test/java/com/depromeet/stonebed/domain/mission/application/MissionServiceTest.java b/src/test/java/com/depromeet/stonebed/domain/mission/application/MissionServiceTest.java index ea02a419..a2c8bf63 100644 --- a/src/test/java/com/depromeet/stonebed/domain/mission/application/MissionServiceTest.java +++ b/src/test/java/com/depromeet/stonebed/domain/mission/application/MissionServiceTest.java @@ -6,16 +6,16 @@ import com.depromeet.stonebed.domain.member.domain.Member; import com.depromeet.stonebed.domain.member.domain.RaisePet; -import com.depromeet.stonebed.domain.mission.dao.mission.MissionRepository; -import com.depromeet.stonebed.domain.mission.dao.missionHistory.MissionHistoryRepository; +import com.depromeet.stonebed.domain.mission.dao.MissionRepository; import com.depromeet.stonebed.domain.mission.domain.Mission; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; import com.depromeet.stonebed.domain.mission.dto.request.MissionCreateRequest; import com.depromeet.stonebed.domain.mission.dto.request.MissionUpdateRequest; import com.depromeet.stonebed.domain.mission.dto.response.MissionCreateResponse; import com.depromeet.stonebed.domain.mission.dto.response.MissionGetOneResponse; import com.depromeet.stonebed.domain.mission.dto.response.MissionGetTodayResponse; import com.depromeet.stonebed.domain.mission.dto.response.MissionUpdateResponse; +import com.depromeet.stonebed.domain.missionHistory.dao.MissionHistoryRepository; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import com.depromeet.stonebed.global.error.ErrorCode; import com.depromeet.stonebed.global.error.exception.CustomException; import com.depromeet.stonebed.global.util.MemberUtil; diff --git a/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionHistoryRepositoryTest.java b/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionHistoryRepositoryTest.java index b9b534fd..8437f79a 100644 --- a/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionHistoryRepositoryTest.java +++ b/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionHistoryRepositoryTest.java @@ -4,10 +4,9 @@ import com.depromeet.stonebed.TestQuerydslConfig; import com.depromeet.stonebed.domain.member.domain.RaisePet; -import com.depromeet.stonebed.domain.mission.dao.mission.MissionRepository; -import com.depromeet.stonebed.domain.mission.dao.missionHistory.MissionHistoryRepository; import com.depromeet.stonebed.domain.mission.domain.Mission; -import com.depromeet.stonebed.domain.mission.domain.MissionHistory; +import com.depromeet.stonebed.domain.missionHistory.dao.MissionHistoryRepository; +import com.depromeet.stonebed.domain.missionHistory.domain.MissionHistory; import java.time.LocalDate; import java.util.Optional; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryTest.java b/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryTest.java index 606f70e5..bf1e33c5 100644 --- a/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryTest.java +++ b/src/test/java/com/depromeet/stonebed/domain/mission/dao/MissionRepositoryTest.java @@ -4,7 +4,6 @@ import com.depromeet.stonebed.TestQuerydslConfig; import com.depromeet.stonebed.domain.member.domain.RaisePet; -import com.depromeet.stonebed.domain.mission.dao.mission.MissionRepository; import com.depromeet.stonebed.domain.mission.domain.Mission; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/test/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordServiceTest.java b/src/test/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordServiceTest.java index f8658525..14321952 100644 --- a/src/test/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordServiceTest.java +++ b/src/test/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordServiceTest.java @@ -6,8 +6,8 @@ import com.depromeet.stonebed.FixtureMonkeySetUp; import com.depromeet.stonebed.domain.fcm.application.FcmNotificationService; import com.depromeet.stonebed.domain.member.domain.Member; -import com.depromeet.stonebed.domain.mission.dao.mission.MissionRepository; -import com.depromeet.stonebed.domain.mission.dao.missionHistory.MissionHistoryRepository; +import com.depromeet.stonebed.domain.mission.dao.MissionRepository; +import com.depromeet.stonebed.domain.missionHistory.dao.MissionHistoryRepository; import com.depromeet.stonebed.domain.missionRecord.dao.MissionRecordBoostRepository; import com.depromeet.stonebed.domain.missionRecord.dao.MissionRecordRepository; import com.depromeet.stonebed.domain.missionRecord.domain.MissionRecord; From 3a8eeade644b8d2ba7910ee0aa2c4f8acc414c8e Mon Sep 17 00:00:00 2001 From: Park Yun Chan Date: Sat, 24 Aug 2024 14:40:53 +0900 Subject: [PATCH 2/6] =?UTF-8?q?Fcm=20=EB=8D=B0=EC=9D=BC=EB=A6=AC,=20?= =?UTF-8?q?=EB=A6=AC=EB=A7=88=EC=9D=B8=EB=93=9C=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=ED=86=B5=EC=9D=BC=20(#208)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 알림메시지 boolean으로 분리 및 sendDaily메서드 null 에러수정 * fix: test코드 수정 * fix: Daily, reminder 메세드 통일 * fix: API테스트용 코드 삭제 --- .../stonebed/domain/fcm/api/FcmController.java | 4 +++- .../fcm/application/FcmScheduledService.java | 2 +- .../domain/fcm/application/FcmService.java | 16 +--------------- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java b/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java index 84429fac..e77ef9a8 100644 --- a/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java +++ b/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java @@ -13,6 +13,7 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; +import java.util.List; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -41,7 +42,8 @@ public ResponseEntity pushMessageToAll( Notification notification = FcmNotificationUtil.buildNotification( fcmSendRequest.title(), fcmSendRequest.body()); - fcmService.sendMulticastMessageToAll(notification); + List tokens = fcmTokenService.getAllTokens(); + fcmService.sendMulticastMessage(notification, tokens); return ResponseEntity.ok().build(); } diff --git a/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmScheduledService.java b/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmScheduledService.java index c7a3b6f2..71773c46 100644 --- a/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmScheduledService.java +++ b/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmScheduledService.java @@ -39,8 +39,8 @@ public void sendDailyNotification() { FcmNotificationConstants notificationConstants = FcmNotificationConstants.MISSION_START; String title = notificationConstants.getTitle(); String message = notificationConstants.getMessage(); - List tokens = fcmTokenService.getAllTokens(); + fcmNotificationService.sendAndNotifications(title, message, tokens); log.info("모든 사용자에게 정규 알림 전송 및 저장 완료"); diff --git a/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmService.java b/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmService.java index 91b3806c..1f81f500 100644 --- a/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmService.java +++ b/src/main/java/com/depromeet/stonebed/domain/fcm/application/FcmService.java @@ -19,20 +19,6 @@ public class FcmService { private final FcmTokenService fcmTokenService; @Transactional(readOnly = true) - public void sendMulticastMessageToAll(Notification notification) { - List tokens = fcmTokenService.getAllTokens(); - int totalTokens = tokens.size(); - - for (int i = 0; i < totalTokens; i += BATCH_SIZE) { - List batchTokens = tokens.subList(i, Math.min(i + BATCH_SIZE, totalTokens)); - MulticastMessage message = buildMulticastMessage(notification, batchTokens); - sendMessage(message, batchTokens); - } - - log.info("전체 메세지를 일괄 전송했습니다. 총 메세지 수: {}", totalTokens); - } - - @Transactional public void sendMulticastMessage(Notification notification, List tokens) { int totalTokens = tokens.size(); @@ -42,7 +28,7 @@ public void sendMulticastMessage(Notification notification, List tokens) sendMessage(message, batchTokens); } - log.info("리마인드 메세지를 일괄 전송했습니다. 총 메세지 수: {}", totalTokens); + log.info("전체 메세지를 일괄 전송했습니다. 총 메세지 수: {}", totalTokens); } private MulticastMessage buildMulticastMessage(Notification notification, List tokens) { From cab800d82717f5d229459d306f182a358a482116 Mon Sep 17 00:00:00 2001 From: Park Yun Chan Date: Sat, 24 Aug 2024 15:49:09 +0900 Subject: [PATCH 3/6] =?UTF-8?q?fix:=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EB=AA=85=20=EC=88=98=EC=A0=95=20(#213)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../depromeet/stonebed/domain/fcm/api/FcmController.java | 8 ++++---- .../missionRecord/api/MissionRecordController.java | 9 +++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java b/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java index e77ef9a8..d93bb16c 100644 --- a/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java +++ b/src/main/java/com/depromeet/stonebed/domain/fcm/api/FcmController.java @@ -49,7 +49,7 @@ public ResponseEntity pushMessageToAll( @Operation(summary = "FCM 토큰 저장", description = "로그인 시 FCM 토큰을 저장합니다.") @PostMapping("/token") - public ResponseEntity storeToken( + public ResponseEntity fcmTokenStore( @RequestBody @Validated FcmTokenRequest fcmTokenRequest) { fcmTokenService.storeOrUpdateToken(fcmTokenRequest.token()); return ResponseEntity.ok().build(); @@ -57,14 +57,14 @@ public ResponseEntity storeToken( @Operation(summary = "FCM 토큰 삭제", description = "로그아웃 시 FCM 토큰을 삭제합니다.") @DeleteMapping("/token") - public ResponseEntity deleteToken() { + public ResponseEntity fcmTokenDelete() { fcmTokenService.invalidateTokenForCurrentMember(); return ResponseEntity.ok().build(); } @Operation(summary = "알림 리스트 조회", description = "회원의 알림을 커서 기반으로 페이징하여 조회한다.") @GetMapping - public FcmNotificationResponse getNotifications( + public FcmNotificationResponse getFcmNotifications( @Valid @RequestParam(name = "cursor", required = false) String cursor, @Valid @NotNull @Min(1) @RequestParam(name = "limit", defaultValue = "10") int limit) { return fcmNotificationService.getNotificationsForCurrentMember(cursor, limit); @@ -72,7 +72,7 @@ public FcmNotificationResponse getNotifications( @Operation(summary = "FCM 알림 읽음 처리", description = "알림을 읽음 상태로 변경합니다.") @PostMapping("/{notificationId}/read") - public ResponseEntity markNotificationAsRead( + public ResponseEntity fcmNotificationAsRead( @PathVariable("notificationId") Long notificationId) { fcmNotificationService.markNotificationAsRead(notificationId); return ResponseEntity.ok().build(); diff --git a/src/main/java/com/depromeet/stonebed/domain/missionRecord/api/MissionRecordController.java b/src/main/java/com/depromeet/stonebed/domain/missionRecord/api/MissionRecordController.java index aa595ad6..2de56efc 100644 --- a/src/main/java/com/depromeet/stonebed/domain/missionRecord/api/MissionRecordController.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionRecord/api/MissionRecordController.java @@ -29,20 +29,21 @@ public class MissionRecordController { @Operation(summary = "미션 탭 상태 조회", description = "미션 탭의 상태를 조회한다.") @GetMapping("/status") - public MissionTabResponse getMissionTabStatus(@RequestParam Long missionId) { + public MissionTabResponse getMissionRecordStatus(@RequestParam Long missionId) { return missionRecordService.getMissionTabStatus(missionId); } @Operation(summary = "미션 참여", description = "미션 참여하기.") @PostMapping("/start") - public MissionRecordIdResponse startMission( + public MissionRecordIdResponse startMissionRecord( @Valid @RequestBody MissionRecordStartRequest request) { return missionRecordService.startMission(request.missionId()); } @Operation(summary = "미션 기록 저장", description = "미션 완료 후 기록을 저장한다.") @PostMapping - public ResponseEntity saveMission(@Valid @RequestBody MissionRecordSaveRequest request) { + public ResponseEntity saveMissionRecord( + @Valid @RequestBody MissionRecordSaveRequest request) { missionRecordService.saveMission(request.missionId(), request.content()); return ResponseEntity.ok().build(); } @@ -86,7 +87,7 @@ public MissionRecordCompleteTotal getTotalMissionRecords( @Operation(summary = "부스트 생성", description = "미션 기록에 부스트를 생성한다.") @PostMapping("/{recordId}/boost") - public ResponseEntity postFeed( + public ResponseEntity createMissionRecordBoost( @PathVariable("recordId") Long recordId, final @Valid @RequestBody MissionRecordBoostRequest request) { missionRecordService.createBoost(recordId, request.count()); From 7b78ae4201e789e04e3cb940481a84e61930b268 Mon Sep 17 00:00:00 2001 From: Kwanok Noh <61671343+kwanok@users.noreply.github.com> Date: Sat, 24 Aug 2024 16:27:08 +0900 Subject: [PATCH 4/6] =?UTF-8?q?refactor:=20=ED=94=BC=EB=93=9C=20Get=20Meth?= =?UTF-8?q?od=20Parameter=20Validation=20=EC=BD=94=EB=93=9C=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81=20(#211)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../depromeet/stonebed/domain/feed/api/FeedController.java | 7 ++----- .../stonebed/domain/feed/dto/request/FeedGetRequest.java | 6 ++++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/depromeet/stonebed/domain/feed/api/FeedController.java b/src/main/java/com/depromeet/stonebed/domain/feed/api/FeedController.java index ca00a3d2..277c464e 100644 --- a/src/main/java/com/depromeet/stonebed/domain/feed/api/FeedController.java +++ b/src/main/java/com/depromeet/stonebed/domain/feed/api/FeedController.java @@ -5,6 +5,7 @@ import com.depromeet.stonebed.domain.feed.dto.response.FeedGetResponse; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -17,11 +18,7 @@ public class FeedController { @Operation(summary = "피드 조회", description = "내 피드를 조회하는 API입니다.") @GetMapping - public FeedGetResponse getFeed( - @RequestParam(required = false) String cursor, - @RequestParam(required = false) Long memberId, - @RequestParam int limit) { - FeedGetRequest request = new FeedGetRequest(cursor, memberId, limit); + public FeedGetResponse getFeed(@Valid FeedGetRequest request) { return feedService.getFeed(request); } } diff --git a/src/main/java/com/depromeet/stonebed/domain/feed/dto/request/FeedGetRequest.java b/src/main/java/com/depromeet/stonebed/domain/feed/dto/request/FeedGetRequest.java index 39ba08e2..da74690d 100644 --- a/src/main/java/com/depromeet/stonebed/domain/feed/dto/request/FeedGetRequest.java +++ b/src/main/java/com/depromeet/stonebed/domain/feed/dto/request/FeedGetRequest.java @@ -1,8 +1,10 @@ package com.depromeet.stonebed.domain.feed.dto.request; import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; public record FeedGetRequest( @Schema(description = "커서 위치", example = "1") String cursor, - @Schema(description = "작성자 ID", example = "1") Long memberId, - @Schema(description = "피드 당 항목 수", example = "5") int limit) {} + @Schema(description = "작성자 ID", example = "1") @Min(1) Long memberId, + @Schema(description = "피드 당 항목 수", example = "5") @Min(1) @Max(50) int limit) {} From fd1cb65611ee5b92e9aa390ca7ecf720fcc37025 Mon Sep 17 00:00:00 2001 From: Park Yun Chan Date: Sat, 24 Aug 2024 17:38:18 +0900 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20ImageUrl=20null=20=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=EA=B2=80=EC=A6=9D=20(#217)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/image/application/ImageService.java | 10 ++++++++++ .../com/depromeet/stonebed/global/error/ErrorCode.java | 1 + 2 files changed, 11 insertions(+) diff --git a/src/main/java/com/depromeet/stonebed/domain/image/application/ImageService.java b/src/main/java/com/depromeet/stonebed/domain/image/application/ImageService.java index f78ae747..3da5ae2a 100644 --- a/src/main/java/com/depromeet/stonebed/domain/image/application/ImageService.java +++ b/src/main/java/com/depromeet/stonebed/domain/image/application/ImageService.java @@ -91,6 +91,8 @@ public ImageUrlResponse uploadCompleteMemberProfile( currentMember.getId(), image.getImageKey(), request.imageFileExtension()); + + isValidImageUrl(imageUrl); currentMember.updateProfile(Profile.createProfile(request.nickname(), imageUrl)); return ImageUrlResponse.of(imageUrl); } @@ -138,6 +140,7 @@ public ImageUrlResponse uploadCompleteMissionRecord(MissionRecordImageUploadRequ image.getImageKey(), request.imageFileExtension()); + isValidImageUrl(imageUrl); missionRecordService.updateMissionRecordWithImage(request.recordId(), imageUrl); return ImageUrlResponse.of(imageUrl); } @@ -177,6 +180,7 @@ public ImageUrlResponse uploadCompleteMission(MissionImageUploadRequest request) image.getImageKey(), request.imageFileExtension()); + isValidImageUrl(imageUrl); missionService.updateMissionWithImageUrl(request.missionId(), imageUrl); return ImageUrlResponse.of(imageUrl); @@ -250,4 +254,10 @@ private GeneratePresignedUrlRequest createPreSignedUrlRequest( private Date getPreSignedUrlExpiration() { return new Date(System.currentTimeMillis() + 1000 * 60 * 30); } + + private void isValidImageUrl(String imageUrl) { + if (imageUrl == null || imageUrl.trim().isEmpty()) { + throw new CustomException(ErrorCode.INVALID_IMAGE_URL); + } + } } diff --git a/src/main/java/com/depromeet/stonebed/global/error/ErrorCode.java b/src/main/java/com/depromeet/stonebed/global/error/ErrorCode.java index 7611de92..1fd5bfe2 100644 --- a/src/main/java/com/depromeet/stonebed/global/error/ErrorCode.java +++ b/src/main/java/com/depromeet/stonebed/global/error/ErrorCode.java @@ -42,6 +42,7 @@ public enum ErrorCode { IMAGE_FILE_EXTENSION_NOT_FOUND(HttpStatus.NOT_FOUND, "이미지 파일 확장자를 찾을 수 없습니다."), INVALID_IMAGE_FILE_EXTENSION(HttpStatus.BAD_REQUEST, "올바른 이미지 확장자가 아닙니다."), MEMBER_ALREADY_DELETED(HttpStatus.CONFLICT, "이미 탈퇴한 회원입니다."), + INVALID_IMAGE_URL(HttpStatus.BAD_REQUEST, "올바른 이미지 URL이 아닙니다."), // follow FOLLOW_SELF_NOT_ALLOWED(HttpStatus.CONFLICT, "본인은 팔로우 할 수 없습니다."), From 8bf79329b6aa8d437446153d803dc4707aa5b912 Mon Sep 17 00:00:00 2001 From: Park Yun Chan Date: Sat, 24 Aug 2024 17:41:00 +0900 Subject: [PATCH 6/6] =?UTF-8?q?fix:=20=EB=AF=B8=EC=85=98=EA=B8=B0=EB=A1=9D?= =?UTF-8?q?=20TabResponse=20recordId=20=EC=A0=9C=EA=B1=B0=20(#219)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../missionRecord/application/MissionRecordService.java | 4 ++-- .../missionRecord/dto/response/MissionTabResponse.java | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java b/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java index 7de465f9..3d8cf3e9 100644 --- a/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionRecord/application/MissionRecordService.java @@ -197,7 +197,7 @@ public MissionTabResponse getMissionTabStatus(Long missionId) { .orElse(null); if (missionRecord == null) { - return MissionTabResponse.of(null, null, MissionRecordStatus.NOT_COMPLETED); + return MissionTabResponse.of(null, MissionRecordStatus.NOT_COMPLETED); } MissionRecordStatus missionRecordStatus = missionRecord.getStatus(); @@ -206,7 +206,7 @@ public MissionTabResponse getMissionTabStatus(Long missionId) { ? missionRecord.getImageUrl() : null; - return MissionTabResponse.of(missionRecord.getId(), imageUrl, missionRecordStatus); + return MissionTabResponse.of(imageUrl, missionRecordStatus); } @Transactional(propagation = Propagation.REQUIRES_NEW) diff --git a/src/main/java/com/depromeet/stonebed/domain/missionRecord/dto/response/MissionTabResponse.java b/src/main/java/com/depromeet/stonebed/domain/missionRecord/dto/response/MissionTabResponse.java index bfb8f47d..82ed9289 100644 --- a/src/main/java/com/depromeet/stonebed/domain/missionRecord/dto/response/MissionTabResponse.java +++ b/src/main/java/com/depromeet/stonebed/domain/missionRecord/dto/response/MissionTabResponse.java @@ -4,12 +4,10 @@ import io.swagger.v3.oas.annotations.media.Schema; public record MissionTabResponse( - @Schema(description = "미션기록 ID", example = "1") Long recordId, @Schema(description = "이미지 URL", example = "example.jpeg") String imageUrl, @Schema(description = "미션 상태", example = "NOT_COMPLETED") MissionRecordStatus status) { - public static MissionTabResponse of( - Long recordId, String imageUrl, MissionRecordStatus status) { - return new MissionTabResponse(recordId, imageUrl, status); + public static MissionTabResponse of(String imageUrl, MissionRecordStatus status) { + return new MissionTabResponse(imageUrl, status); } }