Skip to content

Commit f983c19

Browse files
committed
use marketName for Market.FROM_TOKEN instead of enum name
1 parent 32328e8 commit f983c19

File tree

5 files changed

+14
-6
lines changed

5 files changed

+14
-6
lines changed

src/commonMain/kotlin/com.adamratzman.spotify/endpoints/pub/ArtistApi.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.adamratzman.spotify.models.serialization.toObject
1717
import com.adamratzman.spotify.utils.Market
1818
import com.adamratzman.spotify.utils.catch
1919
import com.adamratzman.spotify.utils.encodeUrl
20+
import com.adamratzman.spotify.utils.getSpotifyId
2021
import kotlinx.serialization.builtins.ListSerializer
2122

2223
/**
@@ -123,7 +124,7 @@ public class ArtistApi(api: GenericSpotifyApi) : SpotifyEndpoint(api) {
123124
public suspend fun getArtistTopTracks(artist: String, market: Market = Market.US): List<Track> = get(
124125
endpointBuilder("/artists/${ArtistUri(artist).id.encodeUrl()}/top-tracks").with(
125126
"country",
126-
market.name
127+
market.getSpotifyId()
127128
).toString()
128129
).toInnerArray(ListSerializer(Track.serializer()), "tracks", json)
129130

src/commonMain/kotlin/com.adamratzman.spotify/endpoints/pub/EpisodeApi.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.adamratzman.spotify.models.serialization.toObject
1313
import com.adamratzman.spotify.utils.Market
1414
import com.adamratzman.spotify.utils.catch
1515
import com.adamratzman.spotify.utils.encodeUrl
16+
import com.adamratzman.spotify.utils.getSpotifyId
1617

1718
/**
1819
* Endpoints for retrieving information about one or more episodes from the Spotify catalog.
@@ -38,7 +39,7 @@ public open class EpisodeApi(api: GenericSpotifyApi) : SpotifyEndpoint(api) {
3839
public suspend fun getEpisode(id: String, market: Market): Episode? {
3940
return catch {
4041
get(
41-
endpointBuilder("/episodes/${EpisodeUri(id).id.encodeUrl()}").with("market", market.name).toString()
42+
endpointBuilder("/episodes/${EpisodeUri(id).id.encodeUrl()}").with("market", market.getSpotifyId()).toString()
4243
).toObject(Episode.serializer(), api, json)
4344
}
4445
}
@@ -67,7 +68,7 @@ public open class EpisodeApi(api: GenericSpotifyApi) : SpotifyEndpoint(api) {
6768
return bulkStatelessRequest(50, ids.toList()) { chunk ->
6869
get(
6970
endpointBuilder("/episodes").with("ids", chunk.joinToString(",") { EpisodeUri(it).id.encodeUrl() })
70-
.with("market", market.name).toString()
71+
.with("market", market.getSpotifyId()).toString()
7172
).toObject(EpisodeList.serializer(), api, json).episodes
7273
}.flatten()
7374
}

src/commonMain/kotlin/com.adamratzman.spotify/endpoints/pub/ShowApi.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import com.adamratzman.spotify.models.serialization.toObject
1717
import com.adamratzman.spotify.utils.Market
1818
import com.adamratzman.spotify.utils.catch
1919
import com.adamratzman.spotify.utils.encodeUrl
20+
import com.adamratzman.spotify.utils.getSpotifyId
2021

2122
/**
2223
* Endpoints for retrieving information about one or more shows and their episodes from the Spotify catalog.
@@ -42,7 +43,7 @@ public open class ShowApi(api: GenericSpotifyApi) : SpotifyEndpoint(api) {
4243
public suspend fun getShow(id: String, market: Market): Show? {
4344
return catch {
4445
get(
45-
endpointBuilder("/shows/${ShowUri(id).id.encodeUrl()}").with("market", market.name).toString()
46+
endpointBuilder("/shows/${ShowUri(id).id.encodeUrl()}").with("market", market.getSpotifyId()).toString()
4647
).toObject(Show.serializer(), api, json)
4748
}
4849
}
@@ -70,7 +71,7 @@ public open class ShowApi(api: GenericSpotifyApi) : SpotifyEndpoint(api) {
7071
return bulkStatelessRequest(50, ids.toList()) { chunk ->
7172
get(
7273
endpointBuilder("/shows").with("ids", chunk.joinToString(",") { ShowUri(it).id.encodeUrl() })
73-
.with("market", market.name).toString()
74+
.with("market", market.getSpotifyId()).toString()
7475
).toObject(ShowList.serializer(), api, json).shows
7576
}.flatten()
7677
}
@@ -99,6 +100,6 @@ public open class ShowApi(api: GenericSpotifyApi) : SpotifyEndpoint(api) {
99100
market: Market
100101
): PagingObject<SimpleEpisode> = get(
101102
endpointBuilder("/shows/${ShowUri(id).id.encodeUrl()}/episodes").with("limit", limit)
102-
.with("offset", offset).with("market", market.name).toString()
103+
.with("offset", offset).with("market", market.getSpotifyId()).toString()
103104
).toNonNullablePagingObject(SimpleEpisode.serializer(), null, api, json)
104105
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1829,3 +1829,7 @@ public enum class Market(
18291829
NOT_USED
18301830
}
18311831
}
1832+
1833+
internal fun Market.getSpotifyId(): String {
1834+
return if (this == Market.FROM_TOKEN) this.marketName else this.name
1835+
}

src/commonTest/kotlin/com.adamratzman/spotify/pub/PublicArtistsApiTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,6 @@ class PublicArtistsApiTest : AbstractTest<GenericSpotifyApi>() {
6969
assertFailsWith<SpotifyException.BadRequestException> { api.artists.getArtistTopTracks("no") }
7070
assertTrue(api.artists.getArtistTopTracks("4ZGK4hkNX6pilPpyy4YJJW").isNotEmpty())
7171
assertTrue(api.artists.getArtistTopTracks("4ZGK4hkNX6pilPpyy4YJJW", Market.FR).isNotEmpty())
72+
assertTrue(api.artists.getArtistTopTracks("4ZGK4hkNX6pilPpyy4YJJW", Market.FROM_TOKEN).isNotEmpty())
7273
}
7374
}

0 commit comments

Comments
 (0)