From 3e8476431d8eae620cdc8cad4493765d54ba00c3 Mon Sep 17 00:00:00 2001
From: Klaus <klaus@vividnext.co.kr>
Date: Thu, 11 Jan 2024 03:50:54 +0900
Subject: [PATCH 1/3] =?UTF-8?q?=ED=91=B8=EC=8B=9C=20message=20=EB=B0=9C?=
 =?UTF-8?q?=EC=86=A1=20-=20null=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC=20?=
 =?UTF-8?q?=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../kr/co/vividnext/sodalive/fcm/FcmEvent.kt     | 16 +++++++++-------
 .../sodalive/member/MemberRepository.kt          |  4 ++--
 2 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt
index 32a1236..833a825 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/fcm/FcmEvent.kt
@@ -186,13 +186,15 @@ class FcmSendListener(
             FcmEventType.SEND_MESSAGE -> {
                 val response = memberRepository.getMessageRecipientPushToken(messageId = fcmEvent.messageId!!)
 
-                pushService.send(
-                    tokens = listOf(response.pushToken),
-                    title = fcmEvent.title,
-                    message = fcmEvent.message,
-                    container = response.container,
-                    messageId = fcmEvent.messageId
-                )
+                if (response != null) {
+                    pushService.send(
+                        tokens = listOf(response.pushToken),
+                        title = fcmEvent.title,
+                        message = fcmEvent.message,
+                        container = response.container,
+                        messageId = fcmEvent.messageId
+                    )
+                }
             }
 
             FcmEventType.CHANGE_NOTICE -> {
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt
index 1c6094c..214e1b9 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberRepository.kt
@@ -45,7 +45,7 @@ interface MemberQueryRepository {
         container: String
     ): List<List<String>>
 
-    fun getMessageRecipientPushToken(messageId: Long): GetMessageRecipientPushTokenResponse
+    fun getMessageRecipientPushToken(messageId: Long): GetMessageRecipientPushTokenResponse?
     fun getIndividualRecipientPushTokens(recipients: List<Long>, isAuth: Boolean?): Map<String, List<List<String>>>
     fun getChangeNicknamePrice(memberId: Long): GetChangeNicknamePriceResponse
     fun getMemberByEmail(email: String): Member?
@@ -259,7 +259,7 @@ class MemberQueryRepositoryImpl(
             .chunked(500)
     }
 
-    override fun getMessageRecipientPushToken(messageId: Long): GetMessageRecipientPushTokenResponse {
+    override fun getMessageRecipientPushToken(messageId: Long): GetMessageRecipientPushTokenResponse? {
         return queryFactory
             .select(
                 QGetMessageRecipientPushTokenResponse(
-- 
2.40.1


From afe529a11692629b190119f36147460d75810f1b Mon Sep 17 00:00:00 2001
From: Klaus <klaus@vividnext.co.kr>
Date: Thu, 11 Jan 2024 12:19:09 +0900
Subject: [PATCH 2/3] =?UTF-8?q?=EC=98=88=EC=95=BD=20=EC=97=85=EB=A1=9C?=
 =?UTF-8?q?=EB=93=9C=20=EB=B0=B0=ED=8F=AC=20=EB=A1=9C=EC=A7=81=20=EC=9C=84?=
 =?UTF-8?q?=EC=B9=98=20=EC=9D=B4=EB=8F=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../content/AudioContentController.kt         | 13 +----
 .../sodalive/content/AudioContentService.kt   | 52 ++++++++++---------
 2 files changed, 30 insertions(+), 35 deletions(-)

diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt
index ab678be..b8f8873 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentController.kt
@@ -25,10 +25,7 @@ import java.time.temporal.TemporalAdjusters
 
 @RestController
 @RequestMapping("/audio-content")
-class AudioContentController(
-    private val service: AudioContentService,
-    private val repository: AudioContentRepository
-) {
+class AudioContentController(private val service: AudioContentService) {
     @PostMapping
     @PreAuthorize("hasRole('CREATOR')")
     fun createAudioContent(
@@ -197,12 +194,6 @@ class AudioContentController(
     @PostMapping("/release")
     @PreAuthorize("hasRole('BOT')")
     fun releaseContent() = run {
-        val contentIdList = repository.getNotReleaseContentId()
-
-        for (contentId in contentIdList) {
-            service.releaseContent(contentId)
-        }
-
-        ApiResponse.ok(null)
+        ApiResponse.ok(service.releaseContent())
     }
 }
diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt
index 90b0b54..dac8bd9 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt
@@ -387,35 +387,39 @@ class AudioContentService(
     }
 
     @Transactional
-    fun releaseContent(contentId: Long) {
-        val audioContent = repository.findByIdOrNull(contentId)
-            ?: throw SodaException("잘못된 요청입니다.")
+    fun releaseContent() {
+        val contentIdList = repository.getNotReleaseContentId()
 
-        audioContent.isActive = true
+        for (contentId in contentIdList) {
+            val audioContent = repository.findByIdOrNull(contentId)
+                ?: throw SodaException("잘못된 요청입니다.")
 
-        applicationEventPublisher.publishEvent(
-            FcmEvent(
-                type = FcmEventType.UPLOAD_CONTENT,
-                title = audioContent.member!!.nickname,
-                message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
-                isAuth = audioContent.isAdult,
-                contentId = contentId,
-                creatorId = audioContent.member!!.id,
-                container = "ios"
+            audioContent.isActive = true
+
+            applicationEventPublisher.publishEvent(
+                FcmEvent(
+                    type = FcmEventType.UPLOAD_CONTENT,
+                    title = audioContent.member!!.nickname,
+                    message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
+                    isAuth = audioContent.isAdult,
+                    contentId = contentId,
+                    creatorId = audioContent.member!!.id,
+                    container = "ios"
+                )
             )
-        )
 
-        applicationEventPublisher.publishEvent(
-            FcmEvent(
-                type = FcmEventType.UPLOAD_CONTENT,
-                title = audioContent.member!!.nickname,
-                message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
-                isAuth = audioContent.isAdult,
-                contentId = contentId,
-                creatorId = audioContent.member!!.id,
-                container = "aos"
+            applicationEventPublisher.publishEvent(
+                FcmEvent(
+                    type = FcmEventType.UPLOAD_CONTENT,
+                    title = audioContent.member!!.nickname,
+                    message = "콘텐츠를 업로드 하였습니다. - ${audioContent.title}",
+                    isAuth = audioContent.isAdult,
+                    contentId = contentId,
+                    creatorId = audioContent.member!!.id,
+                    container = "aos"
+                )
             )
-        )
+        }
     }
 
     fun getDetail(id: Long, member: Member, timezone: String): GetAudioContentDetailResponse {
-- 
2.40.1


From abd1626997e8168a85e8afa3554f9836f9b994c4 Mon Sep 17 00:00:00 2001
From: Klaus <klaus@vividnext.co.kr>
Date: Thu, 11 Jan 2024 12:40:57 +0900
Subject: [PATCH 3/3] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=97=85?=
 =?UTF-8?q?=EB=A1=9C=EB=93=9C=20-=20=EA=B8=B0=EB=B3=B8=20=ED=83=80?=
 =?UTF-8?q?=EC=9E=84=EC=A1=B4=20=EC=84=A4=EC=A0=95=20=EC=B6=94=EA=B0=80=20?=
 =?UTF-8?q?(Asia/Seoul)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../co/vividnext/sodalive/content/CreateAudioContentRequest.kt  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/CreateAudioContentRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/CreateAudioContentRequest.kt
index e2acdc6..2bd41c4 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/CreateAudioContentRequest.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/CreateAudioContentRequest.kt
@@ -5,7 +5,7 @@ data class CreateAudioContentRequest(
     val detail: String,
     val tags: String,
     val price: Int,
-    val timezone: String,
+    val timezone: String = "Asia/Seoul",
     val releaseDate: String? = null,
     val themeId: Long = 0,
     val isAdult: Boolean = false,
-- 
2.40.1