Skip to content

Commit 9f14459

Browse files
committed
change externalurls to have a spotify value, update deps
1 parent 85070e6 commit 9f14459

File tree

5 files changed

+43
-8
lines changed

5 files changed

+43
-8
lines changed

build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,16 +213,16 @@ kotlin {
213213
}
214214

215215
targets {
216-
val kotlinxDatetimeVersion = "0.2.1"
216+
val kotlinxDatetimeVersion = "0.3.1"
217217

218218
sourceSets {
219-
val serializationVersion = "1.2.2"
220-
val ktorVersion = "1.6.2"
219+
val serializationVersion = "1.3.0"
220+
val ktorVersion = "1.6.5"
221221
val korlibsVersion = "2.2.0"
222222
val sparkVersion = "2.9.3"
223223
val androidSpotifyAuthVersion = "1.2.3"
224224
val androidCryptoVersion = "1.0.0"
225-
val coroutineMTVersion = "1.5.1-native-mt"
225+
val coroutineMTVersion = "1.5.2-native-mt"
226226

227227
val commonMain by getting {
228228
dependencies {

src/commonJvmLikeMain/kotlin/com/adamratzman/spotify/utils/DateTimeUtils.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlinx.datetime.Instant
66
/**
77
* The current time in milliseconds since UNIX epoch.
88
*/
9-
actual fun getCurrentTimeMs(): Long = System.currentTimeMillis()
9+
public actual fun getCurrentTimeMs(): Long = System.currentTimeMillis()
1010

1111
/**
1212
* Format date to ISO 8601 format

src/commonMain/kotlin/com.adamratzman.spotify/SpotifyRestAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public open class SpotifyRestAction<T> internal constructor(public val supplier:
109109
consumer: (T) -> Unit
110110
) {
111111
val runAt = getCurrentTimeMs() + timeUnit.toMillis(quantity.toLong())
112-
GlobalScope.launch {
112+
scope.launch {
113113
delay(getCurrentTimeMs() - runAt)
114114

115115
try {

src/commonMain/kotlin/com.adamratzman.spotify/models/ResultObjects.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.adamratzman.spotify.GenericSpotifyApi
55
import com.adamratzman.spotify.SpotifyApi
66
import com.adamratzman.spotify.SpotifyApiOptions
77
import com.adamratzman.spotify.SpotifyException
8+
import com.adamratzman.spotify.utils.ExternalUrls
89
import com.adamratzman.spotify.utils.getCurrentTimeMs
910
import com.adamratzman.spotify.utils.getExternalUrls
1011
import kotlinx.serialization.SerialName
@@ -42,7 +43,7 @@ public abstract class CoreObject : Identifiable() {
4243
protected abstract val externalUrlsString: Map<String, String>
4344
abstract override val href: String
4445
public abstract val uri: SpotifyUri
45-
public val externalUrls: List<ExternalUrl> get() = getExternalUrls(externalUrlsString)
46+
public val externalUrls: ExternalUrls get() = getExternalUrls(externalUrlsString)
4647

4748
public abstract override fun getMembersThatNeedApiInstantiation(): List<NeedsApi?>
4849
}

src/commonMain/kotlin/com.adamratzman.spotify/utils/ExternalUrls.kt

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,39 @@
22
package com.adamratzman.spotify.utils
33

44
import com.adamratzman.spotify.models.ExternalUrl
5+
import kotlinx.serialization.Serializable
56

6-
public fun getExternalUrls(externalUrlsString: Map<String, String>): List<ExternalUrl> = externalUrlsString.map { ExternalUrl(it.key, it.value) }
7+
/**
8+
* Represents the external urls associated with this Spotify asset.
9+
*
10+
* @param spotify The associated Spotify link for this asset, if one exists.
11+
* @param otherExternalUrls Other external urls, not including [spotify]
12+
*/
13+
@Serializable
14+
public data class ExternalUrls(
15+
val spotify: String? = null,
16+
val otherExternalUrls: List<ExternalUrl>,
17+
private val allExternalUrls: List<ExternalUrl>
18+
) : List<ExternalUrl> {
19+
override val size: Int = allExternalUrls.size
20+
override fun contains(element: ExternalUrl): Boolean = allExternalUrls.contains(element)
21+
override fun containsAll(elements: Collection<ExternalUrl>): Boolean = allExternalUrls.containsAll(elements)
22+
override fun get(index: Int): ExternalUrl = allExternalUrls.get(index)
23+
override fun indexOf(element: ExternalUrl): Int = allExternalUrls.indexOf(element)
24+
override fun isEmpty(): Boolean = allExternalUrls.isEmpty()
25+
override fun iterator(): Iterator<ExternalUrl> = allExternalUrls.iterator()
26+
override fun lastIndexOf(element: ExternalUrl): Int = allExternalUrls.lastIndexOf(element)
27+
override fun listIterator(): ListIterator<ExternalUrl> = allExternalUrls.listIterator()
28+
override fun listIterator(index: Int): ListIterator<ExternalUrl> = allExternalUrls.listIterator(index)
29+
override fun subList(fromIndex: Int, toIndex: Int): List<ExternalUrl> = allExternalUrls.subList(fromIndex, toIndex)
30+
}
31+
32+
public fun getExternalUrls(externalUrlsString: Map<String, String>): ExternalUrls {
33+
val externalUrls = externalUrlsString.map { ExternalUrl(it.key, it.value) }
34+
35+
return ExternalUrls(
36+
externalUrlsString["spotify"],
37+
externalUrls.filter { it.name != "spotify" },
38+
externalUrls
39+
)
40+
}

0 commit comments

Comments
 (0)