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, ) }