diff --git a/subprojects/client/src/integrationTest/groovy/com/bol/openapi/OpenApiClientIntegrationSpec.groovy b/subprojects/client/src/integrationTest/groovy/com/bol/openapi/OpenApiClientIntegrationSpec.groovy
index 5ec6252..071c45c 100644
--- a/subprojects/client/src/integrationTest/groovy/com/bol/openapi/OpenApiClientIntegrationSpec.groovy
+++ b/subprojects/client/src/integrationTest/groovy/com/bol/openapi/OpenApiClientIntegrationSpec.groovy
@@ -101,6 +101,33 @@ class OpenApiClientIntegrationSpec extends Specification {
product.offerData.offers.size() >= 1
}
+ def 'Return products and categories'() {
+ def results = OpenApiClient.withDefaultClient(apiKey).searchBuilder()
+ .term('harry potter')
+ .dataType(QueryDataType.DataType.PRODUCTS)
+ .dataType(QueryDataType.DataType.CATEGORIES)
+ .search()
+
+ expect:
+ results.totalResultSize >= 1
+ results.products.size() > 0
+ results.categories.size() > 0
+ results.refinementGroups.size() == 0
+ }
+
+ def 'Return only refinements'() {
+ def results = OpenApiClient.withDefaultClient(apiKey).searchBuilder()
+ .term('harry potter')
+ .dataType(QueryDataType.DataType.REFINEMENTS)
+ .search()
+
+ expect:
+ results.totalResultSize >= 1
+ results.products.size() == 0
+ results.categories.size() == 0
+ results.refinementGroups.size() > 0
+ }
+
def 'Can find out if the OpenAPI is healthy'() {
def status = OpenApiClient.withDefaultClient(apiKey).getHealthStatus()
diff --git a/subprojects/client/src/main/java/com/bol/openapi/SearchBuilder.java b/subprojects/client/src/main/java/com/bol/openapi/SearchBuilder.java
index b17d44d..21ce13a 100644
--- a/subprojects/client/src/main/java/com/bol/openapi/SearchBuilder.java
+++ b/subprojects/client/src/main/java/com/bol/openapi/SearchBuilder.java
@@ -55,6 +55,11 @@ public SearchBuilder category(String id) {
return new SearchBuilder(this);
}
+ public SearchBuilder dataType(QueryDataType.DataType dataType) {
+ dataTypes.add(dataType);
+ return new SearchBuilder(this);
+ }
+
public SearchBuilder allOffers() {
offerTypes.add(ALL);
return new SearchBuilder(this);
diff --git a/subprojects/schema/src/main/xsd/openapi-4.0.0.xsd b/subprojects/schema/src/main/xsd/openapi-4.0.0.xsd
index e950ad4..9324867 100644
--- a/subprojects/schema/src/main/xsd/openapi-4.0.0.xsd
+++ b/subprojects/schema/src/main/xsd/openapi-4.0.0.xsd
@@ -75,6 +75,7 @@
+
@@ -98,6 +99,7 @@
+
@@ -131,6 +133,7 @@
+
@@ -265,6 +268,7 @@
+