Skip to content

Commit af0d340

Browse files
committed
feat : variants implementation
1 parent e7ef49b commit af0d340

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

src/main/java/com/contentstack/sdk/Entry.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,4 +1099,39 @@ public Entry includeMetadata() {
10991099
params.put("include_metadata", true);
11001100
return this;
11011101
}
1102+
1103+
/**
1104+
* @method variants
1105+
* @memberof Entry
1106+
* @description The variant header will be added to client
1107+
* @returns {Entry}
1108+
* @example
1109+
* import contentstack from '@contentstack/delivery-sdk'
1110+
*
1111+
* Stack stack = contentstack.Stack("apiKey", "deliveryToken", "environment");
1112+
* Entry entry = stack.contentType("user").entry("entry_uid").variant("variant_uid").fetch();
1113+
*/
1114+
public Entry variants(@NotNull String variants){
1115+
if (variants != null && variants.length() > 0) {
1116+
this.headers.put("x-cs-variant-uid", variants.trim());
1117+
}
1118+
return this;
1119+
1120+
}
1121+
public Entry variants(@NotNull String[] variants){
1122+
if (variants != null && variants.length > 0) {
1123+
List<String> variantList = new ArrayList<>();
1124+
for (String variant : variants) {
1125+
if(variant != null && !variant.trim().isEmpty())
1126+
variantList.add(variant.trim());
1127+
}
1128+
if(!variantList.isEmpty()){
1129+
this.headers.put("x-cs-variant-uid", String.join(", ", variantList));
1130+
}
1131+
}
1132+
return this;
1133+
}
1134+
public LinkedHashMap<String, Object> getHeaders() {
1135+
return headers;
1136+
}
11021137
}

src/test/java/com/contentstack/sdk/TestEntry.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import java.util.GregorianCalendar;
88
import java.util.logging.Logger;
99

10+
import static org.junit.Assert.assertEquals;
11+
import static org.junit.Assert.assertNull;
1012
import static org.junit.jupiter.api.Assertions.assertTrue;
1113

1214
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@@ -62,6 +64,50 @@ public void onCompletion(ResponseType responseType, Error error) {
6264
});
6365
logger.info("passed..");
6466
}
67+
@Test
68+
void VariantsTestSingleUid(){
69+
entry = stack.contentType(CONTENT_TYPE).entry(entryUid).variants(" cs672c33271558d8b0 ");
70+
entry.fetch(new EntryResultCallBack() {
71+
@Override
72+
public void onCompletion(ResponseType responseType, Error error) {
73+
assertEquals("cs672c33271558d8b0", entry.getHeaders().get("x-cs-variant-uid"));
74+
System.out.println(entry.toJSON());
75+
}
76+
});
77+
}
78+
@Test
79+
void VariantsTestArray(){
80+
entry = stack.contentType(CONTENT_TYPE).entry(entryUid).variants(new String[]{" cs672c33271558d8b0"," cs321fbc07ec71861b"," cs321fbc07ec71861b "});
81+
entry.fetch(new EntryResultCallBack() {
82+
@Override
83+
public void onCompletion(ResponseType responseType, Error error) {
84+
System.out.println(entry.toJSON());
85+
}
86+
});
87+
}
88+
89+
@Test
90+
void VariantsTestArrayWithMixedElements() {
91+
entry = stack.contentType(CONTENT_TYPE).entry(entryUid).variants(new String[]{"", " cs672c33271558d8b0 ", null, " "});
92+
entry.fetch(new EntryResultCallBack() {
93+
@Override
94+
public void onCompletion(ResponseType responseType, Error error) {
95+
System.out.println(entry.toJSON());
96+
}
97+
});
98+
}
99+
100+
@Test
101+
void VariantsTestNullString() {
102+
entry = stack.contentType(CONTENT_TYPE).entry(entryUid).variants((String) null);
103+
entry.fetch(new EntryResultCallBack() {
104+
@Override
105+
public void onCompletion(ResponseType responseType, Error error) {
106+
assertNull(entry.getHeaders().get("x-cs-variant-uid"));
107+
System.out.println(entry.toJSON());
108+
}
109+
});
110+
}
65111

66112
@Test
67113
@Order(4)

0 commit comments

Comments
 (0)