/* * APIArtistConverter.kt * Copyright (C) 2009-2022 Ultrasonic developers * * Distributed under terms of the GNU GPLv3 license. */ // Converts Artist entity from [org.moire.ultrasonic.api.subsonic.SubsonicAPIClient] // to app domain entities. @file:JvmName("APIArtistConverter") package org.moire.ultrasonic.domain import org.moire.ultrasonic.api.subsonic.models.Artist as APIArtist // When we like to convert to an Artist fun APIArtist.toDomainEntity(serverId: Int): Artist = Artist( id = this@toDomainEntity.id, serverId = serverId, coverArt = this@toDomainEntity.coverArt, name = this@toDomainEntity.name ) // When we like to convert to an index (eg. a single directory). fun APIArtist.toIndexEntity(serverId: Int): Index = Index( id = this@toIndexEntity.id, serverId = serverId, coverArt = this@toIndexEntity.coverArt, name = this@toIndexEntity.name ) fun APIArtist.toMusicDirectoryDomainEntity(serverId: Int): MusicDirectory = MusicDirectory().apply { name = this@toMusicDirectoryDomainEntity.name addAll(this@toMusicDirectoryDomainEntity.albumsList.map { it.toDomainEntity(serverId) }) } fun APIArtist.toDomainEntityList(serverId: Int): List { return this.albumsList.map { it.toDomainEntity(serverId) } }