diff --git a/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEventListener.kt b/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEventListener.kt index 05308c1..3a5d0fb 100644 --- a/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEventListener.kt +++ b/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEventListener.kt @@ -11,7 +11,6 @@ import org.springframework.scheduling.annotation.Async import org.springframework.stereotype.Component import org.springframework.transaction.event.TransactionPhase import org.springframework.transaction.event.TransactionalEventListener -import java.time.LocalDate private val logger = KotlinLogging.logger {} @@ -79,7 +78,7 @@ class NotificationEventListener( bodyArgs = arrayOf(nickname), deepLinkParams = mapOf( "goalId" to event.goalId.toString(), - "date" to LocalDate.now().toString(), + "date" to event.verificationDate.toString(), ), ) } catch (e: Exception) { diff --git a/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEvents.kt b/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEvents.kt index c551117..bbff858 100644 --- a/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEvents.kt +++ b/love/application/src/main/kotlin/com/yapp/love/application/notification/event/NotificationEvents.kt @@ -18,6 +18,7 @@ data class PokedEvent( data class PhotologCreatedEvent( val userId: Long, val goalId: Long, + val verificationDate: LocalDate, ) data class GoalEndedEvent( diff --git a/love/application/src/main/kotlin/com/yapp/love/application/photolog/PhotoLogService.kt b/love/application/src/main/kotlin/com/yapp/love/application/photolog/PhotoLogService.kt index 3a5246a..514e8b0 100644 --- a/love/application/src/main/kotlin/com/yapp/love/application/photolog/PhotoLogService.kt +++ b/love/application/src/main/kotlin/com/yapp/love/application/photolog/PhotoLogService.kt @@ -122,7 +122,9 @@ class PhotologService( ) ) - notificationEventPublisher.publishEvent(PhotologCreatedEvent(userId = userId, goalId = goalId)) + notificationEventPublisher.publishEvent( + PhotologCreatedEvent(userId = userId, goalId = goalId, verificationDate = verificationDate), + ) return saved } diff --git a/love/application/src/test/kotlin/com/yapp/love/application/notification/event/NotificationEventListenerTest.kt b/love/application/src/test/kotlin/com/yapp/love/application/notification/event/NotificationEventListenerTest.kt index 7f56269..fc80e4c 100644 --- a/love/application/src/test/kotlin/com/yapp/love/application/notification/event/NotificationEventListenerTest.kt +++ b/love/application/src/test/kotlin/com/yapp/love/application/notification/event/NotificationEventListenerTest.kt @@ -118,6 +118,7 @@ class NotificationEventListenerTest : DescribeSpec({ val userId = 1L val partnerId = 2L val goalId = 10L + val verificationDate = LocalDate.of(2026, 1, 15) val coupleInfo = CoupleInfo( id = 100L, @@ -145,7 +146,9 @@ class NotificationEventListenerTest : DescribeSpec({ UserAdditionInfo(userId = userId, nickname = "철수") every { goalRepository.findById(goalId) } returns goal - listener.handlePhotologCreated(PhotologCreatedEvent(userId = userId, goalId = goalId)) + listener.handlePhotologCreated( + PhotologCreatedEvent(userId = userId, goalId = goalId, verificationDate = verificationDate), + ) verify { notificationService.sendNotification( @@ -153,7 +156,7 @@ class NotificationEventListenerTest : DescribeSpec({ type = NotificationType.GOAL_COMPLETED, titleArgs = arrayOf("철수", "운동하기"), bodyArgs = arrayOf("철수"), - deepLinkParams = mapOf("goalId" to "10", "date" to LocalDate.now().toString()), + deepLinkParams = mapOf("goalId" to "10", "date" to verificationDate.toString()), ) } } @@ -172,7 +175,9 @@ class NotificationEventListenerTest : DescribeSpec({ UserAdditionInfo(userId = userId, nickname = "철수") every { goalRepository.findById(goalId) } returns goal - listener.handlePhotologCreated(PhotologCreatedEvent(userId = userId, goalId = goalId)) + listener.handlePhotologCreated( + PhotologCreatedEvent(userId = userId, goalId = goalId, verificationDate = verificationDate), + ) verify { notificationService.sendNotification( @@ -180,7 +185,7 @@ class NotificationEventListenerTest : DescribeSpec({ type = NotificationType.GOAL_COMPLETED, titleArgs = arrayOf("철수", "운동하기"), bodyArgs = arrayOf("철수"), - deepLinkParams = mapOf("goalId" to "10", "date" to LocalDate.now().toString()), + deepLinkParams = mapOf("goalId" to "10", "date" to verificationDate.toString()), ) } } @@ -192,7 +197,9 @@ class NotificationEventListenerTest : DescribeSpec({ every { userAdditionInfoRepository.findByUserId(userId) } returns null every { goalRepository.findById(goalId) } returns goal - listener.handlePhotologCreated(PhotologCreatedEvent(userId = userId, goalId = goalId)) + listener.handlePhotologCreated( + PhotologCreatedEvent(userId = userId, goalId = goalId, verificationDate = verificationDate), + ) verify { notificationService.sendNotification( @@ -200,7 +207,7 @@ class NotificationEventListenerTest : DescribeSpec({ type = NotificationType.GOAL_COMPLETED, titleArgs = arrayOf("상대방", "운동하기"), bodyArgs = arrayOf("상대방"), - deepLinkParams = mapOf("goalId" to "10", "date" to LocalDate.now().toString()), + deepLinkParams = mapOf("goalId" to "10", "date" to verificationDate.toString()), ) } } @@ -210,7 +217,9 @@ class NotificationEventListenerTest : DescribeSpec({ it("알림을 전송하지 않는다") { every { coupleInfoRepository.findByUserId(userId) } returns null - listener.handlePhotologCreated(PhotologCreatedEvent(userId = userId, goalId = goalId)) + listener.handlePhotologCreated( + PhotologCreatedEvent(userId = userId, goalId = goalId, verificationDate = verificationDate), + ) verify(exactly = 0) { notificationService.sendNotification(any(), any(), any(), any(), any()) } } @@ -223,7 +232,9 @@ class NotificationEventListenerTest : DescribeSpec({ UserAdditionInfo(userId = userId, nickname = "철수") every { goalRepository.findById(goalId) } returns null - listener.handlePhotologCreated(PhotologCreatedEvent(userId = userId, goalId = goalId)) + listener.handlePhotologCreated( + PhotologCreatedEvent(userId = userId, goalId = goalId, verificationDate = verificationDate), + ) verify(exactly = 0) { notificationService.sendNotification(any(), any(), any(), any(), any()) } }