diff --git a/cloudinary-core/src/main/java/com/cloudinary/Api.java b/cloudinary-core/src/main/java/com/cloudinary/Api.java index c85192df..252416e7 100644 --- a/cloudinary-core/src/main/java/com/cloudinary/Api.java +++ b/cloudinary-core/src/main/java/com/cloudinary/Api.java @@ -653,6 +653,18 @@ public ApiResponse deleteDatasourceEntries(String fieldExternalId, List return callApi(HttpMethod.DELETE, uri, Collections.singletonMap("external_ids", entriesExternalId), Collections.emptyMap()); } + /** + * Restore deleted data source entries for a given field + * @param fieldExternalId The id of the field to operate + * @param entriesExternalId The ids of all the entries to restore from the data source + * @return The datasource entries state after restore + * @throws Exception + */ + public ApiResponse restoreDatasourceEntries(String fieldExternalId, List entriesExternalId) throws Exception { + List uri = Arrays.asList("metadata_fields", fieldExternalId, "datasource_restore"); + return callApi(HttpMethod.POST, uri, Collections.singletonMap("external_ids", entriesExternalId), Collections.singletonMap("content_type", "json")); + } + /** * Delete a field definition. * @param fieldExternalId The id of the field to delete diff --git a/cloudinary-test-common/src/main/java/com/cloudinary/test/AbstractStructuredMetadataTest.java b/cloudinary-test-common/src/main/java/com/cloudinary/test/AbstractStructuredMetadataTest.java index 39c3b6ce..1dac0970 100644 --- a/cloudinary-test-common/src/main/java/com/cloudinary/test/AbstractStructuredMetadataTest.java +++ b/cloudinary-test-common/src/main/java/com/cloudinary/test/AbstractStructuredMetadataTest.java @@ -158,6 +158,16 @@ public void testDeleteDatasourceEntries() throws Exception { assertNotNull(result); } + @Test + public void testRestoreDatasourceEntries() throws Exception { + SetMetadataField setField = createSetField("testRestoreDatasourceEntries"); + ApiResponse fieldResult = addFieldToAccount(setField); + String fieldExternalId = fieldResult.get("external_id").toString(); + api.deleteDatasourceEntries(fieldExternalId, Collections.singletonList("id1")); + ApiResponse result = api.restoreDatasourceEntries(fieldExternalId, Collections.singletonList("id1")); + assertNotNull(result); + } + @Test public void testUploadWithMetadata() throws Exception { StringMetadataField field = newFieldInstance("testUploadWithMetadata");