Skip to content

Commit 331d6de

Browse files
committed
remove cache test func
Signed-off-by: Adam Ratzman <[email protected]>
1 parent c2abda8 commit 331d6de

File tree

9 files changed

+54
-39
lines changed

9 files changed

+54
-39
lines changed

src/androidMain/kotlin/com/adamratzman/spotify/http/Endpoints.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ import android.os.Build.VERSION_CODES
66
import android.util.Base64
77
import java.net.URLEncoder
88

9-
actual fun SpotifyCache.f() {}
10-
119
internal actual fun String.encodeUrl() = URLEncoder.encode(this, "UTF-8")!!
1210

1311
internal actual fun String.base64ByteEncode(): String {
1412
return if (VERSION.SDK_INT >= VERSION_CODES.O) {
1513
java.util.Base64.getUrlEncoder()
16-
.withoutPadding()
17-
.encodeToString(toByteArray())
14+
.withoutPadding()
15+
.encodeToString(toByteArray())
1816
} else {
1917
Base64.encodeToString(toByteArray(), Base64.DEFAULT)
2018
}

src/commonMain/kotlin/com.adamratzman.spotify/http/Endpoints.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,16 @@ import com.adamratzman.spotify.models.ErrorResponse
1010
import com.adamratzman.spotify.models.serialization.toObject
1111
import com.adamratzman.spotify.utils.ConcurrentHashMap
1212
import com.adamratzman.spotify.utils.getCurrentTimeMs
13-
import kotlin.math.ceil
1413
import kotlinx.coroutines.TimeoutCancellationException
1514
import kotlinx.coroutines.withTimeout
1615
import kotlinx.serialization.Serializable
1716
import kotlinx.serialization.Transient
18-
19-
expect fun SpotifyCache.f()
17+
import kotlin.math.ceil
2018

2119
public abstract class SpotifyEndpoint(public val api: GenericSpotifyApi) {
2220
public val cache: SpotifyCache = SpotifyCache()
2321
internal val json get() = api.spotifyApiOptions.json
2422

25-
init {
26-
cache.f()
27-
}
28-
2923
internal fun endpointBuilder(path: String) = EndpointBuilder(path, api)
3024

3125
protected fun checkBulkRequesting(maxSize: Int, itemSize: Int) {

src/commonMain/kotlin/com.adamratzman.spotify/http/HttpConnection.kt

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ public class HttpConnection constructor(
9595

9696
if (respCode == 502 && retryIf502) {
9797
api?.logger?.logError(
98-
false,
99-
"Received 502 (Invalid response) for URL $url and $this (${response.readText()})\nRetrying..",
100-
null
98+
false,
99+
"Received 502 (Invalid response) for URL $url and $this (${response.readText()})\nRetrying..",
100+
null
101101
)
102102
return@let execute(additionalHeaders, retryIf502 = false)
103103
} else if (respCode == 502 && !retryIf502) {
@@ -108,9 +108,9 @@ public class HttpConnection constructor(
108108
val ratelimit = response.headers["Retry-After"]!!.toLong() + 1L
109109
if (api?.spotifyApiOptions?.retryWhenRateLimited == true) {
110110
api.logger.logError(
111-
false,
112-
"The request ($url) was ratelimited for $ratelimit seconds at ${getCurrentTimeMs()}",
113-
null
111+
false,
112+
"The request ($url) was ratelimited for $ratelimit seconds at ${getCurrentTimeMs()}",
113+
null
114114
)
115115

116116
delay(ratelimit * 1000)
@@ -120,7 +120,7 @@ public class HttpConnection constructor(
120120

121121
val body = response.readText()
122122
if (respCode == 401 && body.contains("access token") &&
123-
api != null && api.spotifyApiOptions.automaticRefresh
123+
api != null && api.spotifyApiOptions.automaticRefresh
124124
) {
125125
api.refreshToken()
126126
val newAdditionalHeaders = additionalHeaders?.toMutableList() ?: mutableListOf()
@@ -129,26 +129,38 @@ public class HttpConnection constructor(
129129
}
130130

131131
return HttpResponse(
132-
responseCode = respCode,
133-
body = body,
134-
headers = response.headers.entries().map { (key, value) ->
135-
HttpHeader(
136-
key,
137-
value.getOrNull(0) ?: "null"
138-
)
139-
}
132+
responseCode = respCode,
133+
body = body,
134+
headers = response.headers.entries().map { (key, value) ->
135+
HttpHeader(
136+
key,
137+
value.getOrNull(0) ?: "null"
138+
)
139+
}
140140
)
141141
}
142142
} catch (e: CancellationException) {
143143
throw e
144144
} catch (e: ResponseException) {
145145
val errorBody = e.response.readText()
146146
try {
147-
val error = errorBody.toObject(ErrorResponse.serializer(), api, api?.spotifyApiOptions?.json ?: nonstrictJson).error
147+
val error = errorBody.toObject(
148+
ErrorResponse.serializer(),
149+
api,
150+
api?.spotifyApiOptions?.json ?: nonstrictJson
151+
).error
148152
throw BadRequestException(error.copy(reason = (error.reason ?: "") + " URL: $url"))
149153
} catch (ignored: ParseException) {
150-
val error = errorBody.toObject(AuthenticationError.serializer(), api, api?.spotifyApiOptions?.json ?: nonstrictJson)
151-
throw AuthenticationException(error)
154+
try {
155+
val error = errorBody.toObject(
156+
AuthenticationError.serializer(),
157+
api,
158+
api?.spotifyApiOptions?.json ?: nonstrictJson
159+
)
160+
throw AuthenticationException(error)
161+
} catch (ignored: ParseException) {
162+
throw e
163+
}
152164
}
153165
}
154166
}

src/commonTest/kotlin/com.adamratzman/spotify/Common.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,17 @@ suspend fun buildSpotifyApi() = when {
4343
}.build().also { instantiationCompleted = true; apiBacking = it }
4444
}
4545
clientId?.isNotBlank() == true -> {
46-
println("building")
4746
spotifyAppApi {
4847
credentials {
4948
clientId = com.adamratzman.spotify.clientId
5049
clientSecret = com.adamratzman.spotify.clientSecret
5150
}
5251
}.build().also {
53-
println("built");instantiationCompleted = true; apiBacking = it;println("through seq")
52+
instantiationCompleted = true; apiBacking = it
5453
}
5554
}
5655
else -> null.also { instantiationCompleted = true }
57-
}?.also { print("done when") }
56+
}
5857

5958
expect fun getEnvironmentVariable(name: String): String?
6059

src/commonTest/kotlin/com.adamratzman/spotify/priv/ClientFollowingApiTest.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,6 @@ class ClientFollowingApiTest {
7171
)
7272
}
7373
assertFailsWithSuspend<SpotifyException.BadRequestException> { api.following.unfollowArtist("no u") }
74-
75-
println("here")
7674
}
7775
}
7876

