Skip to content

Commit 9d3eb34

Browse files
committed
Validate facet type in bulk replace V2
Run validateFacetConfigurationV2Type on each facet configuration in replaceFacetConfigurationsV2 for parity with the single-replace and create endpoints, since bulk replace is a full replace where type is required.
1 parent 6be5076 commit 9d3eb34

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

constructorio-client/src/main/java/io/constructor/client/ConstructorIO.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3841,6 +3841,14 @@ public String replaceFacetConfigurationsV2(
38413841
throw new IllegalArgumentException("facetConfigurationsV2Request is required");
38423842
}
38433843

3844+
List<FacetConfigurationV2> facetConfigurations =
3845+
facetConfigurationsV2Request.getFacetConfigurations();
3846+
if (facetConfigurations != null) {
3847+
for (FacetConfigurationV2 facetConfiguration : facetConfigurations) {
3848+
validateFacetConfigurationV2Type(facetConfiguration.getType());
3849+
}
3850+
}
3851+
38443852
try {
38453853
HttpUrl url =
38463854
this.makeUrl(Arrays.asList("v2", "facets"))

constructorio-client/src/test/java/io/constructor/client/ConstructorIOFacetConfigurationV2Test.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,19 @@ public void testReplaceFacetConfigurationsV2Bulk() throws Exception {
386386
"Should return both replaced facets", 2, jsonObj.getJSONArray("facets").length());
387387
}
388388

389+
@Test(expected = IllegalArgumentException.class)
390+
public void testReplaceFacetConfigurationsV2WithInvalidTypeThrowsException() throws Exception {
391+
ConstructorIO constructor = new ConstructorIO(token, apiKey, true, null);
392+
393+
FacetConfigurationV2 config = new FacetConfigurationV2();
394+
config.setName("testReplaceBulkInvalidTypeV2");
395+
config.setType("invalid");
396+
397+
constructor.replaceFacetConfigurationsV2(
398+
new FacetConfigurationsV2Request(
399+
Arrays.asList(config), ConstructorIO.DEFAULT_SECTION));
400+
}
401+
389402
@Test
390403
public void testFacetConfigurationV2DefaultValues() {
391404
FacetConfigurationV2 config = new FacetConfigurationV2();

0 commit comments

Comments
 (0)