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 @@ +