Skip to content

Commit 1874938

Browse files
committed
Set Snapshot version
1 parent 4e02558 commit 1874938

File tree

6 files changed

+51
-14
lines changed

6 files changed

+51
-14
lines changed

example/AndroidOnlyExample/app/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach
5151
}
5252
}
5353

54-
val ktorfit = "1.14.0"
54+
val ktorfit = "2.0.0-beta1-SNAPSHOT"
5555
val ktor = "2.3.10"
5656
val compose_ui_version = "1.5.1"
5757
dependencies {
@@ -60,6 +60,7 @@ dependencies {
6060
implementation("io.ktor:ktor-client-serialization:$ktor")
6161
implementation("io.ktor:ktor-client-content-negotiation:$ktor")
6262
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktor")
63+
implementation("de.jensklingenberg.ktorfit:ktorfit-converters-response:$ktorfit")
6364

6465

6566
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")

example/AndroidOnlyExample/settings.gradle

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ pluginManagement {
44
google()
55
// mavenLocal()
66
mavenCentral()
7+
maven {
8+
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
9+
}
710
}
811
}
912
dependencyResolutionManagement {
@@ -12,6 +15,9 @@ dependencyResolutionManagement {
1215
google()
1316
// mavenLocal()
1417
mavenCentral()
18+
maven {
19+
url = uri("https://oss.sonatype.org/content/repositories/snapshots/")
20+
}
1521
}
1622
}
1723
rootProject.name = "AndroidOnlyExample"

ktorfit-lib-core/src/commonTest/kotlin/de/jensklingenberg/ktorfit/KtorfitTest.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package de.jensklingenberg.ktorfit
22

33
import de.jensklingenberg.ktorfit.converter.Converter
4+
import de.jensklingenberg.ktorfit.converter.KtorfitResult
45
import de.jensklingenberg.ktorfit.converter.builtin.DefaultSuspendResponseConverterFactory
56
import de.jensklingenberg.ktorfit.converter.TypeData
67
import io.ktor.client.request.HttpRequestData
@@ -95,8 +96,16 @@ class KtorfitTest {
9596
private class TestConverterFactory : Converter.Factory {
9697

9798
class SuspendConverter(val typeData: TypeData) : Converter.SuspendResponseConverter<HttpResponse, Any> {
98-
override suspend fun convert(response: HttpResponse): Any {
99-
return response.call.body(typeData.typeInfo)
99+
100+
override suspend fun convert(result: KtorfitResult): Any {
101+
when(result){
102+
is KtorfitResult.Success -> {
103+
return result.response.call.body(typeData.typeInfo)
104+
}
105+
is KtorfitResult.Failure -> {
106+
throw result.throwable
107+
}
108+
}
100109
}
101110
}
102111

ktorfit-lib-core/src/commonTest/kotlin/de/jensklingenberg/ktorfit/TestStringToIntRequestConverter.kt

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
package de.jensklingenberg.ktorfit
22

3-
import de.jensklingenberg.ktorfit.converter.request.RequestConverter
3+
4+
import de.jensklingenberg.ktorfit.converter.Converter
45
import kotlin.reflect.KClass
56

6-
class TestStringToIntRequestConverter : RequestConverter {
7-
override fun supportedType(parameterType: KClass<*>, requestType: KClass<*>): Boolean {
7+
class TestStringToIntRequestConverter : Converter.Factory {
8+
9+
private fun supportedType(parameterType: KClass<*>, requestType: KClass<*>): Boolean {
810
val parameterIsString = parameterType == String::class
911
val requestIsInt = requestType == Int::class
1012
return parameterIsString && requestIsInt
1113
}
1214

13-
override fun convert(data: Any): Any {
14-
return (data as String).toInt()
15+
class Test : Converter.RequestParameterConverter {
16+
override fun convert(data: Any): Any {
17+
return (data as String).toInt()
18+
}
19+
20+
}
21+
22+
override fun requestParameterConverter(
23+
parameterType: KClass<*>,
24+
requestType: KClass<*>
25+
): Converter.RequestParameterConverter? {
26+
if (!supportedType(parameterType, requestType)) return null
27+
return Test()
1528
}
1629
}
1730

ktorfit-lib-core/src/commonTest/kotlin/de/jensklingenberg/ktorfit/converter/RequestParameterConverterTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class RequestParameterConverterTest {
2121
}
2222

2323
val ktorfit =
24-
Ktorfit.Builder().httpClient(engine).baseUrl("http://www.test.de/").requestConverter(TestStringToIntRequestConverter()).build()
24+
Ktorfit.Builder().httpClient(engine).baseUrl("http://www.test.de/").converterFactories(TestStringToIntRequestConverter()).build()
2525

2626
val converted = KtorfitConverterHelper(ktorfit).convertParameterType("4", String::class, Int::class)
2727
assertEquals(4, converted)

ktorfit-lib-core/src/jvmTest/kotlin/de/jensklingenberg/ktorfit/converter/ConverterFactoryTest.kt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,19 @@ class ConverterFactoryTest {
4040
): Converter.SuspendResponseConverter<HttpResponse, *>? {
4141
if (typeData.qualifiedName == "kotlinx.coroutines.flow.Flow") {
4242
return object : Converter.SuspendResponseConverter<HttpResponse, Any> {
43-
override suspend fun convert(response: HttpResponse): Any {
44-
return try {
45-
response.body(typeInfo<Int>())
46-
} catch (ex: Exception) {
47-
Assert.assertTrue(ex is NoTransformationFoundException)
43+
44+
override suspend fun convert(result: KtorfitResult): Any {
45+
when(result){
46+
is KtorfitResult.Success -> {
47+
return try {
48+
result.response.body(typeInfo<Int>())
49+
} catch (ex: Exception) {
50+
Assert.assertTrue(ex is NoTransformationFoundException)
51+
}
52+
}
53+
is KtorfitResult.Failure -> {
54+
throw result.throwable
55+
}
4856
}
4957
}
5058
}

0 commit comments

Comments
 (0)