UNPKG

28.6 kBJavaScriptView Raw
1"use strict";
2
3var utils = require("./utils");
4var call_api = require("./api_client/call_api");
5
6var extend = utils.extend,
7 pickOnlyExistingValues = utils.pickOnlyExistingValues;
8
9
10var TRANSFORMATIONS_URI = "transformations";
11
12function deleteResourcesParams(options) {
13 var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14
15 return extend(params, pickOnlyExistingValues(options, "keep_original", "invalidate", "next_cursor", "transformations"));
16}
17
18function getResourceParams(options) {
19 return pickOnlyExistingValues(options, "exif", "cinemagraph_analysis", "colors", "derived_next_cursor", "faces", "image_metadata", "pages", "phash", "coordinates", "max_results", "versions", "accessibility_analysis");
20}
21
22exports.ping = function ping(callback) {
23 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
24
25 return call_api("get", ["ping"], {}, callback, options);
26};
27
28exports.usage = function usage(callback) {
29 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
30
31 var uri = ["usage"];
32
33 if (options.date) {
34 uri.push(options.date);
35 }
36
37 return call_api("get", uri, {}, callback, options);
38};
39
40exports.resource_types = function resource_types(callback) {
41 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
42
43 return call_api("get", ["resources"], {}, callback, options);
44};
45
46exports.resources = function resources(callback) {
47 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
48
49 var resource_type = void 0,
50 type = void 0,
51 uri = void 0;
52 resource_type = options.resource_type || "image";
53 type = options.type;
54 uri = ["resources", resource_type];
55 if (type != null) {
56 uri.push(type);
57 }
58 if (options.start_at != null && Object.prototype.toString.call(options.start_at) === '[object Date]') {
59 options.start_at = options.start_at.toUTCString();
60 }
61 return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "prefix", "tags", "context", "direction", "moderations", "start_at", "metadata"), callback, options);
62};
63
64exports.resources_by_tag = function resources_by_tag(tag, callback) {
65 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
66
67 var resource_type = void 0,
68 uri = void 0;
69 resource_type = options.resource_type || "image";
70 uri = ["resources", resource_type, "tags", tag];
71 return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations", "metadata"), callback, options);
72};
73
74exports.resources_by_context = function resources_by_context(key, value, callback) {
75 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
76
77 var params = void 0,
78 resource_type = void 0,
79 uri = void 0;
80 resource_type = options.resource_type || "image";
81 uri = ["resources", resource_type, "context"];
82 params = pickOnlyExistingValues(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations", "metadata");
83 params.key = key;
84 if (value != null) {
85 params.value = value;
86 }
87 return call_api("get", uri, params, callback, options);
88};
89
90exports.resources_by_moderation = function resources_by_moderation(kind, status, callback) {
91 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
92
93 var resource_type = void 0,
94 uri = void 0;
95 resource_type = options.resource_type || "image";
96 uri = ["resources", resource_type, "moderations", kind, status];
97 return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations", "metadata"), callback, options);
98};
99
100exports.resource_by_asset_id = function resource_by_asset_id(asset_id, callback) {
101 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
102
103 var uri = ["resources", asset_id];
104 return call_api("get", uri, getResourceParams(options), callback, options);
105};
106
107exports.resources_by_ids = function resources_by_ids(public_ids, callback) {
108 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
109
110 var params = void 0,
111 resource_type = void 0,
112 type = void 0,
113 uri = void 0;
114 resource_type = options.resource_type || "image";
115 type = options.type || "upload";
116 uri = ["resources", resource_type, type];
117 params = pickOnlyExistingValues(options, "tags", "context", "moderations");
118 params["public_ids[]"] = public_ids;
119 return call_api("get", uri, params, callback, options);
120};
121
122exports.resource = function resource(public_id, callback) {
123 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
124
125 var resource_type = void 0,
126 type = void 0,
127 uri = void 0;
128 resource_type = options.resource_type || "image";
129 type = options.type || "upload";
130 uri = ["resources", resource_type, type, public_id];
131 return call_api("get", uri, getResourceParams(options), callback, options);
132};
133
134exports.restore = function restore(public_ids, callback) {
135 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
136
137 options.content_type = 'json';
138 var resource_type = void 0,
139 type = void 0,
140 uri = void 0;
141 resource_type = options.resource_type || "image";
142 type = options.type || "upload";
143 uri = ["resources", resource_type, type, "restore"];
144 return call_api("post", uri, {
145 public_ids: public_ids,
146 versions: options.versions
147 }, callback, options);
148};
149
150exports.update = function update(public_id, callback) {
151 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
152
153 var params = void 0,
154 resource_type = void 0,
155 type = void 0,
156 uri = void 0;
157 resource_type = options.resource_type || "image";
158 type = options.type || "upload";
159 uri = ["resources", resource_type, type, public_id];
160 params = utils.updateable_resource_params(options);
161 if (options.moderation_status != null) {
162 params.moderation_status = options.moderation_status;
163 }
164 return call_api("post", uri, params, callback, options);
165};
166
167exports.delete_resources = function delete_resources(public_ids, callback) {
168 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
169
170 var resource_type = void 0,
171 type = void 0,
172 uri = void 0;
173 resource_type = options.resource_type || "image";
174 type = options.type || "upload";
175 uri = ["resources", resource_type, type];
176 return call_api("delete", uri, deleteResourcesParams(options, {
177 "public_ids[]": public_ids
178 }), callback, options);
179};
180
181exports.delete_resources_by_prefix = function delete_resources_by_prefix(prefix, callback) {
182 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
183
184 var resource_type = void 0,
185 type = void 0,
186 uri = void 0;
187 resource_type = options.resource_type || "image";
188 type = options.type || "upload";
189 uri = ["resources", resource_type, type];
190 return call_api("delete", uri, deleteResourcesParams(options, {
191 prefix: prefix
192 }), callback, options);
193};
194
195exports.delete_resources_by_tag = function delete_resources_by_tag(tag, callback) {
196 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
197
198 var resource_type = void 0,
199 uri = void 0;
200 resource_type = options.resource_type || "image";
201 uri = ["resources", resource_type, "tags", tag];
202 return call_api("delete", uri, deleteResourcesParams(options), callback, options);
203};
204
205exports.delete_all_resources = function delete_all_resources(callback) {
206 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
207
208 var resource_type = void 0,
209 type = void 0,
210 uri = void 0;
211
212 resource_type = options.resource_type || "image";
213 type = options.type || "upload";
214 uri = ["resources", resource_type, type];
215 return call_api("delete", uri, deleteResourcesParams(options, {
216 all: true
217 }), callback, options);
218};
219
220exports.delete_derived_resources = function delete_derived_resources(derived_resource_ids, callback) {
221 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
222
223 var uri = void 0;
224 uri = ["derived_resources"];
225 return call_api("delete", uri, {
226 "derived_resource_ids[]": derived_resource_ids
227 }, callback, options);
228};
229
230exports.delete_derived_by_transformation = function delete_derived_by_transformation(public_ids, transformations, callback) {
231 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
232
233 var params = void 0,
234 resource_type = void 0,
235 type = void 0,
236 uri = void 0;
237 resource_type = options.resource_type || "image";
238 type = options.type || "upload";
239 uri = "resources/" + resource_type + "/" + type;
240 params = extend({
241 "public_ids[]": public_ids
242 }, pickOnlyExistingValues(options, "invalidate"));
243 params.keep_original = true;
244 params.transformations = utils.build_eager(transformations);
245 return call_api("delete", uri, params, callback, options);
246};
247
248exports.tags = function tags(callback) {
249 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
250
251 var resource_type = void 0,
252 uri = void 0;
253 resource_type = options.resource_type || "image";
254 uri = ["tags", resource_type];
255 return call_api("get", uri, pickOnlyExistingValues(options, "next_cursor", "max_results", "prefix"), callback, options);
256};
257
258exports.transformations = function transformations(callback) {
259 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
260
261 var params = pickOnlyExistingValues(options, "next_cursor", "max_results", "named");
262 return call_api("get", TRANSFORMATIONS_URI, params, callback, options);
263};
264
265exports.transformation = function transformation(transformationName, callback) {
266 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
267
268 var params = pickOnlyExistingValues(options, "next_cursor", "max_results");
269 params.transformation = utils.build_eager(transformationName);
270 return call_api("get", TRANSFORMATIONS_URI, params, callback, options);
271};
272
273exports.delete_transformation = function delete_transformation(transformationName, callback) {
274 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
275
276 var params = {};
277 params.transformation = utils.build_eager(transformationName);
278 return call_api("delete", TRANSFORMATIONS_URI, params, callback, options);
279};
280
281exports.update_transformation = function update_transformation(transformationName, updates, callback) {
282 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
283
284 var params = pickOnlyExistingValues(updates, "allowed_for_strict");
285 params.transformation = utils.build_eager(transformationName);
286 if (updates.unsafe_update != null) {
287 params.unsafe_update = utils.build_eager(updates.unsafe_update);
288 }
289 return call_api("put", TRANSFORMATIONS_URI, params, callback, options);
290};
291
292exports.create_transformation = function create_transformation(name, definition, callback) {
293 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
294
295 var params = { name };
296 params.transformation = utils.build_eager(definition);
297 return call_api("post", TRANSFORMATIONS_URI, params, callback, options);
298};
299
300exports.upload_presets = function upload_presets(callback) {
301 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
302
303 return call_api("get", ["upload_presets"], pickOnlyExistingValues(options, "next_cursor", "max_results"), callback, options);
304};
305
306exports.upload_preset = function upload_preset(name, callback) {
307 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
308
309 var uri = void 0;
310 uri = ["upload_presets", name];
311 return call_api("get", uri, {}, callback, options);
312};
313
314exports.delete_upload_preset = function delete_upload_preset(name, callback) {
315 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
316
317 var uri = void 0;
318 uri = ["upload_presets", name];
319 return call_api("delete", uri, {}, callback, options);
320};
321
322exports.update_upload_preset = function update_upload_preset(name, callback) {
323 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
324
325 var params = void 0,
326 uri = void 0;
327 uri = ["upload_presets", name];
328 params = utils.merge(utils.clear_blank(utils.build_upload_params(options)), pickOnlyExistingValues(options, "unsigned", "disallow_public_id", "live"));
329 return call_api("put", uri, params, callback, options);
330};
331
332exports.create_upload_preset = function create_upload_preset(callback) {
333 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
334
335 var params = void 0,
336 uri = void 0;
337 uri = ["upload_presets"];
338 params = utils.merge(utils.clear_blank(utils.build_upload_params(options)), pickOnlyExistingValues(options, "name", "unsigned", "disallow_public_id", "live"));
339 return call_api("post", uri, params, callback, options);
340};
341
342exports.root_folders = function root_folders(callback) {
343 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
344
345 var uri = void 0,
346 params = void 0;
347 uri = ["folders"];
348 params = pickOnlyExistingValues(options, "next_cursor", "max_results");
349 return call_api("get", uri, params, callback, options);
350};
351
352exports.sub_folders = function sub_folders(path, callback) {
353 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
354
355 var uri = void 0,
356 params = void 0;
357 uri = ["folders", path];
358 params = pickOnlyExistingValues(options, "next_cursor", "max_results");
359 return call_api("get", uri, params, callback, options);
360};
361
362/**
363 * Creates an empty folder
364 *
365 * @param {string} path The folder path to create
366 * @param {function} callback Callback function
367 * @param {object} options Configuration options
368 * @returns {*}
369 */
370exports.create_folder = function create_folder(path, callback) {
371 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
372
373 var uri = void 0;
374 uri = ["folders", path];
375 return call_api("post", uri, {}, callback, options);
376};
377
378exports.delete_folder = function delete_folder(path, callback) {
379 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
380
381 var uri = void 0;
382 uri = ["folders", path];
383 return call_api("delete", uri, {}, callback, options);
384};
385
386exports.upload_mappings = function upload_mappings(callback) {
387 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
388
389 var params = void 0;
390 params = pickOnlyExistingValues(options, "next_cursor", "max_results");
391 return call_api("get", "upload_mappings", params, callback, options);
392};
393
394exports.upload_mapping = function upload_mapping(name, callback) {
395 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
396
397 if (name == null) {
398 name = null;
399 }
400 return call_api("get", 'upload_mappings', {
401 folder: name
402 }, callback, options);
403};
404
405exports.delete_upload_mapping = function delete_upload_mapping(name, callback) {
406 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
407
408 return call_api("delete", 'upload_mappings', {
409 folder: name
410 }, callback, options);
411};
412
413exports.update_upload_mapping = function update_upload_mapping(name, callback) {
414 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
415
416 var params = void 0;
417 params = pickOnlyExistingValues(options, "template");
418 params.folder = name;
419 return call_api("put", 'upload_mappings', params, callback, options);
420};
421
422exports.create_upload_mapping = function create_upload_mapping(name, callback) {
423 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
424
425 var params = void 0;
426 params = pickOnlyExistingValues(options, "template");
427 params.folder = name;
428 return call_api("post", 'upload_mappings', params, callback, options);
429};
430
431function publishResource(byKey, value, callback) {
432 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
433
434 var params = void 0,
435 resource_type = void 0,
436 uri = void 0;
437 params = pickOnlyExistingValues(options, "type", "invalidate", "overwrite");
438 params[byKey] = value;
439 resource_type = options.resource_type || "image";
440 uri = ["resources", resource_type, "publish_resources"];
441 options = extend({
442 resource_type: resource_type
443 }, options);
444 return call_api("post", uri, params, callback, options);
445}
446
447exports.publish_by_prefix = function publish_by_prefix(prefix, callback) {
448 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
449
450 return publishResource("prefix", prefix, callback, options);
451};
452
453exports.publish_by_tag = function publish_by_tag(tag, callback) {
454 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
455
456 return publishResource("tag", tag, callback, options);
457};
458
459exports.publish_by_ids = function publish_by_ids(public_ids, callback) {
460 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
461
462 return publishResource("public_ids", public_ids, callback, options);
463};
464
465exports.list_streaming_profiles = function list_streaming_profiles(callback) {
466 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
467
468 return call_api("get", "streaming_profiles", {}, callback, options);
469};
470
471exports.get_streaming_profile = function get_streaming_profile(name, callback) {
472 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
473
474 return call_api("get", "streaming_profiles/" + name, {}, callback, options);
475};
476
477exports.delete_streaming_profile = function delete_streaming_profile(name, callback) {
478 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
479
480 return call_api("delete", "streaming_profiles/" + name, {}, callback, options);
481};
482
483exports.update_streaming_profile = function update_streaming_profile(name, callback) {
484 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
485
486 var params = void 0;
487 params = utils.build_streaming_profiles_param(options);
488 return call_api("put", "streaming_profiles/" + name, params, callback, options);
489};
490
491exports.create_streaming_profile = function create_streaming_profile(name, callback) {
492 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
493
494 var params = void 0;
495 params = utils.build_streaming_profiles_param(options);
496 params.name = name;
497 return call_api("post", 'streaming_profiles', params, callback, options);
498};
499
500function updateResourcesAccessMode(access_mode, by_key, value, callback) {
501 var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
502
503 var params = void 0,
504 resource_type = void 0,
505 type = void 0;
506 resource_type = options.resource_type || "image";
507 type = options.type || "upload";
508 params = {
509 access_mode: access_mode
510 };
511 params[by_key] = value;
512 return call_api("post", "resources/" + resource_type + "/" + type + "/update_access_mode", params, callback, options);
513}
514
515exports.search = function search(params, callback) {
516 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
517
518 options.content_type = 'json';
519 return call_api("post", "resources/search", params, callback, options);
520};
521
522exports.update_resources_access_mode_by_prefix = function update_resources_access_mode_by_prefix(access_mode, prefix, callback) {
523 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
524
525 return updateResourcesAccessMode(access_mode, "prefix", prefix, callback, options);
526};
527
528exports.update_resources_access_mode_by_tag = function update_resources_access_mode_by_tag(access_mode, tag, callback) {
529 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
530
531 return updateResourcesAccessMode(access_mode, "tag", tag, callback, options);
532};
533
534exports.update_resources_access_mode_by_ids = function update_resources_access_mode_by_ids(access_mode, ids, callback) {
535 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
536
537 return updateResourcesAccessMode(access_mode, "public_ids[]", ids, callback, options);
538};
539
540/**
541 * Creates a new metadata field definition
542 *
543 * @see https://cloudinary.com/documentation/admin_api#create_a_metadata_field
544 *
545 * @param {Object} field The field to add
546 * @param {Function} callback Callback function
547 * @param {Object} options Configuration options
548 *
549 * @return {Object}
550 */
551exports.add_metadata_field = function add_metadata_field(field, callback) {
552 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
553
554 var params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource");
555 options.content_type = "json";
556 return call_api("post", ["metadata_fields"], params, callback, options);
557};
558
559/**
560 * Returns a list of all metadata field definitions
561 *
562 * @see https://cloudinary.com/documentation/admin_api#get_metadata_fields
563 *
564 * @param {Function} callback Callback function
565 * @param {Object} options Configuration options
566 *
567 * @return {Object}
568 */
569exports.list_metadata_fields = function list_metadata_fields(callback) {
570 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
571
572 return call_api("get", ["metadata_fields"], {}, callback, options);
573};
574
575/**
576 * Deletes a metadata field definition.
577 *
578 * The field should no longer be considered a valid candidate for all other endpoints
579 *
580 * @see https://cloudinary.com/documentation/admin_api#delete_a_metadata_field_by_external_id
581 *
582 * @param {String} field_external_id The external id of the field to delete
583 * @param {Function} callback Callback function
584 * @param {Object} options Configuration options
585 *
586 * @return {Object}
587 */
588exports.delete_metadata_field = function delete_metadata_field(field_external_id, callback) {
589 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
590
591 return call_api("delete", ["metadata_fields", field_external_id], {}, callback, options);
592};
593
594/**
595 * Get a metadata field by external id
596 *
597 * @see https://cloudinary.com/documentation/admin_api#get_a_metadata_field_by_external_id
598 *
599 * @param {String} external_id The ID of the metadata field to retrieve
600 * @param {Function} callback Callback function
601 * @param {Object} options Configuration options
602 *
603 * @return {Object}
604 */
605exports.metadata_field_by_field_id = function metadata_field_by_field_id(external_id, callback) {
606 var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
607
608 return call_api("get", ["metadata_fields", external_id], {}, callback, options);
609};
610
611/**
612 * Updates a metadata field by external id
613 *
614 * Updates a metadata field definition (partially, no need to pass the entire object) passed as JSON data.
615 * See {@link https://cloudinary.com/documentation/admin_api#generic_structure_of_a_metadata_field Generic structure of a metadata field} for details.
616 *
617 * @see https://cloudinary.com/documentation/admin_api#update_a_metadata_field_by_external_id
618 *
619 * @param {String} external_id The ID of the metadata field to update
620 * @param {Object} field Updated values of metadata field
621 * @param {Function} callback Callback function
622 * @param {Object} options Configuration options
623 *
624 * @return {Object}
625 */
626exports.update_metadata_field = function update_metadata_field(external_id, field, callback) {
627 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
628
629 var params = pickOnlyExistingValues(field, "external_id", "type", "label", "mandatory", "default_value", "validation", "datasource");
630 options.content_type = "json";
631 return call_api("put", ["metadata_fields", external_id], params, callback, options);
632};
633
634/**
635 * Updates a metadata field datasource
636 *
637 * Updates the datasource of a supported field type (currently only enum and set), passed as JSON data. The
638 * update is partial: datasource entries with an existing external_id will be updated and entries with new
639 * external_id’s (or without external_id’s) will be appended.
640 *
641 * @see https://cloudinary.com/documentation/admin_api#update_a_metadata_field_datasource
642 *
643 * @param {String} field_external_id The ID of the field to update
644 * @param {Object} entries_external_id Updated values for datasource
645 * @param {Function} callback Callback function
646 * @param {Object} options Configuration options
647 *
648 * @return {Object}
649 */
650exports.update_metadata_field_datasource = function update_metadata_field_datasource(field_external_id, entries_external_id, callback) {
651 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
652
653 var params = pickOnlyExistingValues(entries_external_id, "values");
654 options.content_type = "json";
655 return call_api("put", ["metadata_fields", field_external_id, "datasource"], params, callback, options);
656};
657
658/**
659 * Deletes entries in a metadata field datasource
660 *
661 * Deletes (blocks) the datasource entries for a specified metadata field definition. Sets the state of the
662 * entries to inactive. This is a soft delete, the entries still exist under the hood and can be activated again
663 * with the restore datasource entries method.
664 *
665 * @see https://cloudinary.com/documentation/admin_api#delete_entries_in_a_metadata_field_datasource
666 *
667 * @param {String} field_external_id The ID of the metadata field
668 * @param {Array} entries_external_id An array of IDs of datasource entries to delete
669 * @param {Function} callback Callback function
670 * @param {Object} options Configuration options
671 *
672 * @return {Object}
673 */
674exports.delete_datasource_entries = function delete_datasource_entries(field_external_id, entries_external_id, callback) {
675 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
676
677 options.content_type = "json";
678 var params = { external_ids: entries_external_id };
679 return call_api("delete", ["metadata_fields", field_external_id, "datasource"], params, callback, options);
680};
681
682/**
683 * Restores entries in a metadata field datasource
684 *
685 * Restores (unblocks) any previously deleted datasource entries for a specified metadata field definition.
686 * Sets the state of the entries to active.
687 *
688 * @see https://cloudinary.com/documentation/admin_api#restore_entries_in_a_metadata_field_datasource
689 *
690 * @param {String} field_external_id The ID of the metadata field
691 * @param {Array} entries_external_id An array of IDs of datasource entries to delete
692 * @param {Function} callback Callback function
693 * @param {Object} options Configuration options
694 *
695 * @return {Object}
696 */
697exports.restore_metadata_field_datasource = function restore_metadata_field_datasource(field_external_id, entries_external_id, callback) {
698 var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
699
700 options.content_type = "json";
701 var params = { external_ids: entries_external_id };
702 return call_api("post", ["metadata_fields", field_external_id, "datasource_restore"], params, callback, options);
703};
704
705/**
706 * Sorts metadata field datasource. Currently supports only value
707 * @param {String} field_external_id The ID of the metadata field
708 * @param {String} sort_by Criteria for the sort. Currently supports only value
709 * @param {String} direction Optional (gets either asc or desc)
710 * @param {Function} callback Callback function
711 * @param {Object} options Configuration options
712 *
713 * @return {Object}
714 */
715exports.order_metadata_field_datasource = function order_metadata_field_datasource(field_external_id, sort_by, direction, callback) {
716 var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
717
718 options.content_type = "json";
719 var params = { order_by: sort_by, direction: direction };
720 return call_api("post", ["metadata_fields", field_external_id, "datasource", "order"], params, callback, options);
721};
\No newline at end of file