Skip to content

Commit 9971053

Browse files
author
Amir Tocker
committed
Add skip_transformation_name and expires_at to archive parameters.
Refactor `Util.java`
1 parent 4fa896e commit 9971053

File tree

2 files changed

+66
-44
lines changed

2 files changed

+66
-44
lines changed

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

Lines changed: 61 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ public static final Map<String, Object> buildUploadParams(Map options) {
2525
params.put("format", (String) options.get("format"));
2626
params.put("type", (String) options.get("type"));
2727
for (String attr : BOOLEAN_UPLOAD_OPTIONS) {
28-
Boolean value = ObjectUtils.asBoolean(options.get(attr), null);
29-
if (value != null)
30-
params.put(attr, value.toString());
28+
putBoolean(attr, options, params);
3129
}
3230

3331
params.put("notification_url", (String) options.get("notification_url"));
@@ -43,7 +41,7 @@ public static final Map<String, Object> buildUploadParams(Map options) {
4341
params.put("upload_preset", options.get("upload_preset"));
4442

4543
if (options.get("signature") == null) {
46-
params.put("eager", buildEager((List<Transformation>) options.get("eager")));
44+
putEager("eager", options, params);
4745
Object transformation = options.get("transformation");
4846
if (transformation != null) {
4947
if (transformation instanceof Transformation) {
@@ -103,18 +101,12 @@ public static final void processWriteParameters(Map<String, Object> options, Map
103101
params.put("custom_coordinates", Coordinates.parseCoordinates(options.get("custom_coordinates")).toString());
104102
if (options.get("context") != null)
105103
params.put("context", ObjectUtils.encodeMap(options.get("context")));
106-
if (options.get("ocr") != null)
107-
params.put("ocr", options.get("ocr"));
108-
if (options.get("raw_convert") != null)
109-
params.put("raw_convert", options.get("raw_convert"));
110-
if (options.get("categorization") != null)
111-
params.put("categorization", options.get("categorization"));
112-
if (options.get("detection") != null)
113-
params.put("detection", options.get("detection"));
114-
if (options.get("similarity_search") != null)
115-
params.put("similarity_search", options.get("similarity_search"));
116-
if (options.get("background_removal") != null)
117-
params.put("background_removal", options.get("background_removal"));
104+
putObject("ocr", options, params);
105+
putObject("raw_convert", options, params);
106+
putObject("categorization", options, params);
107+
putObject("detection", options, params);
108+
putObject("similarity_search", options, params);
109+
putObject("background_removal", options, params);
118110
if (options.get("auto_tagging") != null)
119111
params.put("auto_tagging", ObjectUtils.asFloat(options.get("auto_tagging")));
120112
}
@@ -149,37 +141,63 @@ public static void clearEmpty(Map params) {
149141

150142
@SuppressWarnings({"rawtypes", "unchecked"})
151143
public static final Map<String, Object> buildArchiveParams(Map options, String targetFormat) {
152-
if (options == null)
153-
options = ObjectUtils.emptyMap();
154144
Map<String, Object> params = new HashMap<String, Object>();
155-
params.put("type", options.get("type"));
156-
params.put("mode", options.get("mode"));
157-
params.put("target_format", targetFormat);
158-
params.put("target_public_id", options.get("target_public_id"));
159-
params.put("flatten_folders", ObjectUtils.asBoolean(options.get("flatten_folders"), false));
160-
params.put("flatten_transformations", ObjectUtils.asBoolean(options.get("flatten_transformations"), false));
161-
params.put("use_original_filename", ObjectUtils.asBoolean(options.get("use_original_filename"), false));
162-
params.put("async", ObjectUtils.asBoolean(options.get("async"), false));
163-
params.put("keep_derived", ObjectUtils.asBoolean(options.get("keep_derived"), false));
164-
params.put("notification_url", options.get("notification_url"));
165-
if (options.get("target_tags") != null)
166-
params.put("target_tags", ObjectUtils.asArray(options.get("target_tags")));
167-
if (options.get("tags") != null)
168-
params.put("tags", ObjectUtils.asArray(options.get("tags")));
169-
if (options.get("public_ids") != null)
170-
params.put("public_ids", ObjectUtils.asArray(options.get("public_ids")));
171-
if (options.get("prefixes") != null)
172-
params.put("prefixes", ObjectUtils.asArray(options.get("prefixes")));
173-
if (options.get("transformations") != null)
174-
params.put("transformations", buildEager((List<Transformation>) options.get("transformations")));
175-
if (options.get("timestamp") != null)
176-
params.put("timestamp", options.get("timestamp"));
177-
else
178-
params.put("timestamp", Util.timestamp());
145+
if (options != null && options.size() > 0){
146+
params.put("type", options.get("type"));
147+
params.put("mode", options.get("mode"));
148+
params.put("target_format", targetFormat);
149+
params.put("target_public_id", options.get("target_public_id"));
150+
putBoolean("flatten_folders", options, params);
151+
putBoolean("flatten_transformations", options, params);
152+
putBoolean("use_original_filename", options, params);
153+
putBoolean("async", options, params);
154+
putBoolean("keep_derived", options, params);
155+
params.put("notification_url", options.get("notification_url"));
156+
putArray("target_tags", options, params);
157+
putArray("tags", options, params);
158+
putArray("public_ids", options, params);
159+
putArray("prefixes", options, params);
160+
putEager("transformations", options, params);
161+
putObject("timestamp", options, params, Util.timestamp());
162+
putBoolean("skip_transformation_name", options, params);
163+
}
179164
return params;
180165
}
181166

167+
private static void putEager(String name, Map from, Map<String, Object> to) {
168+
final Object transformations = from.get(name);
169+
if (transformations != null)
170+
to.put(name, buildEager((List<Transformation>) transformations));
171+
}
172+
173+
private static void putBoolean(String name, Map from, Map<String, Object> to) {
174+
final Object value = from.get(name);
175+
if(value != null){
176+
to.put(name, ObjectUtils.asBoolean(value));
177+
}
178+
}
179+
180+
private static void putObject(String name, Map from, Map<String, Object> to) {
181+
putObject(name, from, to, null);
182+
}
183+
184+
private static void putObject(String name, Map from, Map<String, Object> to, Object defaultValue) {
185+
final Object value = from.get(name);
186+
if (value != null){
187+
to.put(name, value);
188+
} else if(defaultValue != null){
189+
to.put(name, defaultValue);
190+
}
191+
}
192+
193+
private static void putArray(String name, Map from, Map<String, Object> to) {
194+
final Object value = from.get(name);
195+
if (value != null){
196+
to.put(name, ObjectUtils.asArray(value));
197+
}
198+
}
199+
182200
protected static String timestamp() {
183-
return new Long(System.currentTimeMillis() / 1000L).toString();
201+
return Long.toString(System.currentTimeMillis() / 1000L);
184202
}
185203
}

cloudinary-core/src/main/java/com/cloudinary/utils/ObjectUtils.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ public static List asArray(Object value) {
5656
public static Boolean asBoolean(Object value, Boolean defaultValue) {
5757
if (value == null) {
5858
return defaultValue;
59-
} else if (value instanceof Boolean) {
59+
} else return asBoolean(value);
60+
}
61+
62+
public static Boolean asBoolean(Object value) {
63+
if (value instanceof Boolean) {
6064
return (Boolean) value;
6165
} else {
6266
return "true".equals(value);

0 commit comments

Comments
 (0)