Skip to content

Commit 61965fc

Browse files
Merge pull request #23 from contentstack/development
feat/CS-36088: fetching nested asset while using jsonToHtml function in JSON RTE
2 parents 8f0846e + 5c817f9 commit 61965fc

File tree

8 files changed

+1062
-6
lines changed

8 files changed

+1062
-6
lines changed

.talismanrc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,7 @@ threshold: medium
22

33
fileignoreconfig:
44

5-
- filename: .dccache
6-
checksum: 140eb49c2bad3edadf62c926625f3bb304e904c38f2a9a5a57e9f6dc7163f61e
5+
- filename: src/test/resources/issue/jsonfile.json
6+
checksum: d67cd6db0795f8c5a5f5edf34a457720191e8894889e9f9bb4b8106c23b40799
7+
8+

CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* @contentstack/security-admin @contentstack/sdk-admin
1+
* @contentstack/security-admin

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.contentstack.sdk</groupId>
77
<artifactId>utils</artifactId>
8-
<version>1.2.1</version>
8+
<version>1.2.2</version>
99
<packaging>jar</packaging>
1010
<name>Contentstack-utils</name>
1111
<description>Java Utils SDK for Contentstack Content Delivery API, Contentstack is a headless CMS
@@ -22,15 +22,15 @@
2222
<maven-source-plugin.version>2.2.1</maven-source-plugin.version>
2323
<maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
2424
<junit.version>4.13.2</junit.version>
25-
<jsoup.version>1.15.4</jsoup.version>
25+
<jsoup.version>1.16.1</jsoup.version>
2626
<json.simple.version>1.1.1</json.simple.version>
2727
<maven-site-plugin.version>3.3</maven-site-plugin.version>
2828
<maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
2929
<nexus-staging-maven-plugin.version>1.6.7</nexus-staging-maven-plugin.version>
3030
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
3131
<validation-version>2.0.1.Final</validation-version>
3232
<json-version>20230227</json-version>
33-
<spring-web-version>6.0.4</spring-web-version>
33+
<spring-web-version>6.0.7</spring-web-version>
3434
</properties>
3535

3636
<developers>

src/main/java/com/contentstack/utils/AutomateCommon.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,10 @@ private static String extractKeys(@NotNull JSONObject jsonNode, Option renderObj
175175
if (filteredContent.isPresent()) {
176176
JSONObject contentToPass = filteredContent.get();
177177
return getStringOption(renderObject, metadata, contentToPass);
178+
} else {
179+
if (attrType.equalsIgnoreCase(ASSET)) {
180+
return renderObject.renderNode("img", jsonNode, nodeJsonArray -> doRawProcessing(nodeJsonArray, renderObject, embedItem));
181+
}
178182
}
179183

180184
} else {

src/main/java/com/contentstack/utils/render/DefaultOption.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ public String renderNode(String nodeType, JSONObject nodeObject, NodeCallback ca
6767
case "a":
6868
return "<a href=\"" + getNodeStr(nodeObject, "href") + "\">" + children + "</a>";
6969
case "img":
70+
String assetLink = getNodeStr(nodeObject, "asset-link");
71+
if (!assetLink.isEmpty()) {
72+
return "<img src=\"" + assetLink + "\" />" + children;
73+
}
7074
return "<img src=\"" + getNodeStr(nodeObject, "src") + "\" />" + children;
7175
case "embed":
7276
return "<iframe src=\"" + getNodeStr(nodeObject, "src") + "\"" + children + "</iframe>";
@@ -124,6 +128,7 @@ private String getNodeStr(JSONObject nodeObject, String key) {
124128
return herf;
125129
}
126130

131+
127132
/**
128133
* Returns Title From The Embedded Object of type entry
129134
*
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.contentstack.utils;
2+
3+
import com.contentstack.utils.render.DefaultOption;
4+
import org.json.JSONObject;
5+
import org.junit.Assert;
6+
import org.junit.BeforeClass;
7+
import org.junit.Test;
8+
9+
import java.io.IOException;
10+
11+
public class AssetLinkTest {
12+
13+
14+
private static JSONObject assetLink = null;
15+
16+
17+
@BeforeClass
18+
public static void startUtilTests() throws IOException {
19+
final String ASSERT_LINK = "src/test/resources/issue/jsonfile.json";
20+
assetLink = new ReadResource().readJson(ASSERT_LINK);
21+
}
22+
23+
@Test
24+
public void testRenderFunction() {
25+
String[] keys = new String[1];
26+
keys[0] = "assetlink";
27+
Utils.jsonToHTML(assetLink, keys, new DefaultOption());
28+
System.out.println(assetLink);
29+
Assert.assertEquals("<img src=\"https://image.url/11.jpg\" />", assetLink.opt("assetlink").toString());
30+
}
31+
}

0 commit comments

Comments
 (0)