Skip to content

Commit ec9362c

Browse files
authored
Add visual search support
1 parent b6e5d96 commit ec9362c

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ public ApiResponse resources(Map options) throws Exception {
9292
return response;
9393
}
9494

95+
public ApiResponse visualSearch(Map options) throws Exception {
96+
List<String> uri = new ArrayList<String>();
97+
uri.add("resources/visual_search");
98+
uri.add("image");
99+
if (options.get("text") == null && options.get("image_asset_id") == null && options.get("image_url") == null) {
100+
throw new IllegalArgumentException("Must supply image file, image url, image asset id or text");
101+
}
102+
ApiResponse response = callApi(HttpMethod.GET, uri, options, options);
103+
return response;
104+
}
105+
95106
public ApiResponse resourcesByTag(String tag, Map options) throws Exception {
96107
if (options == null) options = ObjectUtils.emptyMap();
97108
String resourceType = ObjectUtils.asString(options.get("resource_type"), "image");

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
public class Util {
1212
static final String[] BOOLEAN_UPLOAD_OPTIONS = new String[]{"backup", "exif", "faces", "colors", "image_metadata", "use_filename", "unique_filename",
1313
"eager_async", "invalidate", "discard_original_filename", "overwrite", "phash", "return_delete_token", "async", "quality_analysis", "cinemagraph_analysis",
14-
"accessibility_analysis", "use_filename_as_display_name", "use_asset_folder_as_public_id_prefix", "unique_display_name", "media_metadata"};
14+
"accessibility_analysis", "use_filename_as_display_name", "use_asset_folder_as_public_id_prefix", "unique_display_name", "media_metadata", "visual_search"};
1515

1616
@SuppressWarnings({"rawtypes", "unchecked"})
1717
public static final Map<String, Object> buildUploadParams(Map options) {
@@ -178,6 +178,9 @@ public static final void processWriteParameters(Map<String, Object> options, Map
178178
if (options.get("clear_invalid") != null) {
179179
params.put("clear_invalid", options.get("clear_invalid"));
180180
}
181+
if(options.get("visual_search") != null) {
182+
params.put("visual_search", options.get("visual_search"));
183+
}
181184
}
182185

183186
protected static String encodeAccessControl(Object accessControl) {

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,4 +1222,14 @@ public void testFolderDecoupling() {
12221222
assertEquals("new_asset_folder", params.get("asset_folder"));
12231223
assertEquals(true, params.get("unique_display_name"));
12241224
}
1225+
1226+
@Test
1227+
public void testVisualSearch() {
1228+
//TODO: Need to build a unit testing infrastructure
1229+
Map params = new HashMap<String, Object>();
1230+
Map options = asMap(
1231+
"visual_search", true);
1232+
Util.processWriteParameters(options, params);
1233+
assertEquals(true, params.get("visual_search"));
1234+
}
12251235
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,13 +813,15 @@ public void testUploadFolderDecoupling() {
813813
"public_id_prefix", "test_id_prefix",
814814
"asset_folder", "asset_folder_test",
815815
"display_name", "display_name_test",
816-
"use_asset_folder_as_public_id_prefix", true);
816+
"use_asset_folder_as_public_id_prefix", true,
817+
"visual_search", true);
817818

818819
Map uploadParams = Util.buildUploadParams(options);
819820
Assert.assertEquals("test_id_prefix", uploadParams.get("public_id_prefix"));
820821
Assert.assertEquals(true, uploadParams.get("use_filename_as_display_name"));
821822
Assert.assertEquals("asset_folder_test", uploadParams.get("asset_folder"));
822823
Assert.assertEquals("display_name_test", uploadParams.get("display_name"));
823824
Assert.assertEquals(true, uploadParams.get("use_asset_folder_as_public_id_prefix"));
825+
Assert.assertEquals(true, uploadParams.get("visual_search"));
824826
}
825827
}

0 commit comments

Comments
 (0)