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