Skip to content

Commit

Permalink
Add support for configuration/countries endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
thesandipv authored and ChrisKruegerDev committed Jun 10, 2024
1 parent 342cfeb commit e8a216b
Show file tree
Hide file tree
Showing 4 changed files with 1,284 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package app.moviebase.tmdb.api

import app.moviebase.tmdb.model.TmdbConfiguration
import app.moviebase.tmdb.core.endPointV3
import app.moviebase.tmdb.model.TmdbConfiguration
import app.moviebase.tmdb.model.TmdbConfigurationCountry
import io.ktor.client.*
import io.ktor.client.call.*
import io.ktor.client.request.*
Expand All @@ -15,4 +16,12 @@ class TmdbConfigurationApi internal constructor(private val client: HttpClient)
suspend fun getApiConfiguration(): TmdbConfiguration = client.get {
endPointV3("configuration")
}.body()

/**
* Get the list of countries (ISO 3166-1 tags) used throughout TMDB.
* [Documentation](https://developer.themoviedb.org/reference/configuration-countries)
*/
suspend fun getCountries(): List<TmdbConfigurationCountry> = client.get {
endPointV3("configuration", "countries")
}.body()
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable
@Serializable
data class TmdbConfiguration(
@SerialName("images") val images: TmdbImagesConfiguration,
@SerialName("change_keys") val changeKeys: List<String> = emptyList()
@SerialName("change_keys") val changeKeys: List<String> = emptyList(),
)

@Serializable
Expand All @@ -17,5 +17,12 @@ data class TmdbImagesConfiguration(
@SerialName("poster_sizes") val posterSizes: List<String> = emptyList(),
@SerialName("logo_sizes") val logoSizes: List<String> = emptyList(),
@SerialName("profile_sizes") val profileSizes: List<String> = emptyList(),
@SerialName("still_sizes") val stillSizes: List<String> = emptyList()
@SerialName("still_sizes") val stillSizes: List<String> = emptyList(),
)

@Serializable
data class TmdbConfigurationCountry(
@SerialName("iso_3166_1") val iso3166: String,
@SerialName("english_name") val englishName: String,
@SerialName("native_name") val nativeName: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ class TmdbConfigurationApiTest {
val client = mockHttpClient(
version = 3,
responses = mapOf(
"configuration" to "configuration/configuration.json"
"configuration" to "configuration/configuration.json",
"configuration/countries" to "configuration/countries.json"
)
)

Expand All @@ -30,4 +31,10 @@ class TmdbConfigurationApiTest {
assertThat(config.images.profileSizes).isNotEmpty()
assertThat(config.images.stillSizes).isNotEmpty()
}

@Test
fun `it can fetch configuration countries`() = runTest {
assertThat(api.getCountries()).isNotEmpty()
}

}
Loading

0 comments on commit e8a216b

Please sign in to comment.