1 | (function() {
|
2 | var Q, _, api, call_api, config, delete_resources_params, https, publishResource, querystring, transformation_string, update_resources_access_mode, utils,
|
3 | slice = [].slice;
|
4 |
|
5 | _ = require("lodash");
|
6 |
|
7 | config = require("./config");
|
8 |
|
9 | if (config().upload_prefix && config().upload_prefix.slice(0, 5) === 'http:') {
|
10 | https = require('http');
|
11 | } else {
|
12 | https = require('https');
|
13 | }
|
14 |
|
15 | utils = require("./utils");
|
16 |
|
17 | querystring = require("querystring");
|
18 |
|
19 | Q = require('q');
|
20 |
|
21 | api = module.exports;
|
22 |
|
23 | call_api = function(method, uri, params, callback, options) {
|
24 | var api_key, api_secret, api_url, cloud_name, cloudinary, content_type, deferred, handle_response, query_params, ref, ref1, ref2, ref3, ref4, ref5, request, request_options;
|
25 | deferred = Q.defer();
|
26 | cloudinary = (ref = (ref1 = options["upload_prefix"]) != null ? ref1 : config("upload_prefix")) != null ? ref : "https://api.cloudinary.com";
|
27 | cloud_name = (function() {
|
28 | var ref3;
|
29 | if ((ref2 = (ref3 = options["cloud_name"]) != null ? ref3 : config("cloud_name")) != null) {
|
30 | return ref2;
|
31 | } else {
|
32 | throw "Must supply cloud_name";
|
33 | }
|
34 | })();
|
35 | api_key = (function() {
|
36 | var ref4;
|
37 | if ((ref3 = (ref4 = options["api_key"]) != null ? ref4 : config("api_key")) != null) {
|
38 | return ref3;
|
39 | } else {
|
40 | throw "Must supply api_key";
|
41 | }
|
42 | })();
|
43 | api_secret = (function() {
|
44 | var ref5;
|
45 | if ((ref4 = (ref5 = options["api_secret"]) != null ? ref5 : config("api_secret")) != null) {
|
46 | return ref4;
|
47 | } else {
|
48 | throw "Must supply api_secret";
|
49 | }
|
50 | })();
|
51 | api_url = [cloudinary, "v1_1", cloud_name].concat(uri).join("/");
|
52 | content_type = 'application/x-www-form-urlencoded';
|
53 | if (options['content_type'] === 'json') {
|
54 | query_params = JSON.stringify(params);
|
55 | content_type = 'application/json';
|
56 | } else {
|
57 | query_params = querystring.stringify(params);
|
58 | }
|
59 | if (method === "get") {
|
60 | api_url += "?" + query_params;
|
61 | }
|
62 | request_options = require('url').parse(api_url);
|
63 | request_options = _.extend(request_options, {
|
64 | method: method.toUpperCase(),
|
65 | headers: {
|
66 | 'Content-Type': content_type,
|
67 | 'User-Agent': utils.getUserAgent()
|
68 | },
|
69 | auth: api_key + ":" + api_secret
|
70 | });
|
71 | if (options.agent != null) {
|
72 | request_options.agent = options.agent;
|
73 | }
|
74 | if (method !== "get") {
|
75 | request_options.headers['Content-Length'] = Buffer.byteLength(query_params);
|
76 | }
|
77 | handle_response = function(res) {
|
78 | var buffer, err_obj, error;
|
79 | if (_.includes([200, 400, 401, 403, 404, 409, 420, 500], res.statusCode)) {
|
80 | buffer = "";
|
81 | error = false;
|
82 | res.on("data", function(d) {
|
83 | return buffer += d;
|
84 | });
|
85 | res.on("end", function() {
|
86 | var e, result;
|
87 | if (error) {
|
88 | return;
|
89 | }
|
90 | try {
|
91 | result = JSON.parse(buffer);
|
92 | } catch (error1) {
|
93 | e = error1;
|
94 | result = {
|
95 | error: {
|
96 | message: "Server return invalid JSON response. Status Code " + res.statusCode
|
97 | }
|
98 | };
|
99 | }
|
100 | if (result["error"]) {
|
101 | result["error"]["http_code"] = res.statusCode;
|
102 | } else {
|
103 | result["rate_limit_allowed"] = parseInt(res.headers["x-featureratelimit-limit"]);
|
104 | result["rate_limit_reset_at"] = new Date(res.headers["x-featureratelimit-reset"]);
|
105 | result["rate_limit_remaining"] = parseInt(res.headers["x-featureratelimit-remaining"]);
|
106 | }
|
107 | if (result.error) {
|
108 | deferred.reject(result);
|
109 | } else {
|
110 | deferred.resolve(result);
|
111 | }
|
112 | return typeof callback === "function" ? callback(result) : void 0;
|
113 | });
|
114 | return res.on("error", function(e) {
|
115 | var err_obj;
|
116 | error = true;
|
117 | err_obj = {
|
118 | error: {
|
119 | message: e,
|
120 | http_code: res.statusCode
|
121 | }
|
122 | };
|
123 | deferred.reject(err_obj.error);
|
124 | return typeof callback === "function" ? callback(err_obj) : void 0;
|
125 | });
|
126 | } else {
|
127 | err_obj = {
|
128 | error: {
|
129 | message: "Server returned unexpected status code - " + res.statusCode,
|
130 | http_code: res.statusCode
|
131 | }
|
132 | };
|
133 | deferred.reject(err_obj.error);
|
134 | return typeof callback === "function" ? callback(err_obj) : void 0;
|
135 | }
|
136 | };
|
137 | request = https.request(request_options, handle_response);
|
138 | request.on("error", function(e) {
|
139 | return typeof callback === "function" ? callback({
|
140 | error: e
|
141 | }) : void 0;
|
142 | });
|
143 | request.setTimeout((ref5 = options["timeout"]) != null ? ref5 : 60000);
|
144 | if (method !== "get") {
|
145 | request.write(query_params);
|
146 | }
|
147 | request.end();
|
148 | return deferred.promise;
|
149 | };
|
150 |
|
151 | transformation_string = function(transformation) {
|
152 | if (_.isString(transformation)) {
|
153 | return transformation;
|
154 | } else {
|
155 | return utils.generate_transformation_string(_.extend({}, transformation));
|
156 | }
|
157 | };
|
158 |
|
159 | delete_resources_params = function(options, params) {
|
160 | if (params == null) {
|
161 | params = {};
|
162 | }
|
163 | return _.extend(params, api.only(options, "keep_original", "invalidate", "next_cursor", "transformations"));
|
164 | };
|
165 |
|
166 | exports.ping = function(callback, options) {
|
167 | if (options == null) {
|
168 | options = {};
|
169 | }
|
170 | return call_api("get", ["ping"], {}, callback, options);
|
171 | };
|
172 |
|
173 | exports.usage = function(callback, options) {
|
174 | if (options == null) {
|
175 | options = {};
|
176 | }
|
177 | return call_api("get", ["usage"], {}, callback, options);
|
178 | };
|
179 |
|
180 | exports.resource_types = function(callback, options) {
|
181 | if (options == null) {
|
182 | options = {};
|
183 | }
|
184 | return call_api("get", ["resources"], {}, callback, options);
|
185 | };
|
186 |
|
187 | exports.resources = function(callback, options) {
|
188 | var ref, resource_type, type, uri;
|
189 | if (options == null) {
|
190 | options = {};
|
191 | }
|
192 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
193 | type = options["type"];
|
194 | uri = ["resources", resource_type];
|
195 | if (type != null) {
|
196 | uri.push(type);
|
197 | }
|
198 | if ((options.start_at != null) && Object.prototype.toString.call(options.start_at) === '[object Date]') {
|
199 | options.start_at = options.start_at.toUTCString();
|
200 | }
|
201 | return call_api("get", uri, api.only(options, "next_cursor", "max_results", "prefix", "tags", "context", "direction", "moderations", "start_at"), callback, options);
|
202 | };
|
203 |
|
204 | exports.resources_by_tag = function(tag, callback, options) {
|
205 | var ref, resource_type, uri;
|
206 | if (options == null) {
|
207 | options = {};
|
208 | }
|
209 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
210 | uri = ["resources", resource_type, "tags", tag];
|
211 | return call_api("get", uri, api.only(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations"), callback, options);
|
212 | };
|
213 |
|
214 | exports.resources_by_context = function(key, value, callback, options) {
|
215 | var params, ref, resource_type, uri;
|
216 | if (options == null) {
|
217 | options = {};
|
218 | }
|
219 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
220 | uri = ["resources", resource_type, "context"];
|
221 | params = api.only(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations");
|
222 | params.key = key;
|
223 | if (value != null) {
|
224 | params.value = value;
|
225 | }
|
226 | return call_api("get", uri, params, callback, options);
|
227 | };
|
228 |
|
229 | exports.resources_by_moderation = function(kind, status, callback, options) {
|
230 | var ref, resource_type, uri;
|
231 | if (options == null) {
|
232 | options = {};
|
233 | }
|
234 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
235 | uri = ["resources", resource_type, "moderations", kind, status];
|
236 | return call_api("get", uri, api.only(options, "next_cursor", "max_results", "tags", "context", "direction", "moderations"), callback, options);
|
237 | };
|
238 |
|
239 | exports.resources_by_ids = function(public_ids, callback, options) {
|
240 | var params, ref, ref1, resource_type, type, uri;
|
241 | if (options == null) {
|
242 | options = {};
|
243 | }
|
244 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
245 | type = (ref1 = options["type"]) != null ? ref1 : "upload";
|
246 | uri = ["resources", resource_type, type];
|
247 | params = api.only(options, "tags", "context", "moderations");
|
248 | params["public_ids[]"] = public_ids;
|
249 | return call_api("get", uri, params, callback, options);
|
250 | };
|
251 |
|
252 | exports.resource = function(public_id, callback, options) {
|
253 | var ref, ref1, resource_type, type, uri;
|
254 | if (options == null) {
|
255 | options = {};
|
256 | }
|
257 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
258 | type = (ref1 = options["type"]) != null ? ref1 : "upload";
|
259 | uri = ["resources", resource_type, type, public_id];
|
260 | return call_api("get", uri, api.only(options, "exif", "colors", "faces", "image_metadata", "pages", "phash", "coordinates", "max_results"), callback, options);
|
261 | };
|
262 |
|
263 | exports.restore = function(public_ids, callback, options) {
|
264 | var ref, ref1, resource_type, type, uri;
|
265 | if (options == null) {
|
266 | options = {};
|
267 | }
|
268 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
269 | type = (ref1 = options["type"]) != null ? ref1 : "upload";
|
270 | uri = ["resources", resource_type, type, "restore"];
|
271 | return call_api("post", uri, {
|
272 | public_ids: public_ids
|
273 | }, callback, options);
|
274 | };
|
275 |
|
276 | exports.update = function(public_id, callback, options) {
|
277 | var params, ref, ref1, resource_type, type, uri;
|
278 | if (options == null) {
|
279 | options = {};
|
280 | }
|
281 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
282 | type = (ref1 = options["type"]) != null ? ref1 : "upload";
|
283 | uri = ["resources", resource_type, type, public_id];
|
284 | params = utils.updateable_resource_params(options);
|
285 | if (options.moderation_status != null) {
|
286 | params.moderation_status = options.moderation_status;
|
287 | }
|
288 | return call_api("post", uri, params, callback, options);
|
289 | };
|
290 |
|
291 | exports.delete_resources = function(public_ids, callback, options) {
|
292 | var ref, ref1, resource_type, type, uri;
|
293 | if (options == null) {
|
294 | options = {};
|
295 | }
|
296 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
297 | type = (ref1 = options["type"]) != null ? ref1 : "upload";
|
298 | uri = ["resources", resource_type, type];
|
299 | return call_api("delete", uri, delete_resources_params(options, {
|
300 | "public_ids[]": public_ids
|
301 | }), callback, options);
|
302 | };
|
303 |
|
304 | exports.delete_resources_by_prefix = function(prefix, callback, options) {
|
305 | var ref, ref1, resource_type, type, uri;
|
306 | if (options == null) {
|
307 | options = {};
|
308 | }
|
309 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
310 | type = (ref1 = options["type"]) != null ? ref1 : "upload";
|
311 | uri = ["resources", resource_type, type];
|
312 | return call_api("delete", uri, delete_resources_params(options, {
|
313 | prefix: prefix
|
314 | }), callback, options);
|
315 | };
|
316 |
|
317 | exports.delete_resources_by_tag = function(tag, callback, options) {
|
318 | var ref, resource_type, uri;
|
319 | if (options == null) {
|
320 | options = {};
|
321 | }
|
322 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
323 | uri = ["resources", resource_type, "tags", tag];
|
324 | return call_api("delete", uri, delete_resources_params(options), callback, options);
|
325 | };
|
326 |
|
327 | exports.delete_all_resources = function(callback, options) {
|
328 | var ref, ref1, resource_type, type, uri;
|
329 | if (options == null) {
|
330 | options = {};
|
331 | }
|
332 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
333 | type = (ref1 = options["type"]) != null ? ref1 : "upload";
|
334 | uri = ["resources", resource_type, type];
|
335 | return call_api("delete", uri, delete_resources_params(options, {
|
336 | all: true
|
337 | }), callback, options);
|
338 | };
|
339 |
|
340 | exports.delete_derived_resources = function(derived_resource_ids, callback, options) {
|
341 | var uri;
|
342 | if (options == null) {
|
343 | options = {};
|
344 | }
|
345 | uri = ["derived_resources"];
|
346 | return call_api("delete", uri, {
|
347 | "derived_resource_ids[]": derived_resource_ids
|
348 | }, callback, options);
|
349 | };
|
350 |
|
351 | exports.delete_derived_by_transformation = function(public_ids, transformations, callback, options) {
|
352 | var params, resource_type, type, uri;
|
353 | if (options == null) {
|
354 | options = {};
|
355 | }
|
356 | resource_type = options["resource_type"] || "image";
|
357 | type = options["type"] || "upload";
|
358 | uri = "resources/" + resource_type + "/" + type;
|
359 | params = _.extend({
|
360 | "public_ids[]": public_ids
|
361 | }, api.only(options, "invalidate"));
|
362 | params["keep_original"] = true;
|
363 | params["transformations"] = utils.build_eager(transformations);
|
364 | return call_api("delete", uri, params, callback, options);
|
365 | };
|
366 |
|
367 | exports.tags = function(callback, options) {
|
368 | var ref, resource_type, uri;
|
369 | if (options == null) {
|
370 | options = {};
|
371 | }
|
372 | resource_type = (ref = options["resource_type"]) != null ? ref : "image";
|
373 | uri = ["tags", resource_type];
|
374 | return call_api("get", uri, api.only(options, "next_cursor", "max_results", "prefix"), callback, options);
|
375 | };
|
376 |
|
377 | exports.transformations = function(callback, options) {
|
378 | if (options == null) {
|
379 | options = {};
|
380 | }
|
381 | return call_api("get", ["transformations"], api.only(options, "next_cursor", "max_results"), callback, options);
|
382 | };
|
383 |
|
384 | exports.transformation = function(transformation, callback, options) {
|
385 | var uri;
|
386 | if (options == null) {
|
387 | options = {};
|
388 | }
|
389 | uri = ["transformations", transformation_string(transformation)];
|
390 | return call_api("get", uri, api.only(options, "next_cursor", "max_results"), callback, options);
|
391 | };
|
392 |
|
393 | exports.delete_transformation = function(transformation, callback, options) {
|
394 | var uri;
|
395 | if (options == null) {
|
396 | options = {};
|
397 | }
|
398 | uri = ["transformations", transformation_string(transformation)];
|
399 | return call_api("delete", uri, {}, callback, options);
|
400 | };
|
401 |
|
402 | exports.update_transformation = function(transformation, updates, callback, options) {
|
403 | var params, uri;
|
404 | if (options == null) {
|
405 | options = {};
|
406 | }
|
407 | uri = ["transformations", transformation_string(transformation)];
|
408 | params = api.only(updates, "allowed_for_strict");
|
409 | if (updates.unsafe_update != null) {
|
410 | params.unsafe_update = transformation_string(updates.unsafe_update);
|
411 | }
|
412 | return call_api("put", uri, params, callback, options);
|
413 | };
|
414 |
|
415 | exports.create_transformation = function(name, definition, callback, options) {
|
416 | var uri;
|
417 | if (options == null) {
|
418 | options = {};
|
419 | }
|
420 | uri = ["transformations", name];
|
421 | return call_api("post", uri, {
|
422 | transformation: transformation_string(definition)
|
423 | }, callback, options);
|
424 | };
|
425 |
|
426 | exports.upload_presets = function(callback, options) {
|
427 | if (options == null) {
|
428 | options = {};
|
429 | }
|
430 | return call_api("get", ["upload_presets"], api.only(options, "next_cursor", "max_results"), callback, options);
|
431 | };
|
432 |
|
433 | exports.upload_preset = function(name, callback, options) {
|
434 | var uri;
|
435 | if (options == null) {
|
436 | options = {};
|
437 | }
|
438 | uri = ["upload_presets", name];
|
439 | return call_api("get", uri, {}, callback, options);
|
440 | };
|
441 |
|
442 | exports.delete_upload_preset = function(name, callback, options) {
|
443 | var uri;
|
444 | if (options == null) {
|
445 | options = {};
|
446 | }
|
447 | uri = ["upload_presets", name];
|
448 | return call_api("delete", uri, {}, callback, options);
|
449 | };
|
450 |
|
451 | exports.update_upload_preset = function(name, callback, options) {
|
452 | var params, uri;
|
453 | if (options == null) {
|
454 | options = {};
|
455 | }
|
456 | uri = ["upload_presets", name];
|
457 | params = utils.merge(utils.clear_blank(utils.build_upload_params(options)), api.only(options, "unsigned", "disallow_public_id"));
|
458 | return call_api("put", uri, params, callback, options);
|
459 | };
|
460 |
|
461 | exports.create_upload_preset = function(callback, options) {
|
462 | var params, uri;
|
463 | if (options == null) {
|
464 | options = {};
|
465 | }
|
466 | uri = ["upload_presets"];
|
467 | params = utils.merge(utils.clear_blank(utils.build_upload_params(options)), api.only(options, "name", "unsigned", "disallow_public_id"));
|
468 | return call_api("post", uri, params, callback, options);
|
469 | };
|
470 |
|
471 | exports.root_folders = function(callback, options) {
|
472 | var uri;
|
473 | if (options == null) {
|
474 | options = {};
|
475 | }
|
476 | uri = ["folders"];
|
477 | return call_api("get", uri, {}, callback, options);
|
478 | };
|
479 |
|
480 | exports.sub_folders = function(path, callback, options) {
|
481 | var uri;
|
482 | if (options == null) {
|
483 | options = {};
|
484 | }
|
485 | uri = ["folders", path];
|
486 | return call_api("get", uri, {}, callback, options);
|
487 | };
|
488 |
|
489 | exports.upload_mappings = function(callback, options) {
|
490 | var params;
|
491 | if (options == null) {
|
492 | options = {};
|
493 | }
|
494 | params = api.only(options, "next_cursor", "max_results");
|
495 | return call_api("get", "upload_mappings", params, callback, options);
|
496 | };
|
497 |
|
498 | exports.upload_mapping = function(name, callback, options) {
|
499 | if (name == null) {
|
500 | name = null;
|
501 | }
|
502 | if (options == null) {
|
503 | options = {};
|
504 | }
|
505 | return call_api("get", 'upload_mappings', {
|
506 | folder: name
|
507 | }, callback, options);
|
508 | };
|
509 |
|
510 | exports.delete_upload_mapping = function(name, callback, options) {
|
511 | if (options == null) {
|
512 | options = {};
|
513 | }
|
514 | return call_api("delete", 'upload_mappings', {
|
515 | folder: name
|
516 | }, callback, options);
|
517 | };
|
518 |
|
519 | exports.update_upload_mapping = function(name, callback, options) {
|
520 | var params;
|
521 | if (options == null) {
|
522 | options = {};
|
523 | }
|
524 | params = api.only(options, "template");
|
525 | params["folder"] = name;
|
526 | return call_api("put", 'upload_mappings', params, callback, options);
|
527 | };
|
528 |
|
529 | exports.create_upload_mapping = function(name, callback, options) {
|
530 | var params;
|
531 | if (options == null) {
|
532 | options = {};
|
533 | }
|
534 | params = api.only(options, "template");
|
535 | params["folder"] = name;
|
536 | return call_api("post", 'upload_mappings', params, callback, options);
|
537 | };
|
538 |
|
539 | publishResource = function(byKey, value, callback, options) {
|
540 | var params, ref, resource_type, uri;
|
541 | if (options == null) {
|
542 | options = {};
|
543 | }
|
544 | params = api.only(options, "type", "invalidate", "overwrite");
|
545 | params[byKey] = value;
|
546 | resource_type = (ref = options.resource_type) != null ? ref : "image";
|
547 | uri = ["resources", resource_type, "publish_resources"];
|
548 | options = _.extend({
|
549 | resource_type: resource_type
|
550 | }, options);
|
551 | return call_api("post", uri, params, callback, options);
|
552 | };
|
553 |
|
554 | exports.publish_by_prefix = function(prefix, callback, options) {
|
555 | if (options == null) {
|
556 | options = {};
|
557 | }
|
558 | return publishResource("prefix", prefix, callback, options);
|
559 | };
|
560 |
|
561 | exports.publish_by_tag = function(tag, callback, options) {
|
562 | if (options == null) {
|
563 | options = {};
|
564 | }
|
565 | return publishResource("tag", tag, callback, options);
|
566 | };
|
567 |
|
568 | exports.publish_by_ids = function(public_ids, callback, options) {
|
569 | if (options == null) {
|
570 | options = {};
|
571 | }
|
572 | return publishResource("public_ids", public_ids, callback, options);
|
573 | };
|
574 |
|
575 | exports.list_streaming_profiles = function(callback, options) {
|
576 | if (options == null) {
|
577 | options = {};
|
578 | }
|
579 | return call_api("get", "streaming_profiles", {}, callback, options);
|
580 | };
|
581 |
|
582 | exports.get_streaming_profile = function(name, callback, options) {
|
583 | if (options == null) {
|
584 | options = {};
|
585 | }
|
586 | return call_api("get", "streaming_profiles/" + name, {}, callback, options);
|
587 | };
|
588 |
|
589 | exports.delete_streaming_profile = function(name, callback, options) {
|
590 | if (options == null) {
|
591 | options = {};
|
592 | }
|
593 | return call_api("delete", "streaming_profiles/" + name, {}, callback, options);
|
594 | };
|
595 |
|
596 | exports.update_streaming_profile = function(name, callback, options) {
|
597 | var params;
|
598 | if (options == null) {
|
599 | options = {};
|
600 | }
|
601 | params = utils.build_streaming_profiles_param(options);
|
602 | return call_api("put", "streaming_profiles/" + name, params, callback, options);
|
603 | };
|
604 |
|
605 | exports.create_streaming_profile = function(name, callback, options) {
|
606 | var params;
|
607 | if (options == null) {
|
608 | options = {};
|
609 | }
|
610 | params = utils.build_streaming_profiles_param(options);
|
611 | params["name"] = name;
|
612 | return call_api("post", 'streaming_profiles', params, callback, options);
|
613 | };
|
614 |
|
615 | update_resources_access_mode = function(access_mode, by_key, value, callback, options) {
|
616 | var params, ref, ref1, resource_type, type;
|
617 | if (options == null) {
|
618 | options = {};
|
619 | }
|
620 | resource_type = (ref = options.resource_type) != null ? ref : "image";
|
621 | type = (ref1 = options.type) != null ? ref1 : "upload";
|
622 | params = {
|
623 | access_mode: access_mode
|
624 | };
|
625 | params[by_key] = value;
|
626 | return call_api("post", "resources/" + resource_type + "/" + type + "/update_access_mode", params, callback, options);
|
627 | };
|
628 |
|
629 | exports.search = function(params, callback, options) {
|
630 | if (options == null) {
|
631 | options = {};
|
632 | }
|
633 | options['content_type'] = 'json';
|
634 | return call_api("post", "resources/search", params, callback, options);
|
635 | };
|
636 |
|
637 | exports.update_resources_access_mode_by_prefix = function(access_mode, prefix, callback, options) {
|
638 | if (options == null) {
|
639 | options = {};
|
640 | }
|
641 | return update_resources_access_mode(access_mode, "prefix", prefix, callback, options);
|
642 | };
|
643 |
|
644 | exports.update_resources_access_mode_by_tag = function(access_mode, tag, callback, options) {
|
645 | if (options == null) {
|
646 | options = {};
|
647 | }
|
648 | return update_resources_access_mode(access_mode, "tag", tag, callback, options);
|
649 | };
|
650 |
|
651 | exports.update_resources_access_mode_by_ids = function(access_mode, ids, callback, options) {
|
652 | if (options == null) {
|
653 | options = {};
|
654 | }
|
655 | return update_resources_access_mode(access_mode, "public_ids[]", ids, callback, options);
|
656 | };
|
657 |
|
658 | exports.only = function() {
|
659 | var hash, i, key, keys, len, result;
|
660 | hash = arguments[0], keys = 2 <= arguments.length ? slice.call(arguments, 1) : [];
|
661 | result = {};
|
662 | for (i = 0, len = keys.length; i < len; i++) {
|
663 | key = keys[i];
|
664 | if (hash[key] != null) {
|
665 | result[key] = hash[key];
|
666 | }
|
667 | }
|
668 | return result;
|
669 | };
|
670 |
|
671 | }).call(this);
|
672 |
|
673 |
|