Skip to content

Commit dd293d5

Browse files
authored
Merge pull request #438 from Ecwid/fix_ratesCalculationType
Fix deserialization of RatesCalculationType
2 parents c646397 + 87d4a45 commit dd293d5

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

src/main/kotlin/com/ecwid/apiclient/v3/dto/profile/result/FetchedStoreProfile.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,10 @@ data class FetchedStoreProfile(
334334
app;
335335

336336
override fun toString(): String {
337+
return asApiString()
338+
}
339+
340+
fun asApiString(): String {
337341
return super.toString().replace("_", "-")
338342
}
339343
}

src/main/kotlin/com/ecwid/apiclient/v3/jsontransformer/gson/GsonTransformer.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package com.ecwid.apiclient.v3.jsontransformer.gson
22

33
import com.ecwid.apiclient.v3.dto.product.result.GetProductFiltersResult.ProductFilters
4+
import com.ecwid.apiclient.v3.dto.profile.result.FetchedStoreProfile.RatesCalculationType
45
import com.ecwid.apiclient.v3.exception.JsonDeserializationException
56
import com.ecwid.apiclient.v3.impl.ParsedResponseWithExt
67
import com.ecwid.apiclient.v3.jsontransformer.JsonTransformer
78
import com.ecwid.apiclient.v3.jsontransformer.PolymorphicType
8-
import com.ecwid.apiclient.v3.jsontransformer.gson.typeadapters.GsonNullableUpdatedValueTypeAdapterFactory
9-
import com.ecwid.apiclient.v3.jsontransformer.gson.typeadapters.GsonPolymorphicDeserializer
10-
import com.ecwid.apiclient.v3.jsontransformer.gson.typeadapters.GsonProductFiltersDeserializer
11-
import com.ecwid.apiclient.v3.jsontransformer.gson.typeadapters.ParsedResponseWithExtDeserializer
9+
import com.ecwid.apiclient.v3.jsontransformer.gson.typeadapters.*
1210
import com.google.gson.*
1311

1412
class GsonTransformer(polymorphicTypes: List<PolymorphicType<*>>) : JsonTransformer {
@@ -23,6 +21,7 @@ class GsonTransformer(polymorphicTypes: List<PolymorphicType<*>>) : JsonTransfor
2321
gsonBuilder.registerTypeAdapter(ProductFilters::class.java, GsonProductFiltersDeserializer())
2422
gsonBuilder.registerTypeAdapter(ParsedResponseWithExt::class.java, ParsedResponseWithExtDeserializer())
2523
gsonBuilder.registerTypeAdapterFactory(GsonNullableUpdatedValueTypeAdapterFactory)
24+
gsonBuilder.registerTypeAdapter(RatesCalculationType::class.java, RatesCalculationTypeDeserializer())
2625
}
2726
.create()
2827

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.ecwid.apiclient.v3.jsontransformer.gson.typeadapters
2+
3+
import com.ecwid.apiclient.v3.dto.profile.result.FetchedStoreProfile.RatesCalculationType
4+
import com.google.gson.JsonDeserializationContext
5+
import com.google.gson.JsonDeserializer
6+
import com.google.gson.JsonElement
7+
import java.lang.reflect.Type
8+
9+
class RatesCalculationTypeDeserializer : JsonDeserializer<RatesCalculationType> {
10+
override fun deserialize(
11+
json: JsonElement,
12+
typeOfT: Type,
13+
context: JsonDeserializationContext
14+
): RatesCalculationType? {
15+
val strValue = json.asString
16+
return RatesCalculationType.entries.firstOrNull { it.asApiString() == strValue }
17+
}
18+
}

0 commit comments

Comments
 (0)