@@ -7,24 +7,27 @@ import io.newm.server.features.ethereum.repo.EthereumRepository
77import io.newm.server.features.nftsong.model.NftChainMetadata
88import io.newm.server.features.nftsong.model.NftSong
99import io.newm.server.typealiases.UserId
10+ import kotlinx.coroutines.async
11+ import kotlinx.coroutines.coroutineScope
1012
1113internal class NftSongRepositoryImpl (
1214 private val cardanoRepository : CardanoRepository ,
1315 private val ethereumRepository : EthereumRepository
1416) : NftSongRepository {
15- override suspend fun getNftSongs (userId : UserId ): List <NftSong > {
16- val nftSongs = mutableListOf<NftSong >()
17-
18- nftSongs + = cardanoRepository
19- .getWalletNftSongs(userId, includeLegacy = true , useDripDropz = false )
20- .map { it.toNftSong() }
21-
22- nftSongs + = ethereumRepository
23- .getWalletNftSongs(userId)
24- .map { it.toNftSong() }
25-
26- return nftSongs
27- }
17+ override suspend fun getNftSongs (userId : UserId ): List <NftSong > =
18+ coroutineScope {
19+ val cardanoJob = async {
20+ cardanoRepository
21+ .getWalletNftSongs(userId, includeLegacy = true , useDripDropz = false )
22+ .map { it.toNftSong() }
23+ }
24+ val ethereumJob = async {
25+ ethereumRepository
26+ .getWalletNftSongs(userId)
27+ .map { it.toNftSong() }
28+ }
29+ cardanoJob.await() + ethereumJob.await()
30+ }
2831
2932 private fun CardanoNftSong.toNftSong (): NftSong =
3033 NftSong (
0 commit comments