Skip to content

Commit 140bcfc

Browse files
author
Amir Tocker
committed
Add access mode API
1 parent c290aa1 commit 140bcfc

File tree

10 files changed

+107
-7
lines changed

10 files changed

+107
-7
lines changed

lib/api.js

Lines changed: 36 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/api.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/utils.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/utils.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/v2/api.js

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/v2/api.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/api.coffee

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,25 @@ exports.create_streaming_profile = (name, callback, options = {})->
284284
params["name"] = name
285285
call_api("post", 'streaming_profiles', params, callback, options)
286286

287+
update_resources_access_mode = (access_mode, by_key, value, callback, options = {})->
288+
resource_type = options.resource_type ? "image"
289+
type = options.type ? "upload"
290+
params = { access_mode: access_mode}
291+
# by_key = by_key == 'ids' ? 'ids[]' : by_key
292+
params[by_key] = value
293+
call_api("post", "resources/#{resource_type}/#{type}/update_access_mode", params, callback, options)
294+
295+
exports.update_resources_access_mode_by_prefix = (access_mode, prefix, callback, options = {})->
296+
update_resources_access_mode(access_mode, "prefix", prefix, callback, options)
297+
298+
exports.update_resources_access_mode_by_tag = (access_mode, tag, callback, options = {})->
299+
update_resources_access_mode(access_mode, "tag", tag, callback, options)
300+
301+
exports.update_resources_access_mode_by_ids = (access_mode, ids, callback, options = {})->
302+
update_resources_access_mode(access_mode, "public_ids[]", ids, callback, options)
303+
304+
305+
287306
exports.only = (hash, keys...) ->
288307
result = {}
289308
for key in keys

src/utils.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ process_layer = (layer)->
130130

131131
exports.build_upload_params = (options) ->
132132
params =
133+
access_mode: options.access_mode
133134
allowed_formats: options.allowed_formats && utils.build_array(options.allowed_formats).join(",")
134135
backup: utils.as_safe_bool(options.backup)
135136
callback: options.callback

src/v2/api.coffee

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,7 @@ utils.v1_adapters exports, api,
4343
create_streaming_profile: 1,
4444
publish_by_ids: 1,
4545
publish_by_tag: 1,
46-
publish_by_prefix: 1
46+
publish_by_prefix: 1,
47+
update_resources_access_mode_by_prefix: 2,
48+
update_resources_access_mode_by_tag: 2,
49+
update_resources_access_mode_by_ids: 2

test/api_spec.coffee

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,4 +758,42 @@ describe "api", ->
758758
expect(published[0].public_id).to.eql(publishTestId)
759759
expect(published[0].url).to.match(/\/upload\//)
760760
done()
761-
761+
describe "access_mode", ->
762+
i = 0
763+
@timeout helper.TIMEOUT_LONG
764+
publicId = ""
765+
access_mode_tag = ''
766+
beforeEach (done)->
767+
access_mode_tag = TEST_TAG + "access_mode" + i++
768+
cloudinary.v2.uploader.upload IMAGE_FILE, access_mode: "authenticated", tags: [TEST_TAG, access_mode_tag], (error, result)->
769+
return done(new Error error.message) if error?
770+
publicId = result.public_id
771+
expect(result.access_mode).to.be("authenticated")
772+
done()
773+
it "should update access mode by ids", (done)->
774+
cloudinary.v2.api.update_resources_access_mode_by_ids "public", [publicId], (error, result)->
775+
return done(new Error error.message) if error?
776+
expect(result.updated).to.be.an('array')
777+
expect(result.updated.length).to.be(1)
778+
resource = result.updated[0]
779+
expect(resource.public_id).to.be(publicId)
780+
expect(resource.access_mode).to.be('public')
781+
done()
782+
it "should update access mode by prefix", (done)->
783+
cloudinary.v2.api.update_resources_access_mode_by_prefix "public", publicId[0..-3], (error, result)->
784+
return done(new Error error.message) if error?
785+
expect(result.updated).to.be.an('array')
786+
expect(result.updated.length).to.be(1)
787+
resource = result.updated[0]
788+
expect(resource.public_id).to.be(publicId)
789+
expect(resource.access_mode).to.be('public')
790+
done()
791+
it "should update access mode by tag", (done)->
792+
cloudinary.v2.api.update_resources_access_mode_by_tag "public", access_mode_tag, (error, result)->
793+
return done(new Error error.message) if error?
794+
expect(result.updated).to.be.an('array')
795+
expect(result.updated.length).to.be(1)
796+
resource = result.updated[0]
797+
expect(resource.public_id).to.be(publicId)
798+
expect(resource.access_mode).to.be('public')
799+
done()

0 commit comments

Comments
 (0)