1 | const utils = require("./utils");
|
2 | const call_api = require("./api_client/call_api");
|
3 |
|
4 | const { extend, pickOnlyExistingValues } = utils;
|
5 |
|
6 | const TRANSFORMATIONS_URI = "transformations";
|
7 |
|
8 | function deleteResourcesParams(options, params = {}) {
|
9 | return extend(params, pickOnlyExistingValues(options, "keep_original", "invalidate", "next_cursor", "transformations"));
|
10 | }
|
11 |
|
12 | function getResourceParams(options) {
|
13 | return pickOnlyExistingValues(options, "exif", "cinemagraph_analysis", "colors", "derived_next_cursor", "faces", "image_metadata", "pages", "phash", "coordinates", "max_results", "versions", "accessibility_analysis");
|
14 | }
|
15 |
|
16 | exports.ping = function ping(callback, options = {}) {
|
17 | return call_api("get", ["ping"], {}, callback, options);
|
18 | };
|
19 |
|
20 | exports.usage = function usage(callback, options = {}) {
|
21 | const uri = ["usage"];
|
22 |
|
23 | if (options.date) {
|
24 | uri.push(options.date);
|
25 | }
|
26 |
|
27 | return call_api("get", uri, {}, callback, options);
|
28 | };
|
29 |
|
30 | exports.resource_types = function resource_types(callback, options = {}) {
|
31 | return call_api("get", ["resources"], {}, callback, options);
|
32 | };
|
33 |
|
34 | exports.resources = function resources(callback, options = {}) {
|
35 | let resource_type, type, uri;
|
36 | resource_type = options.resource_type || "image";
|
37 | type = options.type;
|
38 | uri = ["resources", resource_type];
|
39 | if (type != null) {
|
40 | uri.push(type);
|
41 | }
|
42 | if ((options.start_at != null) && Object.prototype.toString.call(options.start_at) === '[object Date]') {
|
43 | options.start_at = options.start_at.toUTCString();
|
44 | }
|
45 | return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "prefix", "tags", "context", "direction", "moderations", "start_at", "metadata"), callback, options);
|
46 | };
|
47 |
|
48 | exports.resources_by_tag = function resources_by_tag(tag, callback, options = {}) {
|
49 | let resource_type, uri;
|
50 | resource_type = options.resource_type || "image";
|
51 | uri = ["resources", resource_type, "tags", tag];
|
52 | return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations", "metadata"), callback, options);
|
53 | };
|
54 |
|
55 | exports.resources_by_context = function resources_by_context(key, value, callback, options = {}) {
|
56 | let params, resource_type, uri;
|
57 | resource_type = options.resource_type || "image";
|
58 | uri = ["resources", resource_type, "context"];
|
59 | params = pickOnlyExistingValues(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations", "metadata");
|
60 | params.key = key;
|
61 | if (value != null) {
|
62 | params.value = value;
|
63 | }
|
64 | return call_api("get", uri, params, callback, options);
|
65 | };
|
66 |
|
67 | exports.resources_by_moderation = function resources_by_moderation(kind, status, callback, options = {}) {
|
68 | let resource_type, uri;
|
69 | resource_type = options.resource_type || "image";
|
70 | uri = ["resources", resource_type, "moderations", kind, status];
|
71 | return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations", "metadata"), callback, options);
|
72 | };
|
73 |
|
74 | exports.resource_by_asset_id = function resource_by_asset_id(asset_id, callback, options = {}) {
|
75 | const uri = ["resources", asset_id];
|
76 | return call_api("get", uri, getResourceParams(options), callback, options);
|
77 | }
|
78 |
|
79 | exports.resources_by_ids = function resources_by_ids(public_ids, callback, options = {}) {
|
80 | let params, resource_type, type, uri;
|
81 | resource_type = options.resource_type || "image";
|
82 | type = options.type || "upload";
|
83 | uri = ["resources", resource_type, type];
|
84 | params = pickOnlyExistingValues(options, "tags", "context", "moderations");
|
85 | params["public_ids[]"] = public_ids;
|
86 | return call_api("get", uri, params, callback, options);
|
87 | };
|
88 |
|
89 | exports.resource = function resource(public_id, callback, options = {}) {
|
90 | let resource_type, type, uri;
|
91 | resource_type = options.resource_type || "image";
|
92 | type = options.type || "upload";
|
93 | uri = ["resources", resource_type, type, public_id];
|
94 | return call_api("get", uri, getResourceParams(options), callback, options);
|
95 | };
|
96 |
|
97 | exports.restore = function restore(public_ids, callback, options = {}) {
|
98 | options.content_type = 'json';
|
99 | let resource_type, type, uri;
|
100 | resource_type = options.resource_type || "image";
|
101 | type = options.type || "upload";
|
102 | uri = ["resources", resource_type, type, "restore"];
|
103 | return call_api("post", uri, {
|
104 | public_ids: public_ids,
|
105 | versions: options.versions
|
106 | }, callback, options);
|
107 | };
|
108 |
|
109 | exports.update = function update(public_id, callback, options = {}) {
|
110 | let params, resource_type, type, uri;
|
111 | resource_type = options.resource_type || "image";
|
112 | type = options.type || "upload";
|
113 | uri = ["resources", resource_type, type, public_id];
|
114 | params = utils.updateable_resource_params(options);
|
115 | if (options.moderation_status != null) {
|
116 | params.moderation_status = options.moderation_status;
|
117 | }
|
118 | return call_api("post", uri, params, callback, options);
|
119 | };
|
120 |
|
121 | exports.delete_resources = function delete_resources(public_ids, callback, options = {}) {
|
122 | let resource_type, type, uri;
|
123 | resource_type = options.resource_type || "image";
|
124 | type = options.type || "upload";
|
125 | uri = ["resources", resource_type, type];
|
126 | return call_api("delete", uri, deleteResourcesParams(options, {
|
127 | "public_ids[]": public_ids
|
128 | }), callback, options);
|
129 | };
|
130 |
|
131 | exports.delete_resources_by_prefix = function delete_resources_by_prefix(prefix, callback, options = {}) {
|
132 | let resource_type, type, uri;
|
133 | resource_type = options.resource_type || "image";
|
134 | type = options.type || "upload";
|
135 | uri = ["resources", resource_type, type];
|
136 | return call_api("delete", uri, deleteResourcesParams(options, {
|
137 | prefix: prefix
|
138 | }), callback, options);
|
139 | };
|
140 |
|
141 | exports.delete_resources_by_tag = function delete_resources_by_tag(tag, callback, options = {}) {
|
142 | let resource_type, uri;
|
143 | resource_type = options.resource_type || "image";
|
144 | uri = ["resources", resource_type, "tags", tag];
|
145 | return call_api("delete", uri, deleteResourcesParams(options), callback, options);
|
146 | };
|
147 |
|
148 | exports.delete_all_resources = function delete_all_resources(callback, options = {}) {
|
149 | let resource_type, type, uri;
|
150 |
|
151 | resource_type = options.resource_type || "image";
|
152 | type = options.type || "upload";
|
153 | uri = ["resources", resource_type, type];
|
154 | return call_api("delete", uri, deleteResourcesParams(options, {
|
155 | all: true
|
156 | }), callback, options);
|
157 | };
|
158 |
|
159 | exports.delete_derived_resources = function delete_derived_resources(derived_resource_ids, callback, options = {}) {
|
160 | let uri;
|
161 | uri = ["derived_resources"];
|
162 | return call_api("delete", uri, {
|
163 | "derived_resource_ids[]": derived_resource_ids
|
164 | }, callback, options);
|
165 | };
|
166 |
|
167 | exports.delete_derived_by_transformation = function delete_derived_by_transformation(
|
168 | public_ids,
|
169 | transformations,
|
170 | callback,
|
171 | options = {}
|
172 | ) {
|
173 | let params, resource_type, type, uri;
|
174 | resource_type = options.resource_type || "image";
|
175 | type = options.type || "upload";
|
176 | uri = "resources/" + resource_type + "/" + type;
|
177 | params = extend({
|
178 | "public_ids[]": public_ids
|
179 | }, pickOnlyExistingValues(options, "invalidate"));
|
180 | params.keep_original = true;
|
181 | params.transformations = utils.build_eager(transformations);
|
182 | return call_api("delete", uri, params, callback, options);
|
183 | };
|
184 |
|
185 | exports.tags = function tags(callback, options = {}) {
|
186 | let resource_type, uri;
|
187 | resource_type = options.resource_type || "image";
|
188 | uri = ["tags", resource_type];
|
189 | return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "prefix"), callback, options);
|
190 | };
|
191 |
|
192 | exports.transformations = function transformations(callback, options = {}) {
|
193 | const params = pickOnlyExistingValues(options, "next_cursor", "max_results", "named");
|
194 | return call_api("get", TRANSFORMATIONS_URI, params, callback, options);
|
195 | };
|
196 |
|
197 | exports.transformation = function transformation(transformationName, callback, options = {}) {
|
198 | const params = pickOnlyExistingValues(options, "next_cursor", "max_results");
|
199 | params.transformation = utils.build_eager(transformationName);
|
200 | return call_api("get", TRANSFORMATIONS_URI, params, callback, options);
|
201 | };
|
202 |
|
203 | exports.delete_transformation = function delete_transformation(transformationName, callback, options = {}) {
|
204 | const params = {};
|
205 | params.transformation = utils.build_eager(transformationName);
|
206 | return call_api("delete", TRANSFORMATIONS_URI, params, callback, options);
|
207 | };
|
208 |
|
209 | exports.update_transformation = function update_transformation(transformationName, updates, callback, options = {}) {
|
210 | const params = pickOnlyExistingValues(updates, "allowed_for_strict");
|
211 | params.transformation = utils.build_eager(transformationName);
|
212 | if (updates.unsafe_update != null) {
|
213 | params.unsafe_update = utils.build_eager(updates.unsafe_update);
|
214 | }
|
215 | return call_api("put", TRANSFORMATIONS_URI, params, callback, options);
|
216 | };
|
217 |
|
218 | exports.create_transformation = function create_transformation(name, definition, callback, options = {}) {
|
219 | const params = { name };
|
220 | params.transformation = utils.build_eager(definition);
|
221 | return call_api("post", TRANSFORMATIONS_URI, params, callback, options);
|
222 | };
|
223 |
|
224 | exports.upload_presets = function upload_presets(callback, options = {}) {
|
225 | return call_api("get", ["upload_presets"], pickOnlyExistingValues(options, "next_cursor", "max_results"), callback, options);
|
226 | };
|
227 |
|
228 | exports.upload_preset = function upload_preset(name, callback, options = {}) {
|
229 | let uri;
|
230 | uri = ["upload_presets", name];
|
231 | return call_api("get", uri, {}, callback, options);
|
232 | };
|
233 |
|
234 | exports.delete_upload_preset = function delete_upload_preset(name, callback, options = {}) {
|
235 | let uri;
|
236 | uri = ["upload_presets", name];
|
237 | return call_api("delete", uri, {}, callback, options);
|
238 | };
|
239 |
|
240 | exports.update_upload_preset = function update_upload_preset(name, callback, options = {}) {
|
241 | let params, uri;
|
242 | uri = ["upload_presets", name];
|
243 | params = utils.merge(utils.clear_blank(utils.build_upload_params(options)), pickOnlyExistingValues(options, "unsigned", "disallow_public_id", "live"));
|
244 | return call_api("put", uri, params, callback, options);
|
245 | };
|
246 |
|
247 | exports.create_upload_preset = function create_upload_preset(callback, options = {}) {
|
248 | let params, uri;
|
249 | uri = ["upload_presets"];
|
250 | params = utils.merge(utils.clear_blank(utils.build_upload_params(options)), pickOnlyExistingValues(options, "name", "unsigned", "disallow_public_id", "live"));
|
251 | return call_api("post", uri, params, callback, options);
|
252 | };
|
253 |
|
254 | exports.root_folders = function root_folders(callback, options = {}) {
|
255 | let uri, params;
|
256 | uri = ["folders"];
|
257 | params = pickOnlyExistingValues(options, "next_cursor", "max_results");
|
258 | return call_api("get", uri, params, callback, options);
|
259 | };
|
260 |
|
261 | exports.sub_folders = function sub_folders(path, callback, options = {}) {
|
262 | let uri, params;
|
263 | uri = ["folders", path];
|
264 | params = pickOnlyExistingValues(options, "next_cursor", "max_results");
|
265 | return call_api("get", uri, params, callback, options);
|
266 | };
|
267 |
|
268 |
|
269 |
|
270 |
|
271 |
|
272 |
|
273 |
|
274 |
|
275 |
|
276 | exports.create_folder = function create_folder(path, callback, options = {}) {
|
277 | let uri;
|
278 | uri = ["folders", path];
|
279 | return call_api("post", uri, {}, callback, options);
|
280 | };
|
281 |
|
282 | exports.delete_folder = function delete_folder(path, callback, options = {}) {
|
283 | let uri;
|
284 | uri = ["folders", path];
|
285 | return call_api("delete", uri, {}, callback, options);
|
286 | };
|
287 |
|
288 | exports.upload_mappings = function upload_mappings(callback, options = {}) {
|
289 | let params;
|
290 | params = pickOnlyExistingValues(options, "next_cursor", "max_results");
|
291 | return call_api("get", "upload_mappings", params, callback, options);
|
292 | };
|
293 |
|
294 | exports.upload_mapping = function upload_mapping(name, callback, options = {}) {
|
295 | if (name == null) {
|
296 | name = null;
|
297 | }
|
298 | return call_api("get", 'upload_mappings', {
|
299 | folder: name
|
300 | }, callback, options);
|
301 | };
|
302 |
|
303 | exports.delete_upload_mapping = function delete_upload_mapping(name, callback, options = {}) {
|
304 | return call_api("delete", 'upload_mappings', {
|
305 | folder: name
|
306 | }, callback, options);
|
307 | };
|
308 |
|
309 | exports.update_upload_mapping = function update_upload_mapping(name, callback, options = {}) {
|
310 | let params;
|
311 | params = pickOnlyExistingValues(options, "template");
|
312 | params.folder = name;
|
313 | return call_api("put", 'upload_mappings', params, callback, options);
|
314 | };
|
315 |
|
316 | exports.create_upload_mapping = function create_upload_mapping(name, callback, options = {}) {
|
317 | let params;
|
318 | params = pickOnlyExistingValues(options, "template");
|
319 | params.folder = name;
|
320 | return call_api("post", 'upload_mappings', params, callback, options);
|
321 | };
|
322 |
|
323 | function publishResource(byKey, value, callback, options = {}) {
|
324 | let params, resource_type, uri;
|
325 | params = pickOnlyExistingValues(options, "type", "invalidate", "overwrite");
|
326 | params[byKey] = value;
|
327 | resource_type = options.resource_type || "image";
|
328 | uri = ["resources", resource_type, "publish_resources"];
|
329 | options = extend({
|
330 | resource_type: resource_type
|
331 | }, options);
|
332 | return call_api("post", uri, params, callback, options);
|
333 | }
|
334 |
|
335 | exports.publish_by_prefix = function publish_by_prefix(prefix, callback, options = {}) {
|
336 | return publishResource("prefix", prefix, callback, options);
|
337 | };
|
338 |
|
339 | exports.publish_by_tag = function publish_by_tag(tag, callback, options = {}) {
|
340 | return publishResource("tag", tag, callback, options);
|
341 | };
|
342 |
|
343 | exports.publish_by_ids = function publish_by_ids(public_ids, callback, options = {}) {
|
344 | return publishResource("public_ids", public_ids, callback, options);
|
345 | };
|
346 |
|
347 | exports.list_streaming_profiles = function list_streaming_profiles(callback, options = {}) {
|
348 | return call_api("get", "streaming_profiles", {}, callback, options);
|
349 | };
|
350 |
|
351 | exports.get_streaming_profile = function get_streaming_profile(name, callback, options = {}) {
|
352 | return call_api("get", "streaming_profiles/" + name, {}, callback, options);
|
353 | };
|
354 |
|
355 | exports.delete_streaming_profile = function delete_streaming_profile(name, callback, options = {}) {
|
356 | return call_api("delete", "streaming_profiles/" + name, {}, callback, options);
|
357 | };
|
358 |
|
359 | exports.update_streaming_profile = function update_streaming_profile(name, callback, options = {}) {
|
360 | let params;
|
361 | params = utils.build_streaming_profiles_param(options);
|
362 | return call_api("put", "streaming_profiles/" + name, params, callback, options);
|
363 | };
|
364 |
|
365 | exports.create_streaming_profile = function create_streaming_profile(name, callback, options = {}) {
|
366 | let params;
|
367 | params = utils.build_streaming_profiles_param(options);
|
368 | params.name = name;
|
369 | return call_api("post", 'streaming_profiles', params, callback, options);
|
370 | };
|
371 |
|
372 | function updateResourcesAccessMode(access_mode, by_key, value, callback, options = {}) {
|
373 | let params, resource_type, type;
|
374 | resource_type = options.resource_type || "image";
|
375 | type = options.type || "upload";
|
376 | params = {
|
377 | access_mode: access_mode
|
378 | };
|
379 | params[by_key] = value;
|
380 | return call_api("post", "resources/" + resource_type + "/" + type + "/update_access_mode", params, callback, options);
|
381 | }
|
382 |
|
383 | exports.search = function search(params, callback, options = {}) {
|
384 | options.content_type = 'json';
|
385 | return call_api("post", "resources/search", params, callback, options);
|
386 | };
|
387 |
|
388 | exports.update_resources_access_mode_by_prefix = function update_resources_access_mode_by_prefix(
|
389 | access_mode,
|
390 | prefix,
|
391 | callback,
|
392 | options = {}
|
393 | ) {
|
394 | return updateResourcesAccessMode(access_mode, "prefix", prefix, callback, options);
|
395 | };
|
396 |
|
397 | exports.update_resources_access_mode_by_tag = function update_resources_access_mode_by_tag(
|
398 | access_mode,
|
399 | tag,
|
400 | callback,
|
401 | options = {}
|
402 | ) {
|
403 | return updateResourcesAccessMode(access_mode, "tag", tag, callback, options);
|
404 | };
|
405 |
|
406 | exports.update_resources_access_mode_by_ids = function update_resources_access_mode_by_ids(
|
407 | access_mode,
|
408 | ids,
|
409 | callback,
|
410 | options = {}
|
411 | ) {
|
412 | return updateResourcesAccessMode(access_mode, "public_ids[]", ids, callback, options);
|
413 | };
|
414 |
|
415 |
|
416 |
|
417 |
|
418 |
|
419 |
|
420 |
|
421 |
|
422 |
|
423 |
|
424 |
|
425 |
|
426 | exports.add_metadata_field = function add_metadata_field(field, callback, options = {}) {
|
427 | const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource");
|
428 | options.content_type = "json";
|
429 | return call_api("post", ["metadata_fields"], params, callback, options);
|
430 | };
|
431 |
|
432 |
|
433 |
|
434 |
|
435 |
|
436 |
|
437 |
|
438 |
|
439 |
|
440 |
|
441 |
|
442 | exports.list_metadata_fields = function list_metadata_fields(callback, options = {}) {
|
443 | return call_api("get", ["metadata_fields"], {}, callback, options);
|
444 | };
|
445 |
|
446 |
|
447 |
|
448 |
|
449 |
|
450 |
|
451 |
|
452 |
|
453 |
|
454 |
|
455 |
|
456 |
|
457 |
|
458 |
|
459 | exports.delete_metadata_field = function delete_metadata_field(field_external_id, callback, options = {}) {
|
460 | return call_api("delete", ["metadata_fields", field_external_id], {}, callback, options);
|
461 | };
|
462 |
|
463 |
|
464 |
|
465 |
|
466 |
|
467 |
|
468 |
|
469 |
|
470 |
|
471 |
|
472 |
|
473 |
|
474 | exports.metadata_field_by_field_id = function metadata_field_by_field_id(external_id, callback, options = {}) {
|
475 | return call_api("get", ["metadata_fields", external_id], {}, callback, options);
|
476 | };
|
477 |
|
478 |
|
479 |
|
480 |
|
481 |
|
482 |
|
483 |
|
484 |
|
485 |
|
486 |
|
487 |
|
488 |
|
489 |
|
490 |
|
491 |
|
492 |
|
493 | exports.update_metadata_field = function update_metadata_field(external_id, field, callback, options = {}) {
|
494 | const params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource");
|
495 | options.content_type = "json";
|
496 | return call_api("put", ["metadata_fields", external_id], params, callback, options);
|
497 | };
|
498 |
|
499 |
|
500 |
|
501 |
|
502 |
|
503 |
|
504 |
|
505 |
|
506 |
|
507 |
|
508 |
|
509 |
|
510 |
|
511 |
|
512 |
|
513 |
|
514 |
|
515 | exports.update_metadata_field_datasource = function update_metadata_field_datasource(field_external_id, entries_external_id, callback, options = {}) {
|
516 | const params = pickOnlyExistingValues(entries_external_id, "values");
|
517 | options.content_type = "json";
|
518 | return call_api("put", ["metadata_fields", field_external_id, "datasource"], params, callback, options);
|
519 | };
|
520 |
|
521 |
|
522 |
|
523 |
|
524 |
|
525 |
|
526 |
|
527 |
|
528 |
|
529 |
|
530 |
|
531 |
|
532 |
|
533 |
|
534 |
|
535 |
|
536 |
|
537 | exports.delete_datasource_entries = function delete_datasource_entries(field_external_id, entries_external_id, callback, options = {}) {
|
538 | options.content_type = "json";
|
539 | const params = { external_ids: entries_external_id };
|
540 | return call_api("delete", ["metadata_fields", field_external_id, "datasource"], params, callback, options);
|
541 | };
|
542 |
|
543 |
|
544 |
|
545 |
|
546 |
|
547 |
|
548 |
|
549 |
|
550 |
|
551 |
|
552 |
|
553 |
|
554 |
|
555 |
|
556 |
|
557 |
|
558 | exports.restore_metadata_field_datasource = function restore_metadata_field_datasource(field_external_id, entries_external_id, callback, options = {}) {
|
559 | options.content_type = "json";
|
560 | const params = { external_ids: entries_external_id };
|
561 | return call_api("post", ["metadata_fields", field_external_id, "datasource_restore"], params, callback, options);
|
562 | };
|
563 |
|
564 |
|
565 |
|
566 |
|
567 |
|
568 |
|
569 |
|
570 |
|
571 |
|
572 |
|
573 |
|
574 | exports.order_metadata_field_datasource = function order_metadata_field_datasource(field_external_id, sort_by, direction, callback, options = {}) {
|
575 | options.content_type = "json";
|
576 | const params = { order_by: sort_by, direction: direction};
|
577 | return call_api("post", ["metadata_fields", field_external_id, "datasource", "order"], params, callback, options);
|
578 | };
|