UNPKG

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