From 1d9a40b37f0886a6fca53e5f1dd5e93a8b6f7232 Mon Sep 17 00:00:00 2001 From: malinajirka Date: Wed, 29 Oct 2025 14:38:14 +0100 Subject: [PATCH 1/6] Add common interface for product and variation fetch result --- .../WooPosLocalCatalogFetchProductsResult.kt | 14 ++++++++------ .../pos/localcatalog/WooPosPaginatedFetchResult.kt | 10 ++++++++++ .../localcatalog/WooPosVariationsFetchResult.kt | 14 ++++++++------ 3 files changed, 26 insertions(+), 12 deletions(-) create mode 100644 libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosPaginatedFetchResult.kt diff --git a/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosLocalCatalogFetchProductsResult.kt b/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosLocalCatalogFetchProductsResult.kt index b886d82843d3..4141138e8aed 100644 --- a/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosLocalCatalogFetchProductsResult.kt +++ b/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosLocalCatalogFetchProductsResult.kt @@ -4,9 +4,11 @@ import org.wordpress.android.fluxc.persistence.entity.pos.WooPosProductEntity data class WooPosLocalCatalogFetchProductsResult( val products: List, - val syncedCount: Int, - val hasMore: Boolean, - val nextPage: Int, - val totalPages: Int, - val serverDate: String, -) + override val syncedCount: Int, + override val hasMore: Boolean, + override val nextPage: Int, + override val totalPages: Int, + override val serverDate: String, +) : WooPosPaginatedFetchResult { + override val items: List get() = products +} diff --git a/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosPaginatedFetchResult.kt b/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosPaginatedFetchResult.kt new file mode 100644 index 000000000000..7e30980d8535 --- /dev/null +++ b/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosPaginatedFetchResult.kt @@ -0,0 +1,10 @@ +package org.wordpress.android.fluxc.store.pos.localcatalog + +sealed interface WooPosPaginatedFetchResult { + val items: List + val syncedCount: Int + val hasMore: Boolean + val nextPage: Int + val totalPages: Int + val serverDate: String +} \ No newline at end of file diff --git a/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosVariationsFetchResult.kt b/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosVariationsFetchResult.kt index 22673df11cfa..820c3739e355 100644 --- a/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosVariationsFetchResult.kt +++ b/libs/fluxc-plugin/src/main/kotlin/org/wordpress/android/fluxc/store/pos/localcatalog/WooPosVariationsFetchResult.kt @@ -4,9 +4,11 @@ import org.wordpress.android.fluxc.persistence.entity.pos.WooPosVariationEntity data class WooPosVariationsFetchResult( val variations: List, - val syncedCount: Int, - val hasMore: Boolean, - val nextPage: Int, - val totalPages: Int, - val serverDate: String, -) + override val syncedCount: Int, + override val hasMore: Boolean, + override val nextPage: Int, + override val totalPages: Int, + override val serverDate: String, +) : WooPosPaginatedFetchResult { + override val items: List get() = variations +} From bbe91d64a22f70b1c71ca541797fe70b060fc526 Mon Sep 17 00:00:00 2001 From: malinajirka Date: Wed, 29 Oct 2025 14:39:01 +0100 Subject: [PATCH 2/6] Add PaginatedSyncHelper to reduce code duplication --- .idea/inspectionProfiles/Project_Default.xml | 3 +- .../woopos/localcatalog/WooPosSyncAction.kt | 268 +++++++----------- .../WooPosPaginatedFetchResult.kt | 2 +- 3 files changed, 110 insertions(+), 163 deletions(-) diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index f73f4d325e75..1129ee34ba7f 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -80,5 +80,6 @@