ultrasonic-app-subsonic-and.../ultrasonic/src/main/kotlin/org/moire/ultrasonic/data/APIAlbumConverter.kt

26 lines
1005 B
Kotlin
Raw Normal View History

// Converts Album entity from [org.moire.ultrasonic.api.subsonic.SubsonicAPIClient]
// to app domain entities.
@file:JvmName("APIAlbumConverter")
package org.moire.ultrasonic.data
import org.moire.ultrasonic.api.subsonic.models.Album
import org.moire.ultrasonic.domain.MusicDirectory
fun Album.toDomainEntity(): MusicDirectory.Entry = MusicDirectory.Entry().apply {
id = this@toDomainEntity.id.toString()
setIsDirectory(true)
title = this@toDomainEntity.name
coverArt = this@toDomainEntity.coverArt
artist = this@toDomainEntity.artist
artistId = this@toDomainEntity.artistId.toString()
songCount = this@toDomainEntity.songCount.toLong()
duration = this@toDomainEntity.duration
created = this@toDomainEntity.created?.time
year = this@toDomainEntity.year
genre = this@toDomainEntity.genre
}
fun Album.toMusicDirectoryDomainEntity(): MusicDirectory = MusicDirectory().apply {
addAll(this@toMusicDirectoryDomainEntity.songList.map { it.toDomainEntity() })
}