- HttpClientFactory.create(engine) with the engine injected (MockEngine seam for tests): ContentNegotiation JSON (ignoreUnknownKeys), Kermit-backed Ktor logging, default JSON request. - safeCall / responseToResult (status -> DataError.Network, extended with 400/403/404/503) / constructRoute (reads BuildConfig.BASE_URL) and typed HttpClient.get/post/delete. - BASE_URL BuildConfig field = Rick & Morty API. - coreDataModule: single<HttpClient> via factory lambda (the one sanctioned lambda-DSL binding).
23 lines
562 B
Kotlin
23 lines
562 B
Kotlin
plugins {
|
|
alias(libs.plugins.architecture.android.library)
|
|
alias(libs.plugins.architecture.ktor)
|
|
alias(libs.plugins.architecture.koin)
|
|
}
|
|
|
|
android {
|
|
namespace = "com.example.architecture.core.data"
|
|
|
|
buildFeatures {
|
|
buildConfig = true
|
|
}
|
|
defaultConfig {
|
|
// The no-key Rick & Morty API. constructRoute() reads this BuildConfig field.
|
|
buildConfigField("String", "BASE_URL", "\"https://rickandmortyapi.com/api\"")
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(project(":core:domain"))
|
|
implementation(libs.kermit)
|
|
}
|