Skip to content

Commit 0b99ab0

Browse files
committed
support upload mappings api. add missing restore test
1 parent b288c1e commit 0b99ab0

File tree

2 files changed

+98
-0
lines changed

2 files changed

+98
-0
lines changed

cloudinary-core/src/main/java/com/cloudinary/Api.java

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,5 +236,42 @@ public ApiResponse restore(Iterable<String> publicIds, Map options) throws Excep
236236
params.put("public_ids", publicIds);
237237
return callApi(HttpMethod.POST, Arrays.asList("resources", resourceType, type, "restore"), params, options);
238238
}
239+
240+
public ApiResponse uploadMappings(Map options) throws Exception {
241+
if (options == null)
242+
options = ObjectUtils.emptyMap();
243+
return callApi(HttpMethod.GET, Arrays.asList("upload_mappings"),
244+
ObjectUtils.only(options, "next_cursor", "max_results"), options);
245+
}
246+
247+
public ApiResponse uploadMapping(String name, Map options) throws Exception {
248+
if (options == null)
249+
options = ObjectUtils.emptyMap();
250+
return callApi(HttpMethod.GET, Arrays.asList("upload_mappings"), ObjectUtils.asMap("folder", name), options);
251+
}
252+
253+
public ApiResponse deleteUploadMapping(String name, Map options) throws Exception {
254+
if (options == null)
255+
options = ObjectUtils.emptyMap();
256+
return callApi(HttpMethod.DELETE, Arrays.asList("upload_mappings"), ObjectUtils.asMap("folder", name), options);
257+
}
258+
259+
public ApiResponse updateUploadMapping(String name, Map options) throws Exception {
260+
if (options == null)
261+
options = ObjectUtils.emptyMap();
262+
Map params = new HashMap<String, Object>();
263+
params.put("folder", name);
264+
params.putAll(ObjectUtils.only(options, "template"));
265+
return callApi(HttpMethod.PUT, Arrays.asList("upload_mappings"), params, options);
266+
}
267+
268+
public ApiResponse createUploadMapping(String name, Map options) throws Exception {
269+
if (options == null)
270+
options = ObjectUtils.emptyMap();
271+
Map params = new HashMap<String, Object>();
272+
params.put("folder", name);
273+
params.putAll(ObjectUtils.only(options, "template"));
274+
return callApi(HttpMethod.POST, Arrays.asList("upload_mappings"), params, options);
275+
}
239276

240277
}

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

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.util.Collections;
1616
import java.util.HashMap;
1717
import java.util.List;
18+
import java.util.ListIterator;
1819
import java.util.Map;
1920

2021
import org.junit.Before;
@@ -640,6 +641,66 @@ public void testFolderApi() throws Exception {
640641
}
641642
api.deleteResourcesByPrefix("test_folder", ObjectUtils.emptyMap());
642643
}
644+
645+
@Test
646+
public void testRestore() throws Exception {
647+
// should support restoring resources
648+
cloudinary.uploader().upload(SRC_TEST_IMAGE,
649+
ObjectUtils.asMap("public_id", "api_test_restore", "backup", true));
650+
Map resource = api.resource("api_test_restore", ObjectUtils.emptyMap());
651+
assertEquals(resource.get("bytes"), 3381);
652+
api.deleteResources(Arrays.asList("api_test_restore"), ObjectUtils.emptyMap());
653+
resource = api.resource("api_test_restore", ObjectUtils.emptyMap());
654+
assertEquals(resource.get("bytes"), 0);
655+
assertTrue((Boolean) resource.get("placeholder"));
656+
Map response = api.restore(Arrays.asList("api_test_restore"), ObjectUtils.emptyMap());
657+
Map info = (Map) response.get("api_test_restore");
658+
assertNotNull(info);
659+
assertEquals(info.get("bytes"), 3381);
660+
resource = api.resource("api_test_restore", ObjectUtils.emptyMap());
661+
assertEquals(resource.get("bytes"), 3381);
662+
}
663+
664+
@Test
665+
public void testUploadMapping() throws Exception {
666+
try {
667+
api.deleteUploadMapping("api_test_upload_mapping", ObjectUtils.emptyMap());
668+
} catch (Exception e) {
669+
670+
}
671+
api.createUploadMapping("api_test_upload_mapping", ObjectUtils.asMap("template", "http://cloudinary.com"));
672+
Map result = api.uploadMapping("api_test_upload_mapping", ObjectUtils.emptyMap());
673+
assertEquals(result.get("template"), "http://cloudinary.com");
674+
api.updateUploadMapping("api_test_upload_mapping", ObjectUtils.asMap("template", "http://res.cloudinary.com"));
675+
result = api.uploadMapping("api_test_upload_mapping", ObjectUtils.emptyMap());
676+
assertEquals(result.get("template"), "http://res.cloudinary.com");
677+
result = api.uploadMappings(ObjectUtils.emptyMap());
678+
ListIterator mappings = ((ArrayList) result.get("mappings")).listIterator();
679+
boolean found = false;
680+
while (mappings.hasNext()) {
681+
Map mapping = (Map) mappings.next();
682+
if (mapping.get("folder").equals("api_test_upload_mapping")
683+
&& mapping.get("template").equals("http://res.cloudinary.com")) {
684+
found = true;
685+
break;
686+
}
687+
}
688+
assertTrue(found);
689+
api.deleteUploadMapping("api_test_upload_mapping", ObjectUtils.emptyMap());
690+
result = api.uploadMappings(ObjectUtils.emptyMap());
691+
found = false;
692+
while (mappings.hasNext()) {
693+
Map mapping = (Map) mappings.next();
694+
if (mapping.get("folder").equals("api_test_upload_mapping")
695+
&& mapping.get("template").equals("http://res.cloudinary.com")) {
696+
found = true;
697+
break;
698+
}
699+
}
700+
assertTrue(!found);
701+
}
702+
703+
643704

644705
private void assertContains(Object object, Collection list) {
645706
assertTrue(list.contains(object));

0 commit comments

Comments
 (0)