-
Notifications
You must be signed in to change notification settings - Fork 80
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* CIF-1964 - Show staged flag in product component (#510) * introduce product v2 for 'staged' Magento field * adapt unit tests for component v2 * ensure the product and variant queries can be extended "multiple times" * add @SInCE annotation to product interface * add readme * update Magento schema to 2.4.2 EE * add mandatory "staged" field to the mock JSON responses * extend unit tests to test both product v1 and v2 components * fix POM dependencies and remove no longer needed picker implementation Co-authored-by: Levente Santha <levente@adobe.com> * CIF-1965 - Show staged flag in productlist component (#519) * create productlist v2 component * update unit tests and GraphQL mock server for Venia ITs * CIF-1964 - Show staged flag in product component (#510) * introduce product v2 for 'staged' Magento field * adapt unit tests for component v2 * ensure the product and variant queries can be extended "multiple times" * add @SInCE annotation to product interface * add readme * update Magento schema to 2.4.2 EE * add mandatory "staged" field to the mock JSON responses * extend unit tests to test both product v1 and v2 components * fix POM dependencies and remove no longer needed picker implementation Co-authored-by: Levente Santha <levente@adobe.com> * CIF-1965 - Show staged flag in productlist component (#519) * create productlist v2 component * update unit tests and GraphQL mock server for Venia ITs * trivial - update on lastest master branch, fix failing tests * trivial - update on lastest master branch, fix failing tests * CIF-1965 - fix test and cleanup test data * CIF-1965 - fix failing example tests * CIF-1965 - fix failing ITs * trivial - fix baseline check Co-authored-by: Christophe Jelger <jelger@adobe.com> Co-authored-by: Levente Santha <levente@adobe.com>
- Loading branch information
1 parent
38c3ae6
commit 6907ca9
Showing
48 changed files
with
753 additions
and
127 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
60 changes: 60 additions & 0 deletions
60
...in/java/com/adobe/cq/commerce/core/components/internal/models/v2/product/ProductImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
/******************************************************************************* | ||
* | ||
* Copyright 2021 Adobe. All rights reserved. | ||
* This file is licensed to you under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. You may obtain a copy | ||
* of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under | ||
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS | ||
* OF ANY KIND, either express or implied. See the License for the specific language | ||
* governing permissions and limitations under the License. | ||
* | ||
******************************************************************************/ | ||
|
||
package com.adobe.cq.commerce.core.components.internal.models.v2.product; | ||
|
||
import javax.annotation.PostConstruct; | ||
|
||
import org.apache.sling.api.SlingHttpServletRequest; | ||
import org.apache.sling.models.annotations.Model; | ||
|
||
import com.adobe.cq.commerce.core.components.models.product.Product; | ||
import com.adobe.cq.commerce.magento.graphql.ConfigurableProduct; | ||
import com.adobe.cq.commerce.magento.graphql.GroupedProduct; | ||
import com.adobe.cq.commerce.magento.graphql.ProductInterface; | ||
|
||
@Model( | ||
adaptables = SlingHttpServletRequest.class, | ||
adapters = Product.class, | ||
resourceType = ProductImpl.RESOURCE_TYPE, | ||
cache = true) | ||
public class ProductImpl extends com.adobe.cq.commerce.core.components.internal.models.v1.product.ProductImpl implements Product { | ||
|
||
public static final String RESOURCE_TYPE = "core/cif/components/commerce/product/v2/product"; | ||
|
||
@PostConstruct | ||
protected void initModel() { | ||
super.initModel(); | ||
if (productRetriever != null) { | ||
productRetriever.extendProductQueryWith(p -> p.staged()); | ||
productRetriever.extendVariantQueryWith(v -> v.staged()); | ||
} | ||
} | ||
|
||
@Override | ||
public Boolean isStaged() { | ||
// A product is considered "staged" if the product itself or one of its variant or item is "staged" | ||
ProductInterface product = productRetriever.fetchProduct(); | ||
if (Boolean.TRUE.equals(product.getStaged())) { | ||
return true; | ||
} else if (isConfigurable()) { | ||
ConfigurableProduct cp = (ConfigurableProduct) product; | ||
return cp.getVariants().stream().anyMatch(v -> Boolean.TRUE.equals(v.getProduct().getStaged())); | ||
} else if (isGroupedProduct()) { | ||
GroupedProduct gp = (GroupedProduct) product; | ||
return gp.getItems().stream().anyMatch(i -> Boolean.TRUE.equals(i.getProduct().getStaged())); | ||
} | ||
return false; | ||
} | ||
} |
47 changes: 47 additions & 0 deletions
47
...com/adobe/cq/commerce/core/components/internal/models/v2/productlist/ProductListImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/******************************************************************************* | ||
* | ||
* Copyright 2021 Adobe. All rights reserved. | ||
* This file is licensed to you under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. You may obtain a copy | ||
* of the License at http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software distributed under | ||
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS | ||
* OF ANY KIND, either express or implied. See the License for the specific language | ||
* governing permissions and limitations under the License. | ||
* | ||
******************************************************************************/ | ||
|
||
package com.adobe.cq.commerce.core.components.internal.models.v2.productlist; | ||
|
||
import javax.annotation.PostConstruct; | ||
|
||
import org.apache.sling.api.SlingHttpServletRequest; | ||
import org.apache.sling.models.annotations.Model; | ||
|
||
import com.adobe.cq.commerce.core.components.models.productlist.ProductList; | ||
|
||
@Model( | ||
adaptables = SlingHttpServletRequest.class, | ||
adapters = ProductList.class, | ||
resourceType = ProductListImpl.RESOURCE_TYPE, | ||
cache = true) | ||
public class ProductListImpl extends com.adobe.cq.commerce.core.components.internal.models.v1.productlist.ProductListImpl implements | ||
ProductList { | ||
|
||
public static final String RESOURCE_TYPE = "core/cif/components/commerce/productlist/v2/productlist"; | ||
|
||
@PostConstruct | ||
protected void initModel() { | ||
super.initModel(); | ||
if (categoryRetriever != null) { | ||
categoryRetriever.extendCategoryQueryWith(c -> c.staged()); | ||
categoryRetriever.extendProductQueryWith(p -> p.staged()); | ||
} | ||
} | ||
|
||
@Override | ||
public Boolean isStaged() { | ||
return getCategory() != null ? Boolean.TRUE.equals(getCategory().getStaged()) : false; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.