* In the 'Body' section, you can specify the locales and environments from - * which you want to unpublish the entry. + * which you want to un-publish the entry. * These details should be specified in the *
* entry parameter. However, if
@@ -778,4 +778,22 @@ public Call Examples Example usage:
+ * JSONObject query = new JSONObject();
+ * query.put("taxonomies.taxonomy_uid", "{ \"$in\" : [\"term_uid1\" , \"term_uid2\" ] }");
+ * Call response = entry.query(query).execute();
+ *
+ *
+ * @param query the request body of type {@link JSONObject}
+ * @return instance of {@link Terms}
+ */
+ public Call
* Contentstack has a sophisticated multilingual capability. It allows you to
* create and publish entries in any
* language. This feature allows you to set up multilingual websites and cater
diff --git a/src/main/java/com/contentstack/cms/stack/ManagementToken.java b/src/main/java/com/contentstack/cms/stack/ManagementToken.java
index 88ddc8b7..0c3899ed 100644
--- a/src/main/java/com/contentstack/cms/stack/ManagementToken.java
+++ b/src/main/java/com/contentstack/cms/stack/ManagementToken.java
@@ -9,7 +9,6 @@
import java.util.HashMap;
/**
- * Management tokens:
* To authenticate Content Management API (CMA) requests over your stack
* content, you can use Management Tokens
*
diff --git a/src/main/java/com/contentstack/cms/stack/Taxonomy.java b/src/main/java/com/contentstack/cms/stack/Taxonomy.java
index 020270e8..ea7ee77a 100644
--- a/src/main/java/com/contentstack/cms/stack/Taxonomy.java
+++ b/src/main/java/com/contentstack/cms/stack/Taxonomy.java
@@ -251,4 +251,19 @@ public Terms terms() {
return new Terms(this.taxonomyService, this.headers, this.taxonomyId);
}
+
+ /**
+ * Get instance of taxonomy search filter class instance through which we can query on taxonomy based on Entry
+ * JSONObject object = new JSonObject();
+ * object.put("taxonomies.color", Object)
+ * Taxonomy taxonomy = stack("authtoken").taxonomy("taxonomyId").filterTaxonomy(object);
+ *
+ * @param query the query of type @{@link JSONObject}
+ * @return instance of {@link Call}
+ */
+ public Call
* Contentstack provides different types of tokens to authorize API requests
*
* @author ishaileshmishra
diff --git a/src/test/java/com/contentstack/cms/ContentstackUnitTest.java b/src/test/java/com/contentstack/cms/ContentstackUnitTest.java
index ea4e09f6..eaca866e 100644
--- a/src/test/java/com/contentstack/cms/ContentstackUnitTest.java
+++ b/src/test/java/com/contentstack/cms/ContentstackUnitTest.java
@@ -250,7 +250,7 @@ public void testValidOrganization() {
@Test
public void testNullOrganizationUid() {
Contentstack client = new Contentstack.Builder().setAuthtoken("fake@authtoken").build();
- Assertions.assertThrows(IllegalArgumentException.class, () -> client.organization(null));
+ Assertions.assertThrows(NullPointerException.class, () -> client.organization(null));
}
@Test
diff --git a/src/test/java/com/contentstack/cms/stack/EntryFieldUnitTests.java b/src/test/java/com/contentstack/cms/stack/EntryFieldUnitTests.java
index f43cbc0a..f9701a5a 100644
--- a/src/test/java/com/contentstack/cms/stack/EntryFieldUnitTests.java
+++ b/src/test/java/com/contentstack/cms/stack/EntryFieldUnitTests.java
@@ -3,6 +3,7 @@
import com.contentstack.cms.Contentstack;
import com.contentstack.cms.TestClient;
import okhttp3.Request;
+import okhttp3.ResponseBody;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.junit.jupiter.api.*;
@@ -768,4 +769,23 @@ void testHeader() {
Assertions.assertEquals(3, resp.headers().size());
}
+ @Test
+ void queryFiltersOnTaxonomy() {
+ JSONObject query = new JSONObject();
+ query.put("taxonomies.taxonomy_uid", "{ \"$in\" : [\"term_uid1\" , \"term_uid2\" ] }");
+ Request request = entryInstance.query(query).request();
+ Assertions.assertEquals(2, request.headers().names().size());
+ Assertions.assertEquals("GET", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertEquals("api.contentstack.io", request.url().host());
+ Assertions.assertEquals(4, request.url().pathSegments().size());
+ Assertions.assertEquals("v3", request.url().pathSegments().get(0));
+ Assertions.assertEquals("content_types", request.url().pathSegments().get(1));
+ Assertions.assertEquals("product", request.url().pathSegments().get(2));
+ Assertions.assertEquals("entries", request.url().pathSegments().get(3));
+ Assertions.assertNull(request.body());
+ Assertions.assertEquals("query={\"taxonomies.taxonomy_uid\":\"{ \\\"$in\\\" : [\\\"term_uid1\\\" , \\\"term_uid2\\\" ] }\"}", request.url().query());
+
+ }
+
}
diff --git a/src/test/java/com/contentstack/cms/stack/TaxonomyTest.java b/src/test/java/com/contentstack/cms/stack/TaxonomyTest.java
index d65d7c3b..13d10a10 100644
--- a/src/test/java/com/contentstack/cms/stack/TaxonomyTest.java
+++ b/src/test/java/com/contentstack/cms/stack/TaxonomyTest.java
@@ -25,8 +25,6 @@ class TaxonomyTest {
protected static Terms terms;
protected static JSONObject body;
- // Create a JSONObject, JSONObject could be created in multiple ways.
- // We choose JSONParser that converts string to JSONObject
static String theBody = "{\n" +
" \"taxonomy\": {\n" +
" \"name\": \"Taxonomy 1\",\n" +
@@ -365,4 +363,27 @@ void findTestAPI() throws IOException {
System.out.println(response);
}
+ @Test
+ void queryFiltersOnTaxonomy() {
+ Taxonomy taxonomy = new Contentstack.Builder()
+ .setAuthtoken(TestClient.AUTHTOKEN)
+ .setHost("api.contentstack.io")
+ .build()
+ .stack("fakestackkey")
+ .taxonomy();
+ JSONObject query = new JSONObject();
+ query.put("taxonomies.taxonomy_uid", "{ \"$in\" : [\"term_uid1\" , \"term_uid2\" ] }");
+ Request request = taxonomy.query(query).request();
+ Assertions.assertEquals(1, request.headers().names().size());
+ Assertions.assertEquals("GET", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertEquals("api.contentstack.io", request.url().host());
+ Assertions.assertEquals(3, request.url().pathSegments().size());
+ Assertions.assertEquals("v3", request.url().pathSegments().get(0));
+ Assertions.assertEquals("taxonomies", request.url().pathSegments().get(1));
+ Assertions.assertEquals("entries", request.url().pathSegments().get(2));
+ Assertions.assertNull(request.body());
+ Assertions.assertEquals("query={\"taxonomies.taxonomy_uid\":\"{ \\\"$in\\\" : [\\\"term_uid1\\\" , \\\"term_uid2\\\" ] }\"}", request.url().query());
+ }
+
}