From 95dc5c3a70238993dd3d125bec63017de7bdcb12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=BC=ED=98=81?= Date: Fri, 25 Sep 2026 18:43:22 +0900 Subject: [PATCH] =?UTF-8?q?refactor(afternote):=20=EC=97=90=EB=94=94?= =?UTF-8?q?=ED=84=B0=20=EA=B3=A1=C2=B7=EC=98=81=EC=83=81=20=EB=B3=80?= =?UTF-8?q?=ED=99=98=20=EA=B7=9C=EC=B9=99=EC=9D=84=20=EA=B3=B5=ED=86=B5?= =?UTF-8?q?=ED=99=94=20(#2166)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editor/AfternoteEditorFormMapper.kt | 46 +++++++------------ 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/editor/AfternoteEditorFormMapper.kt b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/editor/AfternoteEditorFormMapper.kt index 11d24f87b..0e11feb35 100644 --- a/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/editor/AfternoteEditorFormMapper.kt +++ b/feature/afternote/presentation/src/main/kotlin/com/afternote/feature/afternote/presentation/editor/AfternoteEditorFormMapper.kt @@ -118,28 +118,12 @@ internal object AfternoteEditorFormMapper { memorialPhotoUrl: String? = null, memorialVideoUrl: String? = null, memorialThumbnailUrl: String? = null, - ): MemorialWritePayload { - val songs = - playlistSongs.map { song -> - MemorialSongPayload( - title = song.title, - artist = song.artist, - coverUrl = song.albumCoverUrl, - ) - } - val memorialVideo = - memorialVideoUrl?.ifBlank { null }?.let { url -> - MemorialVideoPayload( - videoUrl = url, - thumbnailUrl = memorialThumbnailUrl?.ifBlank { null }, - ) - } - return MemorialWritePayload( + ): MemorialWritePayload = + MemorialWritePayload( memorialPhotoUrl = memorialPhotoUrl?.ifBlank { null }, - songs = songs, - memorialVideo = memorialVideo, + songs = playlistSongs.map { it.toMemorialSongPayload() }, + memorialVideo = memorialVideoPayload(videoUrl = memorialVideoUrl, thumbnailUrl = memorialThumbnailUrl), ) - } fun buildCreateInput( type: AfternoteType, @@ -450,10 +434,7 @@ internal object AfternoteEditorFormMapper { leaveMessageBlocks = leaveMessageBlocks, photoUrl = memorialMedia.memorialPhotoUrl?.ifBlank { null }, video = memorialMedia.toVideoPayload(), - songs = - playlistSongs.map { song -> - MemorialSongPayload(title = song.title, artist = song.artist, coverUrl = song.albumCoverUrl) - }, + songs = playlistSongs.map { it.toMemorialSongPayload() }, ) } @@ -470,14 +451,21 @@ internal object AfternoteEditorFormMapper { private fun RegisterAfternotePayload.toCredentialsSnapshot() = CredentialsSnapshot(id = accountId.ifBlank { null }, password = password.ifBlank { null }) + private fun Song.toMemorialSongPayload() = MemorialSongPayload(title = title, artist = artist, coverUrl = albumCoverUrl) + private fun MemorialMedia.toVideoPayload(): MemorialVideoPayload? = - videoUrl?.ifBlank { null }?.let { url -> - MemorialVideoPayload(videoUrl = url, thumbnailUrl = thumbnailUrl?.ifBlank { null }) - } + memorialVideoPayload(videoUrl = videoUrl, thumbnailUrl = thumbnailUrl) private fun MemorialMediaUrls.toVideoPayload(): MemorialVideoPayload? = - memorialVideoUrl?.ifBlank { null }?.let { url -> - MemorialVideoPayload(videoUrl = url, thumbnailUrl = memorialThumbnailUrl?.ifBlank { null }) + memorialVideoPayload(videoUrl = memorialVideoUrl, thumbnailUrl = memorialThumbnailUrl) + + /** 영상 주소가 비었으면 영상 슬롯 자체가 없다. 썸네일만 남은 값은 싣지 않는다. */ + private fun memorialVideoPayload( + videoUrl: String?, + thumbnailUrl: String?, + ): MemorialVideoPayload? = + videoUrl?.ifBlank { null }?.let { url -> + MemorialVideoPayload(videoUrl = url, thumbnailUrl = thumbnailUrl?.ifBlank { null }) } }