From d7326f7e2e5b337418080604b11f08dd76b54593 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sun, 20 Sep 2026 23:08:57 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B2=80=EC=83=89=20=EA=B2=B0=EA=B3=BC?= =?UTF-8?q?=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20null=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/dto/search/SearchContentsResponseDto.kt | 10 +++++----- .../domain/mapper/search/SearchContentMapper.kt | 14 ++++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/flint/android/data/dto/search/SearchContentsResponseDto.kt b/app/src/main/java/com/flint/android/data/dto/search/SearchContentsResponseDto.kt index e4a70de2..09d5b3b2 100644 --- a/app/src/main/java/com/flint/android/data/dto/search/SearchContentsResponseDto.kt +++ b/app/src/main/java/com/flint/android/data/dto/search/SearchContentsResponseDto.kt @@ -13,15 +13,15 @@ data class SearchContentsResponseDto( @Serializable data class Content( @SerialName("id") - val id: String, + val id: String? = null, @SerialName("title") - val title: String, + val title: String? = null, @SerialName("author") - val author: String, + val author: String? = null, @SerialName("posterUrl") - val posterUrl: String, + val posterUrl: String? = null, @SerialName("year") - val year: Int, + val year: Int? = null, ) @Serializable diff --git a/app/src/main/java/com/flint/android/domain/mapper/search/SearchContentMapper.kt b/app/src/main/java/com/flint/android/domain/mapper/search/SearchContentMapper.kt index 63b044e4..e0074c88 100644 --- a/app/src/main/java/com/flint/android/domain/mapper/search/SearchContentMapper.kt +++ b/app/src/main/java/com/flint/android/domain/mapper/search/SearchContentMapper.kt @@ -7,18 +7,20 @@ import kotlinx.collections.immutable.toImmutableList fun SearchContentsResponseDto.toModel(): SearchContentListModel { return SearchContentListModel( - contents = this.data.map { it.toModel() }.toImmutableList(), + // id 없는 항목은 LazyGrid의 key로 쓸 수 없어 식별 불가능하므로 제외 + contents = this.data.mapNotNull { it.toModel() }.toImmutableList(), nextCursor = this.meta?.nextCursor, ) } -private fun SearchContentsResponseDto.Content.toModel(): SearchContentItemModel{ +private fun SearchContentsResponseDto.Content.toModel(): SearchContentItemModel? { + val id = id ?: return null return SearchContentItemModel( id = id, - title = title, - author = author, - posterUrl = posterUrl, - year = year + title = title.orEmpty(), + author = author.orEmpty(), + posterUrl = posterUrl.orEmpty(), + year = year ?: 0, ) }