diff --git a/newm-server/src/main/kotlin/io/newm/server/features/nftsong/repo/NftSongRepositoryImpl.kt b/newm-server/src/main/kotlin/io/newm/server/features/nftsong/repo/NftSongRepositoryImpl.kt index ed3d76d5..c992369d 100644 --- a/newm-server/src/main/kotlin/io/newm/server/features/nftsong/repo/NftSongRepositoryImpl.kt +++ b/newm-server/src/main/kotlin/io/newm/server/features/nftsong/repo/NftSongRepositoryImpl.kt @@ -7,24 +7,27 @@ import io.newm.server.features.ethereum.repo.EthereumRepository import io.newm.server.features.nftsong.model.NftChainMetadata import io.newm.server.features.nftsong.model.NftSong import io.newm.server.typealiases.UserId +import kotlinx.coroutines.async +import kotlinx.coroutines.coroutineScope internal class NftSongRepositoryImpl( private val cardanoRepository: CardanoRepository, private val ethereumRepository: EthereumRepository ) : NftSongRepository { - override suspend fun getNftSongs(userId: UserId): List { - val nftSongs = mutableListOf() - - nftSongs += cardanoRepository - .getWalletNftSongs(userId, includeLegacy = true, useDripDropz = false) - .map { it.toNftSong() } - - nftSongs += ethereumRepository - .getWalletNftSongs(userId) - .map { it.toNftSong() } - - return nftSongs - } + override suspend fun getNftSongs(userId: UserId): List = + coroutineScope { + val cardanoJob = async { + cardanoRepository + .getWalletNftSongs(userId, includeLegacy = true, useDripDropz = false) + .map { it.toNftSong() } + } + val ethereumJob = async { + ethereumRepository + .getWalletNftSongs(userId) + .map { it.toNftSong() } + } + cardanoJob.await() + ethereumJob.await() + } private fun CardanoNftSong.toNftSong(): NftSong = NftSong(