Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.withContext
import org.wordpress.android.fluxc.store.WCProductStore
import org.wordpress.android.fluxc.store.WCProductStore.VariationFilterOption
import javax.inject.Inject

class VariationSelectorRepository @Inject constructor(
Expand All @@ -29,7 +30,7 @@ class VariationSelectorRepository @Inject constructor(
productId: Long,
offset: Int,
pageSize: Int,
filterOptions: Map<WCProductStore.VariationFilterOption, String>? = null
filterOptions: Map<VariationFilterOption, String>? = null
): Result<Boolean> {
return productStore.fetchProductVariations(
selectedSite.get(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ class WooPosVariationsDataSource @Inject constructor(
productId,
forceRefresh = true,
filterOptions = mapOf(
WCProductStore.VariationFilterOption.STATUS to "publish"
WCProductStore.VariationFilterOption.STATUS to VARIATION_STATUS_PUBLISH,
WCProductStore.VariationFilterOption.DOWNLOADABLE to VARIATION_DOWNLOADABLE_FALSE
)
)
if (result.isSuccess) {
Expand All @@ -74,7 +75,8 @@ class WooPosVariationsDataSource @Inject constructor(
val result = handler.loadMore(
productId,
filterOptions = mapOf(
WCProductStore.VariationFilterOption.STATUS to VARIATION_STATUS_PUBLISH
WCProductStore.VariationFilterOption.STATUS to VARIATION_STATUS_PUBLISH,
WCProductStore.VariationFilterOption.DOWNLOADABLE to VARIATION_DOWNLOADABLE_FALSE
)
)
if (result.isSuccess) {
Expand All @@ -90,6 +92,7 @@ class WooPosVariationsDataSource @Inject constructor(

companion object {
private const val VARIATION_STATUS_PUBLISH = "publish"
private const val VARIATION_DOWNLOADABLE_FALSE = "false"
}
}

Expand All @@ -105,5 +108,6 @@ sealed class FetchResult {
}

private fun List<ProductVariation>.applyFilter(): List<ProductVariation> {
return filter { !it.isDownloadable }
return filter { !it.isDownloadable } // Keeping this filter for now, but it should be removed in the future after
// WC 9.7.0 is released. https://a8c.slack.com/archives/C070SJRA8DP/p1736795937571479
}
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,10 @@ class WooPosVariationsDataSourceTest {
handler.fetchVariations(
productId,
forceRefresh = true,
mapOf(WCProductStore.VariationFilterOption.STATUS to "publish")
mapOf(
WCProductStore.VariationFilterOption.STATUS to "publish",
WCProductStore.VariationFilterOption.DOWNLOADABLE to "false"
)
)
)
.thenReturn(Result.failure(exception))
Expand Down Expand Up @@ -204,7 +207,13 @@ class WooPosVariationsDataSourceTest {
whenever(handler.getVariationsFlow(productId)).thenReturn(flowOf(sampleProducts))
val exception = Exception("Load more failed")
whenever(
handler.loadMore(productId, mapOf(WCProductStore.VariationFilterOption.STATUS to "publish")),
handler.loadMore(
productId,
mapOf(
WCProductStore.VariationFilterOption.STATUS to "publish",
WCProductStore.VariationFilterOption.DOWNLOADABLE to "false"
)
),
).thenReturn(Result.failure(exception))
whenever(variationsCache.get(productId)).thenReturn(sampleProducts)
val sut = WooPosVariationsDataSource(handler, variationsCache)
Expand Down Expand Up @@ -235,7 +244,10 @@ class WooPosVariationsDataSourceTest {
handler.fetchVariations(
productId,
forceRefresh = true,
mapOf(WCProductStore.VariationFilterOption.STATUS to "publish")
mapOf(
WCProductStore.VariationFilterOption.STATUS to "publish",
WCProductStore.VariationFilterOption.DOWNLOADABLE to "false"
)
)
).thenReturn(Result.failure(exception))
whenever(variationsCache.get(productId)).thenReturn(emptyList())
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ stripe-terminal = '3.7.1'
tinder-statemachine = '0.2.0'
wiremock = '2.26.3'
wordpress-aztec = 'v2.1.4'
wordpress-fluxc = 'trunk-0264533ce612f74e1ae6fcbaefeb69b252163774'
wordpress-fluxc = 'trunk-657a72d968f89dc2edd6a6e6e57f579643d1e213'
wordpress-login = 'trunk-706a58b33ff8f1a2858ae64e51204426ec12fe7b'
wordpress-libaddressinput = '0.0.2'
wordpress-mediapicker = '0.3.1'
Expand Down
Loading