mirror of
https://github.com/ultrasonic/ultrasonic
synced 2025-02-18 04:30:48 +01:00
Add converter from api MusicDirectory to domain MusicDirectory.
Signed-off-by: Yahor Berdnikau <egorr.berd@gmail.com>
This commit is contained in:
parent
f54ecd29fb
commit
768616d14a
@ -416,6 +416,10 @@ public class MusicDirectory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setCreated(Date created) {
|
||||||
|
this.created = created;
|
||||||
|
}
|
||||||
|
|
||||||
public int getCloseness()
|
public int getCloseness()
|
||||||
{
|
{
|
||||||
return closeness;
|
return closeness;
|
||||||
|
@ -3,11 +3,14 @@
|
|||||||
package org.moire.ultrasonic.data
|
package org.moire.ultrasonic.data
|
||||||
|
|
||||||
import org.moire.ultrasonic.api.subsonic.models.Index
|
import org.moire.ultrasonic.api.subsonic.models.Index
|
||||||
|
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
|
||||||
import org.moire.ultrasonic.domain.Artist
|
import org.moire.ultrasonic.domain.Artist
|
||||||
import org.moire.ultrasonic.domain.Indexes
|
import org.moire.ultrasonic.domain.Indexes
|
||||||
|
import org.moire.ultrasonic.domain.MusicDirectory
|
||||||
import org.moire.ultrasonic.domain.MusicFolder
|
import org.moire.ultrasonic.domain.MusicFolder
|
||||||
import org.moire.ultrasonic.api.subsonic.models.Artist as APIArtist
|
import org.moire.ultrasonic.api.subsonic.models.Artist as APIArtist
|
||||||
import org.moire.ultrasonic.api.subsonic.models.Indexes as APIIndexes
|
import org.moire.ultrasonic.api.subsonic.models.Indexes as APIIndexes
|
||||||
|
import org.moire.ultrasonic.api.subsonic.models.MusicDirectory as APIMusicDirectory
|
||||||
import org.moire.ultrasonic.api.subsonic.models.MusicFolder as APIMusicFolder
|
import org.moire.ultrasonic.api.subsonic.models.MusicFolder as APIMusicFolder
|
||||||
|
|
||||||
fun APIMusicFolder.toDomainEntity(): MusicFolder = MusicFolder(this.id.toString(), this.name)
|
fun APIMusicFolder.toDomainEntity(): MusicFolder = MusicFolder(this.id.toString(), this.name)
|
||||||
@ -26,3 +29,36 @@ fun APIArtist.toDomainEntity(): Artist = Artist().apply {
|
|||||||
id = this@toDomainEntity.id.toString()
|
id = this@toDomainEntity.id.toString()
|
||||||
name = this@toDomainEntity.name
|
name = this@toDomainEntity.name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun MusicDirectoryChild.toDomainEntity(): MusicDirectory.Entry = MusicDirectory.Entry().apply {
|
||||||
|
id = this@toDomainEntity.id.toString()
|
||||||
|
parent = this@toDomainEntity.parent.toString()
|
||||||
|
setIsDirectory(this@toDomainEntity.isDir)
|
||||||
|
title = this@toDomainEntity.title
|
||||||
|
album = this@toDomainEntity.album
|
||||||
|
albumId = this@toDomainEntity.albumId.toString()
|
||||||
|
artist = this@toDomainEntity.artist
|
||||||
|
artistId = this@toDomainEntity.artistId.toString()
|
||||||
|
track = this@toDomainEntity.track
|
||||||
|
year = this@toDomainEntity.year
|
||||||
|
genre = this@toDomainEntity.genre
|
||||||
|
contentType = this@toDomainEntity.contentType
|
||||||
|
suffix = this@toDomainEntity.suffix
|
||||||
|
transcodedContentType = this@toDomainEntity.transcodedContentType
|
||||||
|
transcodedSuffix = this@toDomainEntity.transcodedSuffix
|
||||||
|
coverArt = this@toDomainEntity.coverArt.toString()
|
||||||
|
size = this@toDomainEntity.size
|
||||||
|
duration = this@toDomainEntity.duration
|
||||||
|
bitRate = this@toDomainEntity.bitRate
|
||||||
|
path = this@toDomainEntity.path
|
||||||
|
setIsVideo(this@toDomainEntity.isVideo)
|
||||||
|
setCreated(this@toDomainEntity.created?.time)
|
||||||
|
starred = this@toDomainEntity.starred != null
|
||||||
|
discNumber = this@toDomainEntity.discNumber
|
||||||
|
type = this@toDomainEntity.type
|
||||||
|
}
|
||||||
|
|
||||||
|
fun APIMusicDirectory.toDomainEntity(): MusicDirectory = MusicDirectory().apply {
|
||||||
|
name = this@toDomainEntity.name
|
||||||
|
addAll(this@toDomainEntity.childList.map { it.toDomainEntity() })
|
||||||
|
}
|
||||||
|
@ -8,6 +8,8 @@ import org.junit.Test
|
|||||||
import org.moire.ultrasonic.api.subsonic.models.Artist
|
import org.moire.ultrasonic.api.subsonic.models.Artist
|
||||||
import org.moire.ultrasonic.api.subsonic.models.Index
|
import org.moire.ultrasonic.api.subsonic.models.Index
|
||||||
import org.moire.ultrasonic.api.subsonic.models.Indexes
|
import org.moire.ultrasonic.api.subsonic.models.Indexes
|
||||||
|
import org.moire.ultrasonic.api.subsonic.models.MusicDirectory
|
||||||
|
import org.moire.ultrasonic.api.subsonic.models.MusicDirectoryChild
|
||||||
import org.moire.ultrasonic.api.subsonic.models.MusicFolder
|
import org.moire.ultrasonic.api.subsonic.models.MusicFolder
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
|
|
||||||
@ -78,6 +80,63 @@ class APIConverterTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Should convert MusicDirectory entity`() {
|
||||||
|
val entity = MusicDirectory(id = 1982L, parent = 345L, name = "some-name", userRating = 3,
|
||||||
|
averageRating = 3.4f, starred = Calendar.getInstance(), playCount = 10,
|
||||||
|
childList = listOf(MusicDirectoryChild(1L), MusicDirectoryChild(2L)))
|
||||||
|
|
||||||
|
val convertedEntity = entity.toDomainEntity()
|
||||||
|
|
||||||
|
with(convertedEntity) {
|
||||||
|
name `should equal to` entity.name
|
||||||
|
children.size `should equal to` entity.childList.size
|
||||||
|
children `should equal` entity.childList.map { it.toDomainEntity() }.toMutableList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `Should convert MusicDirectoryChild entity`() {
|
||||||
|
val entity = MusicDirectoryChild(id = 929L, parent = 11L, title = "some-title",
|
||||||
|
album = "some-album", albumId = 231L, artist = "some-artist", artistId = 1233L,
|
||||||
|
track = 12, year = 2002, genre = "some-genre", coverArt = 952L, size = 9418123L,
|
||||||
|
contentType = "some-content-type", suffix = "some-suffix",
|
||||||
|
transcodedContentType = "some-transcoded-content-type",
|
||||||
|
transcodedSuffix = "some-transcoded-suffix", duration = 11, bitRate = 256,
|
||||||
|
path = "some-path", isDir = true, isVideo = true, playCount = 323, discNumber = 2,
|
||||||
|
created = Calendar.getInstance(), type = "some-type", starred = Calendar.getInstance())
|
||||||
|
|
||||||
|
val convertedEntity = entity.toDomainEntity()
|
||||||
|
|
||||||
|
with(convertedEntity) {
|
||||||
|
id `should equal to` entity.id.toString()
|
||||||
|
parent `should equal to` entity.parent.toString()
|
||||||
|
isDirectory `should equal to` entity.isDir
|
||||||
|
title `should equal` entity.title
|
||||||
|
album `should equal` entity.album
|
||||||
|
albumId `should equal to` entity.albumId.toString()
|
||||||
|
artist `should equal to` entity.artist
|
||||||
|
artistId `should equal to` entity.artistId.toString()
|
||||||
|
track `should equal to` entity.track
|
||||||
|
year `should equal to` entity.year!!
|
||||||
|
genre `should equal to` entity.genre
|
||||||
|
contentType `should equal to` entity.contentType
|
||||||
|
suffix `should equal to` entity.suffix
|
||||||
|
transcodedContentType `should equal to` entity.transcodedContentType
|
||||||
|
transcodedSuffix `should equal to` entity.transcodedSuffix
|
||||||
|
coverArt `should equal to` entity.coverArt.toString()
|
||||||
|
size `should equal to` entity.size
|
||||||
|
duration `should equal to` entity.duration
|
||||||
|
bitRate `should equal to` entity.bitRate
|
||||||
|
path `should equal to` entity.path
|
||||||
|
isVideo `should equal to` entity.isVideo
|
||||||
|
created `should equal` entity.created?.time
|
||||||
|
starred `should equal to` (entity.starred != null)
|
||||||
|
discNumber `should equal to` entity.discNumber
|
||||||
|
type `should equal to` entity.type
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun createMusicFolder(id: Long = 0, name: String = ""): MusicFolder =
|
private fun createMusicFolder(id: Long = 0, name: String = ""): MusicFolder =
|
||||||
MusicFolder(id, name)
|
MusicFolder(id, name)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user