Skip to content

Commit f4c5743

Browse files
authored
Add support for update metadata field set default disabled
1 parent 2caecfd commit f4c5743

File tree

5 files changed

+31
-20
lines changed

5 files changed

+31
-20
lines changed

cloudinary-core/src/main/java/com/cloudinary/metadata/MetadataField.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class MetadataField<T> extends JSONObject {
1717
public static final String TYPE = "type";
1818
public static final String VALIDATION = "validation";
1919
public static final String RESTRICTIONS = "restrictions";
20+
public static final String DEFAULT_DISABLED = "default_disabled";
2021

2122
public MetadataField(MetadataFieldType type) {
2223
put(TYPE, type.toString());
@@ -139,4 +140,12 @@ public void setDataSource(MetadataDataSource dataSource) {
139140
public void setRestrictions(Restrictions restrictions) {
140141
put(RESTRICTIONS, restrictions.toHash());
141142
}
143+
144+
/**
145+
* Set the value indicating whether the field should be disabled by default
146+
* @param disabled The value to set.
147+
*/
148+
public void setDefaultDisabled(Boolean disabled) {
149+
put(DEFAULT_DISABLED, disabled);
150+
}
142151
}

cloudinary-test-common/src/main/java/com/cloudinary/test/AbstractApiTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ public void testDeleteDerivedByTransformation() throws Exception {
415415
@Test
416416
public void testGetResourcesWithMetadata() throws Exception {
417417
String public_id = "api_,withMetadata" + SUFFIX;
418-
String fieldId = MetadataTestHelper.addFieldToAccount(api, MetadataTestHelper.newFieldInstance("some_field" + SUFFIX)).get("external_id").toString();
418+
String fieldId = MetadataTestHelper.addFieldToAccount(api, MetadataTestHelper.newFieldInstance("some_field" + SUFFIX, true)).get("external_id").toString();
419419
cloudinary.uploader().upload(SRC_TEST_IMAGE,
420420
ObjectUtils.asMap("public_id", public_id,
421421
"tags", UPLOAD_TAGS,
@@ -761,8 +761,8 @@ public void testDetectionUpdate() {
761761

762762
@Test
763763
public void testUpdateResourceClearInvalid() throws Exception {
764-
String fieldId = MetadataTestHelper.addFieldToAccount(api, MetadataTestHelper.newFieldInstance("some_field3" + SUFFIX)).get("external_id").toString();
765-
String fieldId2 = MetadataTestHelper.addFieldToAccount(api, MetadataTestHelper.newFieldInstance("some_field4" + SUFFIX)).get("external_id").toString();
764+
String fieldId = MetadataTestHelper.addFieldToAccount(api, MetadataTestHelper.newFieldInstance("some_field3" + SUFFIX, true)).get("external_id").toString();
765+
String fieldId2 = MetadataTestHelper.addFieldToAccount(api, MetadataTestHelper.newFieldInstance("some_field4" + SUFFIX, true)).get("external_id").toString();
766766
Map uploadResult = cloudinary.uploader().upload(SRC_TEST_IMAGE,
767767
ObjectUtils.asMap("tags", UPLOAD_TAGS, "metadata", ObjectUtils.asMap(fieldId, "test")));
768768
Map apiResult = api.update((String) uploadResult.get("public_id"), ObjectUtils.asMap("clear_invalid", true, "metadata", ObjectUtils.asMap(fieldId2, "test2")));

cloudinary-test-common/src/main/java/com/cloudinary/test/AbstractStructuredMetadataTest.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public void setUp() {
6262

6363
@Test
6464
public void testCreateMetadata() throws Exception {
65-
StringMetadataField stringField = newFieldInstance("testCreateMetadata_1");
65+
StringMetadataField stringField = newFieldInstance("testCreateMetadata_1", true);
6666
ApiResponse result = addFieldToAccount(stringField);
6767
assertNotNull(result);
6868
assertEquals(stringField.getLabel(), result.get("label"));
@@ -75,7 +75,7 @@ public void testCreateMetadata() throws Exception {
7575

7676
@Test
7777
public void testFieldRestrictions() throws Exception {
78-
StringMetadataField stringField = newFieldInstance("testCreateMetadata_3");
78+
StringMetadataField stringField = newFieldInstance("testCreateMetadata_3", true);
7979
stringField.setRestrictions(new Restrictions().setReadOnlyUI());
8080

8181
ApiResponse result = api.addMetadataField(stringField);
@@ -124,7 +124,7 @@ public void testDateFieldDefaultValueValidation() throws Exception {
124124

125125
@Test
126126
public void testListFields() throws Exception {
127-
StringMetadataField stringField = newFieldInstance("testListFields");
127+
StringMetadataField stringField = newFieldInstance("testListFields", true);
128128
addFieldToAccount(stringField);
129129

130130
ApiResponse result = cloudinary.api().listMetadataFields();
@@ -135,30 +135,32 @@ public void testListFields() throws Exception {
135135

136136
@Test
137137
public void testGetMetadata() throws Exception {
138-
ApiResponse fieldResult = addFieldToAccount(newFieldInstance("testGetMetadata"));
138+
ApiResponse fieldResult = addFieldToAccount(newFieldInstance("testGetMetadata", true));
139139
ApiResponse result = api.metadataFieldByFieldId(fieldResult.get("external_id").toString());
140140
assertNotNull(result);
141141
assertEquals(fieldResult.get("label"), result.get("label"));
142142
}
143143

144144
@Test
145145
public void testUpdateField() throws Exception {
146-
StringMetadataField metadataField = newFieldInstance("testUpdateField");
146+
StringMetadataField metadataField = newFieldInstance("testUpdateField", false);
147147
ApiResponse fieldResult = addFieldToAccount(metadataField);
148148
assertNotEquals("new_def", fieldResult.get("default_value"));
149149
metadataField.setDefaultValue("new_def");
150+
metadataField.setDefaultDisabled(true);
150151
metadataField.setRestrictions(new Restrictions().setReadOnlyUI());
151152
ApiResponse result = api.updateMetadataField(fieldResult.get("external_id").toString(), metadataField);
152153
assertNotNull(result);
153154
assertEquals("new_def", result.get("default_value"));
155+
assertEquals(true, result.get("default_disabled"));
154156
Map<String, Object> restrictions = (Map<String, Object>) result.get("restrictions");
155157
assertNotNull(restrictions);
156158
assertTrue((Boolean)restrictions.get("readonly_ui"));
157159
}
158160

159161
@Test
160162
public void testDeleteField() throws Exception {
161-
ApiResponse fieldResult = addFieldToAccount(newFieldInstance("testDeleteField"));
163+
ApiResponse fieldResult = addFieldToAccount(newFieldInstance("testDeleteField", true));
162164
ApiResponse result = api.deleteMetadataField(fieldResult.get("external_id").toString());
163165
assertNotNull(result);
164166
assertEquals("ok", result.get("message"));
@@ -219,14 +221,14 @@ private String getField(ApiResponse result, int index) {
219221
}
220222

221223
private void AddStringField(String labelPrefix) throws Exception {
222-
StringMetadataField field = newFieldInstance(labelPrefix);
224+
StringMetadataField field = newFieldInstance(labelPrefix, true);
223225
ApiResponse fieldResult = addFieldToAccount(field);
224226
String fieldId = fieldResult.get("external_id").toString();
225227
}
226228

227229
@Test
228230
public void testUploadWithMetadata() throws Exception {
229-
StringMetadataField field = newFieldInstance("testUploadWithMetadata");
231+
StringMetadataField field = newFieldInstance("testUploadWithMetadata", true);
230232
ApiResponse fieldResult = addFieldToAccount(field);
231233
String fieldId = fieldResult.get("external_id").toString();
232234
Map<String, Object> metadata = Collections.<String, Object>singletonMap(fieldId, "123456");
@@ -239,7 +241,7 @@ public void testUploadWithMetadata() throws Exception {
239241
public void testExplicitWithMetadata() throws Exception {
240242
Map uploadResult = cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("tags", Arrays.asList(SDK_TEST_TAG, METADATA_UPLOADER_TAG)));
241243
String publicId = uploadResult.get("public_id").toString();
242-
StringMetadataField field = newFieldInstance("testExplicitWithMetadata");
244+
StringMetadataField field = newFieldInstance("testExplicitWithMetadata", true);
243245
ApiResponse fieldResult = addFieldToAccount(field);
244246
String fieldId = fieldResult.get("external_id").toString();
245247
Map<String, Object> metadata = Collections.<String, Object>singletonMap(fieldId, "123456");
@@ -263,7 +265,7 @@ public void testExplicitWithMetadata() throws Exception {
263265
public void testUpdateWithMetadata() throws Exception {
264266
Map uploadResult = cloudinary.uploader().upload(SRC_TEST_IMAGE, asMap("tags", Arrays.asList(SDK_TEST_TAG, METADATA_UPLOADER_TAG)));
265267
String publicId = uploadResult.get("public_id").toString();
266-
StringMetadataField field = newFieldInstance("testUpdateWithMetadata");
268+
StringMetadataField field = newFieldInstance("testUpdateWithMetadata", true);
267269
ApiResponse fieldResult = addFieldToAccount(field);
268270
String fieldId = fieldResult.get("external_id").toString();
269271
Map<String, Object> metadata = Collections.<String, Object>singletonMap(fieldId, "123456");
@@ -274,7 +276,7 @@ public void testUpdateWithMetadata() throws Exception {
274276

275277
@Test
276278
public void testUploaderUpdateMetadata() throws Exception {
277-
StringMetadataField field = newFieldInstance("testUploaderUpdateMetadata");
279+
StringMetadataField field = newFieldInstance("testUploaderUpdateMetadata", true);
278280
ApiResponse fieldResult = addFieldToAccount(field);
279281
String fieldId = fieldResult.get("external_id").toString();
280282
Map result = cloudinary.uploader().updateMetadata(Collections.<String, Object>singletonMap(fieldId, "123456"), new String[]{PUBLIC_ID}, null);
@@ -288,7 +290,7 @@ public void testUploaderUpdateMetadata() throws Exception {
288290

289291
@Test
290292
public void testUploaderUpdateMetadataClearInvalid() throws Exception {
291-
StringMetadataField field = newFieldInstance("testUploaderUpdateMetadata1");
293+
StringMetadataField field = newFieldInstance("testUploaderUpdateMetadata1", true);
292294
ApiResponse fieldResult = addFieldToAccount(field);
293295
String fieldId = fieldResult.get("external_id").toString();
294296
Map result = cloudinary.uploader().updateMetadata(Collections.<String, Object>singletonMap(fieldId, "123456"), new String[]{PUBLIC_ID}, ObjectUtils.asMap("clear_invalid", true));
@@ -377,9 +379,9 @@ private SetMetadataField createSetField(String labelPrefix) {
377379
return setField;
378380
}
379381

380-
private StringMetadataField newFieldInstance(String labelPrefix) throws Exception {
382+
private StringMetadataField newFieldInstance(String labelPrefix, Boolean mandatory) throws Exception {
381383
String label = labelPrefix + "_" + SUFFIX;
382-
return MetadataTestHelper.newFieldInstance(label);
384+
return MetadataTestHelper.newFieldInstance(label, mandatory);
383385
}
384386

385387
private ApiResponse addFieldToAccount(MetadataField field) throws Exception {

cloudinary-test-common/src/main/java/com/cloudinary/test/AbstractUploaderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ public void testRenameShouldReturnContext() throws Exception {
236236
@Test
237237
public void testRenameShouldReturnMetadata() throws Exception {
238238
String label = "test" + SUFFIX;
239-
StringMetadataField f = MetadataTestHelper.newFieldInstance(label);
239+
StringMetadataField f = MetadataTestHelper.newFieldInstance(label, true);
240240
Map fieldResult = MetadataTestHelper.addFieldToAccount(cloudinary.api(), f);
241241
String fieldId = fieldResult.get("external_id").toString();
242242
Map<String, Object> metadata = Collections.<String, Object>singletonMap(fieldId, "123456");

cloudinary-test-common/src/main/java/com/cloudinary/test/MetadataTestHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import com.cloudinary.metadata.StringMetadataField;
88

99
public class MetadataTestHelper {
10-
public static StringMetadataField newFieldInstance(String label) throws Exception {
10+
public static StringMetadataField newFieldInstance(String label, Boolean mandatory) throws Exception {
1111
StringMetadataField field = new StringMetadataField();
1212
field.setLabel(label);
13-
field.setMandatory(true);
13+
field.setMandatory(mandatory);
1414
field.setValidation(new MetadataValidation.StringLength(3, 9));
1515
field.setDefaultValue("val_test");
1616
return field;

0 commit comments

Comments
 (0)