From 74e9e8a3bcb1926166289a6b5bbd4625047a09d5 Mon Sep 17 00:00:00 2001 From: ThomazFB Date: Tue, 3 Dec 2024 18:22:37 -0300 Subject: [PATCH 1/5] Add Serialization mapping to CustomPackageDTO and remove incorrect predefined field --- .../packages/networking/StorePackageDTOs.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/StorePackageDTOs.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/StorePackageDTOs.kt index 9b868b3db221..a9b4260c925b 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/StorePackageDTOs.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/StorePackageDTOs.kt @@ -1,8 +1,9 @@ package com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking +import com.google.gson.annotations.SerializedName + class SavedPackageInfoDTO { val custom: List? = null - val predefined: List? = null } class CustomPackageDTO { @@ -12,8 +13,14 @@ class CustomPackageDTO { val length: Double? = null val width: Double? = null val height: Double? = null + val type: String? = null + + @SerializedName("box_weight") val boxWeight: Double? = null + + @SerializedName("is_letter") val isLetter: Boolean? = null + + @SerializedName("is_user_defined") val isUserDefined: Boolean? = null - val type: String? = null } From 1461345e7433f6eddddf6821cde93eda00672e77 Mon Sep 17 00:00:00 2001 From: ThomazFB Date: Tue, 3 Dec 2024 18:23:05 -0300 Subject: [PATCH 2/5] Add Serialization mapping to PackageStoreOptionsDTO --- .../packages/networking/PackageResponseDTOs.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/PackageResponseDTOs.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/PackageResponseDTOs.kt index 8c8aad9853bf..a73898eb5c99 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/PackageResponseDTOs.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/PackageResponseDTOs.kt @@ -1,14 +1,23 @@ package com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking +import com.google.gson.annotations.SerializedName + class PackageResponse { val storeOptions: PackageStoreOptionsDTO? = null val packages: PackagesInfoDTO? = null } class PackageStoreOptionsDTO { + @SerializedName("currency_symbol") val currencySymbol: String? = null + + @SerializedName("dimension_unit") val dimensionUnit: String? = null + + @SerializedName("weight_unit") val weightUnit: String? = null + + @SerializedName("origin_country") val originCountry: String? = null } From 8459d4a3ea2190a4c577733b39c38afbe7ed804c Mon Sep 17 00:00:00 2001 From: ThomazFB Date: Tue, 3 Dec 2024 18:23:19 -0300 Subject: [PATCH 3/5] Add Serialization mapping to USPS and DHL Package DTOs --- .../packages/networking/CarrierPackageDTOs.kt | 36 +++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt index 4b4af8a5ebbd..886f61dca05a 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt @@ -1,19 +1,33 @@ package com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking +import com.google.gson.annotations.SerializedName + class CarrierPredefinedPackagesDTO { val usps: USPSPackageDTO? = null + + @SerializedName("dhlexpress") val dhlExpress: DHLPackageDTO? = null } class USPSPackageDTO { + @SerializedName("pri_flat_boxes") val flatBoxes: CarrierPackageGroupDTO? = null + + @SerializedName("pri_boxes") val boxes: CarrierPackageGroupDTO? = null + + @SerializedName("pri_express_boxes") val expressBoxes: CarrierPackageGroupDTO? = null + + @SerializedName("pri_envelopes") val envelopes: CarrierPackageGroupDTO? = null + + @SerializedName("pri_express_envelopes") val expressEnvelopes: CarrierPackageGroupDTO? = null } class DHLPackageDTO { + @SerializedName("domestic_and_international") val domesticAndInternationalPackages: CarrierPackageGroupDTO? = null } @@ -23,15 +37,31 @@ class CarrierPackageGroupDTO { } class PredefinedPackageDTO { + val id: String? = null + val name: String? = null + val dimensions: String? = null + + @SerializedName("inner_dimensions") val innerDimensions: String? = null + + @SerializedName("outer_dimensions") val outerDimensions: String? = null + + @SerializedName("box_weight") val boxWeight: Double? = null + + @SerializedName("is_flat_rate") val isFlatRate: Boolean? = null - val id: String? = null - val name: String? = null - val dimensions: String? = null + + @SerializedName("max_weight") val maxWeight: Double? = null + + @SerializedName("is_letter") val isLetter: Boolean? = null + + @SerializedName("group_id") val groupId: String? = null + + @SerializedName("can_ship_international") val canShipInternational: Boolean? = null } From fc6948bb49fe7c0dd398c1acf135f631c7f5db7a Mon Sep 17 00:00:00 2001 From: ThomazFB Date: Tue, 3 Dec 2024 18:28:11 -0300 Subject: [PATCH 4/5] Fix incorrect saved package mapping in WooShippingLabelPackageMapper --- .../packages/datasource/WooShippingLabelPackageMapper.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt index 3ea362d7feae..e2730b1ae50b 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt @@ -4,13 +4,13 @@ import com.woocommerce.android.ui.orders.wooshippinglabels.packages.datasource.C import com.woocommerce.android.ui.orders.wooshippinglabels.packages.datasource.CarrierType.USPS import com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking.CarrierPackageGroupDTO import com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking.CarrierPredefinedPackagesDTO +import com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking.CustomPackageDTO import com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking.PackageResponse -import com.woocommerce.android.ui.orders.wooshippinglabels.packages.networking.PredefinedPackageDTO import javax.inject.Inject class WooShippingLabelPackageMapper @Inject constructor() { operator fun invoke(response: PackageResponse): StorePackagesDAO { - val savedPackagesResponse = response.packages?.saved?.predefined ?: emptyList() + val savedPackagesResponse = response.packages?.saved?.custom ?: emptyList() return StorePackagesDAO( savedPackages = mapSavedPackages(savedPackagesResponse), @@ -18,7 +18,7 @@ class WooShippingLabelPackageMapper @Inject constructor() { ) } - private fun mapSavedPackages(savedResponse: List): List { + private fun mapSavedPackages(savedResponse: List): List { return savedResponse.map { PackageDAO( id = it.id.orEmpty(), From 5e38c78b2f0d957febfba93a35903d610816c9c0 Mon Sep 17 00:00:00 2001 From: ThomazFB Date: Tue, 3 Dec 2024 18:43:09 -0300 Subject: [PATCH 5/5] Remove error prone dimensions from CarrierPackageDTOs --- .../packages/datasource/WooShippingLabelPackageMapper.kt | 2 +- .../wooshippinglabels/packages/networking/CarrierPackageDTOs.kt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt index e2730b1ae50b..71951ed2cb6b 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/datasource/WooShippingLabelPackageMapper.kt @@ -59,7 +59,7 @@ class WooShippingLabelPackageMapper @Inject constructor() { PackageDAO( id = it.id.orEmpty(), name = it.name.orEmpty(), - dimensions = it.dimensions.orEmpty(), + dimensions = it.outerDimensions.orEmpty(), isLetter = it.isLetter ?: false ) } ?: emptyList() diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt index 886f61dca05a..dcbe14bf809b 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/wooshippinglabels/packages/networking/CarrierPackageDTOs.kt @@ -39,7 +39,6 @@ class CarrierPackageGroupDTO { class PredefinedPackageDTO { val id: String? = null val name: String? = null - val dimensions: String? = null @SerializedName("inner_dimensions") val innerDimensions: String? = null