Skip to content

Commit eddbf8c

Browse files
committed
Publish Admin API. Support to_type in rename.
1 parent f68866b commit eddbf8c

File tree

3 files changed

+77
-0
lines changed

3 files changed

+77
-0
lines changed

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,4 +275,39 @@ public ApiResponse createUploadMapping(String name, Map options) throws Exceptio
275275
return callApi(HttpMethod.POST, Arrays.asList("upload_mappings"), params, options);
276276
}
277277

278+
public ApiResponse publishByPrefix(String prefix, Map options) throws Exception {
279+
if (options == null) options = ObjectUtils.emptyMap();
280+
String resourceType = ObjectUtils.asString(options.get("resource_type"), "image");
281+
List<String> uri = new ArrayList<String>();
282+
uri.add("publish_resources");
283+
uri.add(resourceType);
284+
Map params = new HashMap<String, Object>();
285+
params.put("prefix", prefix);
286+
params.putAll(ObjectUtils.only(options, "invalidate", "overwrite"));
287+
return callApi(HttpMethod.POST, uri, params, options);
288+
}
289+
290+
public ApiResponse publishByTag(String tag, Map options) throws Exception {
291+
if (options == null) options = ObjectUtils.emptyMap();
292+
String resourceType = ObjectUtils.asString(options.get("resource_type"), "image");
293+
List<String> uri = new ArrayList<String>();
294+
uri.add("publish_resources");
295+
uri.add(resourceType);
296+
Map params = new HashMap<String, Object>();
297+
params.put("tag", tag);
298+
params.putAll(ObjectUtils.only(options, "invalidate", "overwrite"));
299+
return callApi(HttpMethod.POST, uri, params, options);
300+
}
301+
302+
public ApiResponse publishByIds(Iterable<String> publicIds, Map options) throws Exception {
303+
if (options == null) options = ObjectUtils.emptyMap();
304+
String resourceType = ObjectUtils.asString(options.get("resource_type"), "image");
305+
List<String> uri = new ArrayList<String>();
306+
uri.add("publish_resources");
307+
uri.add(resourceType);
308+
Map params = new HashMap<String, Object>();
309+
params.put("public_ids", publicIds);
310+
params.putAll(ObjectUtils.only(options, "invalidate", "overwrite"));
311+
return callApi(HttpMethod.POST, uri, params, options);
312+
}
278313
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ public Map rename(String fromPublicId, String toPublicId, Map options) throws IO
165165
params.put("from_public_id", fromPublicId);
166166
params.put("to_public_id", toPublicId);
167167
params.put("invalidate", ObjectUtils.asBoolean(options.get("invalidate"), false).toString());
168+
params.put("to_type", options.get("to_type"));
168169
return callApi("rename", params, options, null);
169170
}
170171

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

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -676,6 +676,47 @@ public void testUploadMapping() throws Exception {
676676
assertTrue(!found);
677677
}
678678

679+
@Test
680+
public void testPublishByIds() throws Exception {
681+
Map response = cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("tags", SDK_TEST_TAG, "type", "authenticated"));
682+
String publicId = (String) response.get("public_id");
683+
response = cloudinary.api().publishByIds(Arrays.asList(publicId), null);
684+
List published = (List) response.get("published");
685+
assertNotNull(published);
686+
assertEquals(published.size(), 1);
687+
Map resource = (Map) published.get(0);
688+
assertEquals(resource.get("public_id"), publicId);
689+
assertNotNull(resource.get("url"));
690+
cloudinary.uploader().destroy(publicId, null);
691+
}
692+
693+
@Test
694+
public void testPublishByPrefix() throws Exception {
695+
Map response = cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("tags", SDK_TEST_TAG, "type", "authenticated"));
696+
String publicId = (String) response.get("public_id");
697+
response = cloudinary.api().publishByPrefix(publicId.substring(0, publicId.length() - 2), null);
698+
List published = (List) response.get("published");
699+
assertNotNull(published);
700+
assertEquals(published.size(), 1);
701+
Map resource = (Map) published.get(0);
702+
assertEquals(resource.get("public_id"), publicId);
703+
assertNotNull(resource.get("url"));
704+
cloudinary.uploader().destroy(publicId, null);
705+
}
706+
707+
@Test
708+
public void testPublishByTag() throws Exception {
709+
Map response = cloudinary.uploader().upload(SRC_TEST_IMAGE, ObjectUtils.asMap("tags", Arrays.asList(SDK_TEST_TAG, SDK_TEST_TAG + "1"), "type", "authenticated"));
710+
String publicId = (String) response.get("public_id");
711+
response = cloudinary.api().publishByTag(SDK_TEST_TAG + "1", null);
712+
List published = (List) response.get("published");
713+
assertNotNull(published);
714+
assertEquals(published.size(), 1);
715+
Map resource = (Map) published.get(0);
716+
assertEquals(resource.get("public_id"), publicId);
717+
assertNotNull(resource.get("url"));
718+
cloudinary.uploader().destroy(publicId, null);
719+
}
679720

680721
private void assertContains(Object object, Collection list) {
681722
assertTrue(list.contains(object));

0 commit comments

Comments
 (0)