src/commonTest/kotlin/com.adamratzman/spotify/priv/ClientPlaylistApiTest.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class ClientPlaylistApiTest {
111111

112112
api.playlists.addTracksToClientPlaylist(createdPlaylist.id, "3WDIhWoRWVcaHdRwMEHkkS", "7FjZU7XFs7P9jHI9Z0yRhK")
113113

114-
if (platform != Platform.ANDROID) {
114+
if (platform !in listOf(Platform.ANDROID, Platform.NATIVE)) {
115115
api.playlists.uploadClientPlaylistCover(
116116
createdPlaylist.id,
117117
imageUrl = "https://developer.spotify.com/assets/WebAPI_intro.png"
@@ -151,44 +151,60 @@ class ClientPlaylistApiTest {
151151

152152
val trackIdOne = "3WDIhWoRWVcaHdRwMEHkkS"
153153
val trackIdTwo = "7FjZU7XFs7P9jHI9Z0yRhK"
154+
println(1)
154155
api.playlists.addTracksToClientPlaylist(createdPlaylist.id, trackIdOne, trackIdOne, trackIdTwo, trackIdTwo)
156+
println(2)
155157

156158
assertTrue(api.playlists.getPlaylistTracks(createdPlaylist.id).items.size == 4)
159+
println(3)
157160

158161
api.playlists.removeTrackFromClientPlaylist(createdPlaylist.id, trackIdOne)
162+
println(4)
159163

160164
assertEquals(
161165
listOf(trackIdTwo, trackIdTwo),
162166
api.playlists.getPlaylistTracks(createdPlaylist.id).items.map { it.track?.id })
167+
println(5)
163168

164169
api.playlists.addTrackToClientPlaylist(createdPlaylist.id, trackIdOne)
170+
println(6)
165171

166172
api.playlists.removeTrackFromClientPlaylist(createdPlaylist.id, trackIdTwo, SpotifyTrackPositions(1))
173+
println(7)
167174

168175
assertEquals(
169176
listOf(trackIdTwo, trackIdOne),
170177
api.playlists.getPlaylistTracks(createdPlaylist.id).items.map { it.track?.id })
178+
println(8)
171179

172180
api.playlists.setClientPlaylistTracks(createdPlaylist.id, trackIdOne, trackIdOne, trackIdTwo, trackIdTwo)
181+
println(9)
173182

174183
api.playlists.removeTracksFromClientPlaylist(createdPlaylist.id, trackIdOne, trackIdTwo)
184+
println(10)
175185

176186
assertTrue(api.playlists.getPlaylistTracks(createdPlaylist.id).items.isEmpty())
187+
println(11)
177188

178189
api.playlists.setClientPlaylistTracks(createdPlaylist.id, trackIdTwo, trackIdOne, trackIdTwo, trackIdTwo, trackIdOne)
190+
println(12)
179191

180192
api.playlists.removeTracksFromClientPlaylist(
181193
createdPlaylist.id, Pair(trackIdOne, SpotifyTrackPositions(4)),
182194
Pair(trackIdTwo, SpotifyTrackPositions(0))
183195
)
196+
println(13)
184197

185198
assertEquals(
186199
listOf(trackIdOne, trackIdTwo, trackIdTwo),
187200
api.playlists.getPlaylistTracks(createdPlaylist.id).items.map { it.track?.id })
201+
println(14)
188202

189203
assertFailsWithSuspend<SpotifyException.BadRequestException> {
190204
api.playlists.removeTracksFromClientPlaylist(createdPlaylist.id, Pair(trackIdOne, SpotifyTrackPositions(3)))
191205
}
206+
println(15)
207+
192208

193209
tearDown()
194210
}

src/jsMain/kotlin/com/adamratzman/spotify/http/Endpoints.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.adamratzman.spotify.http
33

44
import com.adamratzman.spotify.utils.encodeToBase64
55
import io.ktor.http.encodeURLQueryComponent
6-
actual fun SpotifyCache.f() {}
6+
77
internal actual fun String.base64ByteEncode(): String {
88
return this.encodeToBase64()
99
}

src/jvmMain/kotlin/com/adamratzman/spotify/http/Endpoints.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.adamratzman.spotify.http
33

44
import java.net.URLEncoder
55
import java.util.Base64
6-
actual fun SpotifyCache.f() {}
6+
77
internal actual fun String.encodeUrl() = URLEncoder.encode(this, "UTF-8")!!
88
internal actual fun String.base64ByteEncode(): String {
99
return Base64.getEncoder().encodeToString(toByteArray())

src/nativeMain/kotlin/com/adamratzman/spotify/http/Endpoints.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ package com.adamratzman.spotify.http
33

44
import com.adamratzman.spotify.utils.encodeToBase64
55
import io.ktor.http.encodeURLQueryComponent
6-
import kotlin.native.concurrent.ensureNeverFrozen
76

8-
actual fun SpotifyCache.f() { println("reached");println("after")}
97
internal actual fun String.base64ByteEncode(): String {
108
return this.encodeToBase64()
119
}

0 commit comments

Comments
 (0)