Skip to content
This repository was archived by the owner on Feb 4, 2025. It is now read-only.

Commit 43bea2c

Browse files
committed
Pass in status filter options for variations endpoint
1 parent 8555e9e commit 43bea2c

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

plugins/woocommerce/src/main/kotlin/org/wordpress/android/fluxc/network/rest/wpcom/wc/product/ProductRestClient.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,8 @@ class ProductRestClient @Inject constructor(
939939
offset: Int,
940940
includedVariationIds: List<Long> = emptyList(),
941941
searchQuery: String? = null,
942-
excludedVariationIds: List<Long> = emptyList()
942+
excludedVariationIds: List<Long> = emptyList(),
943+
filterOptions: Map<WCProductStore.VariationFilterOption, String>? = null,
943944
): WooPayload<List<WCProductVariationModel>> {
944945
val params = mutableMapOf(
945946
"per_page" to pageSize.toString(),
@@ -950,6 +951,10 @@ class ProductRestClient @Inject constructor(
950951
.putIfNotEmpty("include" to includedVariationIds.map { it }.joinToString())
951952
.putIfNotEmpty("exclude" to excludedVariationIds.map { it }.joinToString())
952953

954+
filterOptions?.let { options ->
955+
params.putAll(options.map { it.key.toString() to it.value })
956+
}
957+
953958
val url = WOOCOMMERCE.products.id(productId).variations.pathV3
954959

955960
val response = wooNetwork.executeGetGsonRequest(

plugins/woocommerce/src/main/kotlin/org/wordpress/android/fluxc/store/WCProductStore.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ class WCProductStore @Inject constructor(
113113
override fun toString() = name.lowercase(Locale.US)
114114
}
115115

116+
enum class VariationFilterOption {
117+
STATUS;
118+
119+
override fun toString() = name.lowercase(Locale.US)
120+
}
121+
116122
enum class SkuSearchOptions {
117123
Disabled, ExactSearch, PartialMatch
118124
}
@@ -1754,7 +1760,8 @@ class WCProductStore @Inject constructor(
17541760
offset: Int = 0,
17551761
pageSize: Int = DEFAULT_PRODUCT_VARIATIONS_PAGE_SIZE,
17561762
includedVariationIds: List<Long> = emptyList(),
1757-
excludedVariationIds: List<Long> = emptyList()
1763+
excludedVariationIds: List<Long> = emptyList(),
1764+
filterOptions: Map<VariationFilterOption, String>? = null,
17581765
): WooResult<Boolean> {
17591766
return coroutineEngine.withDefaultContext(API, this, "fetchProductVariations") {
17601767
val response = wcProductRestClient.fetchProductVariationsWithSyncRequest(
@@ -1763,7 +1770,8 @@ class WCProductStore @Inject constructor(
17631770
offset = offset,
17641771
pageSize = pageSize,
17651772
includedVariationIds = includedVariationIds,
1766-
excludedVariationIds = excludedVariationIds
1773+
excludedVariationIds = excludedVariationIds,
1774+
filterOptions = filterOptions
17671775
)
17681776
when {
17691777
response.isError -> WooResult(response.error)

0 commit comments

Comments
 (0)