boxr 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 804fcf24570dddff649843b11c9e42d212c6473f5362054dc680cf7bb7fa69eb
4
- data.tar.gz: '048b0abbaf9dbb41b5a77a841aacf60fe1d4f50a2688adae1fe15d31a8efd501'
3
+ metadata.gz: f1c90479b5424ad7460328707aa758fa10738a99db0e76ab2186625ad64e53d5
4
+ data.tar.gz: 0b961dc8b412f39ea89f1de347b7dd3cce1aac242a7d44087942c60aa8b73f48
5
5
  SHA512:
6
- metadata.gz: e499df5a49123809dce5515073ac842ec9bfe8e177e4c8b84707c73510da1b3e5c316041bfb95301b5f348f5e8a3ff2ac9597417cc536258eb5ff03326b9e5da
7
- data.tar.gz: 61f0fb85cab6cd81029d8e8eabea8b727fafd9eca73126fde3bddf139953806040a2f3c6797d652a70cc69bc9f59166d93ef922a9bc5ee3fc645fd3248204c99
6
+ metadata.gz: ca107dd177c1b7c4acc6e55967a4d218e75e59290558d875c1a34e78023f92ca07581acd9c573840644152dae4c0f554e11b926023bc2c530900f235d122d72a
7
+ data.tar.gz: a18e866940e903c941a2a0169acf59ea38a2038701afdd0874bf985b47f956d946c7f465ae3ad1b32bdef0be72676a76c51d88b6bbe37555ad9f5571912194be
@@ -25,11 +25,11 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "rspec", "~> 3.1"
26
26
  spec.add_development_dependency "simplecov", "~> 0.9"
27
27
  spec.add_development_dependency "dotenv", "~> 0.11"
28
- spec.add_development_dependency "awesome_print"
28
+ spec.add_development_dependency "awesome_print", "~> 1.8"
29
29
  spec.add_development_dependency "lru_redux", "~> 0.8"
30
30
 
31
31
  spec.add_runtime_dependency "httpclient", "~> 2.8"
32
32
  spec.add_runtime_dependency "hashie", "~> 3.5"
33
33
  spec.add_runtime_dependency "addressable", "~> 2.3"
34
- spec.add_runtime_dependency "jwt", "~> 1.4"
34
+ spec.add_runtime_dependency "jwt", ">= 1.4"
35
35
  end
@@ -4,7 +4,7 @@ module Boxr
4
4
  def current_user(fields: [])
5
5
  uri = "#{USERS_URI}/me"
6
6
  query = build_fields_query(fields, USER_FIELDS_QUERY)
7
-
7
+
8
8
  user, response = get(uri, query: query)
9
9
  user
10
10
  end
@@ -14,7 +14,7 @@ module Boxr
14
14
  user_id = ensure_id(user_id)
15
15
  uri = "#{USERS_URI}/#{user_id}"
16
16
  query = build_fields_query(fields, USER_FIELDS_QUERY)
17
-
17
+
18
18
  user, response = get(uri, query: query)
19
19
  user
20
20
  end
@@ -30,7 +30,7 @@ module Boxr
30
30
  else
31
31
  query[:offset] = offset
32
32
  query[:limit] = limit
33
-
33
+
34
34
  users, response = get(uri, query: query)
35
35
  users['entries']
36
36
  end
@@ -49,7 +49,7 @@ module Boxr
49
49
  attributes[:language] = language unless language.nil?
50
50
  attributes[:is_sync_enabled] = is_sync_enabled unless is_sync_enabled.nil?
51
51
  attributes[:job_title] = job_title unless job_title.nil?
52
- attributes[:phone] = phone unless phone.nil?
52
+ attributes[:phone] = phone unless phone.nil?
53
53
  attributes[:address] = address unless address.nil?
54
54
  attributes[:space_amount] = space_amount unless space_amount.nil?
55
55
  attributes[:tracking_codes] = tracking_codes unless tracking_codes.nil?
@@ -57,7 +57,7 @@ module Boxr
57
57
  attributes[:is_external_collab_restricted] = is_external_collab_restricted unless is_external_collab_restricted.nil?
58
58
  attributes[:status] = status unless status.nil?
59
59
  attributes[:timezone] = timezone unless timezone.nil?
60
- attributes[:is_exempt_from_device_limits] = is_exempt_from_device_limits unless is_exempt_from_device_limits.nil?
60
+ attributes[:is_exempt_from_device_limits] = is_exempt_from_device_limits unless is_exempt_from_device_limits.nil?
61
61
  attributes[:is_exempt_from_login_verification] = is_exempt_from_login_verification unless is_exempt_from_login_verification.nil?
62
62
  attributes[:is_platform_access_only] = is_platform_access_only unless is_platform_access_only.nil?
63
63
 
@@ -73,9 +73,9 @@ module Boxr
73
73
  user_id = ensure_id(user)
74
74
  uri = "#{USERS_URI}/#{user_id}"
75
75
  query = {notify: notify} unless notify.nil?
76
-
76
+
77
77
  attributes = {}
78
- attributes[:enterprise] = nil if enterprise.nil? #this is a special condition where setting this to nil means to roll this user out of the enterprise
78
+ attributes[:enterprise] = nil if enterprise.nil? #this is a special condition where setting this to nil means to roll this user out of the enterprise
79
79
  attributes[:name] = name unless name.nil?
80
80
  attributes[:role] = role unless role.nil?
81
81
  attributes[:language] = language unless language.nil?
@@ -108,6 +108,18 @@ module Boxr
108
108
  result
109
109
  end
110
110
 
111
+ # As of writing, API only supports a root source folder (0)
112
+ def move_users_folder(user, source_folder = 0, destination_user)
113
+ user_id = ensure_id(user)
114
+ destination_user_id = ensure_id(destination_user)
115
+ source_folder_id = ensure_id(source_folder)
116
+ uri = "#{USERS_URI}/#{user_id}/folders/#{source_folder_id}"
117
+ attributes = {owned_by: {id: destination_user_id}}
118
+
119
+ folder, response = put(uri, attributes)
120
+ folder
121
+ end
122
+
111
123
  def email_aliases_for_user(user)
112
124
  user_id = ensure_id(user)
113
125
  uri = "#{USERS_URI}/#{user_id}/email_aliases"
@@ -135,4 +147,4 @@ module Boxr
135
147
  end
136
148
 
137
149
  end
138
- end
150
+ end
@@ -1,3 +1,3 @@
1
1
  module Boxr
2
- VERSION = "1.6.0"
2
+ VERSION = "1.7.0"
3
3
  end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ #rake spec SPEC_OPTS="-e \"invokes collaborations operations"\"
4
+ describe 'collaborations operations' do
5
+ it "invokes collaborations operations" do
6
+ puts "add collaboration"
7
+ collaboration = BOX_CLIENT.add_collaboration(@test_folder, {id: @test_user.id, type: :user}, :viewer_uploader)
8
+ expect(collaboration.accessible_by.id).to eq(@test_user.id)
9
+ COLLABORATION = collaboration
10
+
11
+ puts "inspect collaboration"
12
+ collaboration = BOX_CLIENT.collaboration(COLLABORATION)
13
+ expect(collaboration.id).to eq(COLLABORATION.id)
14
+
15
+ puts "edit collaboration"
16
+ collaboration = BOX_CLIENT.edit_collaboration(COLLABORATION, role: "viewer uploader")
17
+ expect(collaboration.role).to eq("viewer uploader")
18
+
19
+ puts "inspect folder collaborations"
20
+ collaborations = BOX_CLIENT.folder_collaborations(@test_folder)
21
+ expect(collaborations.count).to eq(1)
22
+ expect(collaborations[0].id).to eq(COLLABORATION.id)
23
+
24
+ puts "remove collaboration"
25
+ result = BOX_CLIENT.remove_collaboration(COLLABORATION)
26
+ expect(result).to eq({})
27
+ collaborations = BOX_CLIENT.folder_collaborations(@test_folder)
28
+ expect(collaborations.count).to eq(0)
29
+
30
+ puts "inspect pending collaborations"
31
+ pending_collaborations = BOX_CLIENT.pending_collaborations
32
+ expect(pending_collaborations).to eq([])
33
+
34
+ puts "add invalid collaboration"
35
+ expect { BOX_CLIENT.add_collaboration(@test_folder, {id: @test_user.id, type: :user}, :invalid_role)}.to raise_error
36
+ end
37
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ #rake spec SPEC_OPTS="-e \"invokes comment operations"\"
4
+ describe 'comment operations' do
5
+ it "invokes comment operations" do
6
+ new_file = BOX_CLIENT.upload_file("./spec/test_files/#{TEST_FILE_NAME}", @test_folder)
7
+ test_file = new_file
8
+
9
+ puts "add comment to file"
10
+ comment = BOX_CLIENT.add_comment_to_file(test_file, message: COMMENT_MESSAGE)
11
+ expect(comment.message).to eq(COMMENT_MESSAGE)
12
+ COMMENT = comment
13
+
14
+ puts "reply to comment"
15
+ reply = BOX_CLIENT.reply_to_comment(COMMENT, message: REPLY_MESSAGE)
16
+ expect(reply.message).to eq(REPLY_MESSAGE)
17
+
18
+ puts "get file comments"
19
+ comments = BOX_CLIENT.file_comments(test_file)
20
+ expect(comments.count).to eq(2)
21
+
22
+ puts "update a comment"
23
+ comment = BOX_CLIENT.change_comment(COMMENT, CHANGED_COMMENT_MESSAGE)
24
+ expect(comment.message).to eq(CHANGED_COMMENT_MESSAGE)
25
+
26
+ puts "get comment info"
27
+ comment = BOX_CLIENT.comment(COMMENT)
28
+ expect(comment.id).to eq(COMMENT.id)
29
+
30
+ puts "delete comment"
31
+ result = BOX_CLIENT.delete_comment(COMMENT)
32
+ expect(result).to eq({})
33
+ end
34
+ end
@@ -0,0 +1,123 @@
1
+ require 'spec_helper'
2
+
3
+ #rake spec SPEC_OPTS="-e \"invokes file operations"\"
4
+ describe "file operations" do
5
+ it "invokes file operations" do
6
+ puts "upload a file"
7
+ new_file = BOX_CLIENT.upload_file("./spec/test_files/#{TEST_FILE_NAME}", @test_folder)
8
+ expect(new_file.name).to eq(TEST_FILE_NAME)
9
+ test_file = new_file
10
+
11
+ puts "upload a file with custom name"
12
+ new_file = BOX_CLIENT.upload_file("./spec/test_files/#{TEST_FILE_NAME}", @test_folder, name: TEST_FILE_NAME_CUSTOM)
13
+ expect(new_file.name).to eq(TEST_FILE_NAME_CUSTOM)
14
+
15
+ puts "get file using path"
16
+ file = BOX_CLIENT.file_from_path("/#{TEST_FOLDER_NAME}/#{TEST_FILE_NAME}")
17
+ expect(file.id).to eq(test_file.id)
18
+
19
+ puts "get file download url"
20
+ download_url = BOX_CLIENT.download_url(test_file)
21
+ expect(download_url).to start_with("https://")
22
+
23
+ puts "get file info"
24
+ file_info = BOX_CLIENT.file(test_file)
25
+ expect(file_info.id).to eq(test_file.id)
26
+
27
+ puts "get file preview link"
28
+ preview_url = BOX_CLIENT.preview_url(test_file)
29
+ expect(preview_url).to start_with("https://")
30
+
31
+ puts "update file"
32
+ new_description = 'this file is used to test Boxr'
33
+ tags = ['tag one','tag two']
34
+ updated_file_info = BOX_CLIENT.update_file(test_file, description: new_description, tags: tags)
35
+ expect(updated_file_info.description).to eq(new_description)
36
+ tag_file_info = BOX_CLIENT.file(updated_file_info, fields: [:tags])
37
+ expect(tag_file_info.tags.length).to eq(2)
38
+
39
+ puts "lock file"
40
+ expires_at_utc = Time.now.utc + (60*60*24) #one day from now
41
+ locked_file = BOX_CLIENT.lock_file(test_file, expires_at: expires_at_utc, is_download_prevented: true)
42
+ locked_file = BOX_CLIENT.file(locked_file, fields: [:lock])
43
+ expect(locked_file.lock.type).to eq('lock')
44
+ expect(locked_file.lock.expires_at).to_not be_nil
45
+ expect(locked_file.lock.is_download_prevented).to eq(true)
46
+
47
+ puts "unlock file"
48
+ unlocked_file = BOX_CLIENT.unlock_file(locked_file)
49
+ unlocked_file = BOX_CLIENT.file(unlocked_file, fields: [:lock])
50
+ expect(unlocked_file.lock).to be_nil
51
+
52
+ puts "download file"
53
+ file = BOX_CLIENT.download_file(test_file)
54
+ f = File.open("./spec/test_files/#{DOWNLOADED_TEST_FILE_NAME}", 'w+')
55
+ f.write(file)
56
+ f.close
57
+ expect(FileUtils.identical?("./spec/test_files/#{TEST_FILE_NAME}","./spec/test_files/#{DOWNLOADED_TEST_FILE_NAME}")).to eq(true)
58
+ File.delete("./spec/test_files/#{DOWNLOADED_TEST_FILE_NAME}")
59
+
60
+ puts "upload new version of file"
61
+ new_version = BOX_CLIENT.upload_new_version_of_file("./spec/test_files/#{TEST_FILE_NAME}", test_file)
62
+ expect(new_version.id).to eq(test_file.id)
63
+
64
+ puts "inspect versions of file"
65
+ versions = BOX_CLIENT.versions_of_file(test_file)
66
+ expect(versions.count).to eq(1) #the reason this is 1 instead of 2 is that Box considers 'versions' to be a versions other than 'current'
67
+ v1 = versions.first
68
+
69
+ puts "promote old version of file"
70
+ newer_version = BOX_CLIENT.promote_old_version_of_file(test_file, v1)
71
+ versions = BOX_CLIENT.versions_of_file(test_file)
72
+ expect(versions.count).to eq(2)
73
+
74
+ puts "delete old version of file"
75
+ result = BOX_CLIENT.delete_old_version_of_file(test_file,v1)
76
+ versions = BOX_CLIENT.versions_of_file(test_file)
77
+ expect(versions.count).to eq(2) #this is still 2 because with Box you can restore a trashed old version
78
+
79
+ puts "get file thumbnail"
80
+ thumb = BOX_CLIENT.thumbnail(test_file)
81
+ expect(thumb).not_to be_nil
82
+
83
+ puts "create shared link for file"
84
+ updated_file = BOX_CLIENT.create_shared_link_for_file(test_file, access: :open)
85
+ expect(updated_file.shared_link.access).to eq("open")
86
+
87
+ puts "create password-protected shared link for file"
88
+ updated_file = BOX_CLIENT.create_shared_link_for_file(test_file, password: 'password')
89
+ expect(updated_file.shared_link.is_password_enabled).to eq(true)
90
+
91
+ puts "disable shared link for file"
92
+ updated_file = BOX_CLIENT.disable_shared_link_for_file(test_file)
93
+ expect(updated_file.shared_link).to be_nil
94
+
95
+ puts "copy file"
96
+ new_file_name = "copy of #{TEST_FILE_NAME}"
97
+ new_file = BOX_CLIENT.copy_file(test_file, @test_folder, name: new_file_name)
98
+ expect(new_file.name).to eq(new_file_name)
99
+ NEW_FILE = new_file
100
+
101
+ puts "move file"
102
+ new_folder = BOX_CLIENT.create_folder(SUB_FOLDER_NAME, @test_folder)
103
+ test_file = BOX_CLIENT.move_file(test_file, new_folder.id)
104
+ expect(test_file.parent.id).to eq(new_folder.id)
105
+
106
+ puts "delete file"
107
+ result = BOX_CLIENT.delete_file(NEW_FILE)
108
+ expect(result).to eq({})
109
+
110
+ puts "get trashed file info"
111
+ trashed_file = BOX_CLIENT.trashed_file(NEW_FILE)
112
+ expect(trashed_file.item_status).to eq("trashed")
113
+
114
+ puts "restore trashed file"
115
+ restored_file = BOX_CLIENT.restore_trashed_file(NEW_FILE)
116
+ expect(restored_file.item_status).to eq("active")
117
+
118
+ puts "trash and permanently delete file"
119
+ BOX_CLIENT.delete_file(NEW_FILE)
120
+ result = BOX_CLIENT.delete_trashed_file(NEW_FILE)
121
+ expect(result).to eq({})
122
+ end
123
+ end
@@ -0,0 +1,72 @@
1
+ require 'spec_helper'
2
+
3
+ # rake spec SPEC_OPTS="-e \"invokes folder operations"\"
4
+ describe "folder operations" do
5
+ it 'invokes folder operations' do
6
+ puts "get folder using path"
7
+ folder = BOX_CLIENT.folder_from_path(TEST_FOLDER_NAME)
8
+ expect(folder.id).to eq(@test_folder.id)
9
+
10
+ puts "get folder info"
11
+ folder = BOX_CLIENT.folder(@test_folder)
12
+ expect(folder.id).to eq(@test_folder.id)
13
+
14
+ puts "create new folder"
15
+ new_folder = BOX_CLIENT.create_folder(SUB_FOLDER_NAME, @test_folder)
16
+ expect(new_folder).to be_a BoxrMash
17
+ SUB_FOLDER = new_folder
18
+
19
+ puts "update folder"
20
+ updated_folder = BOX_CLIENT.update_folder(SUB_FOLDER, description: SUB_FOLDER_DESCRIPTION)
21
+ expect(updated_folder.description).to eq(SUB_FOLDER_DESCRIPTION)
22
+
23
+ puts "copy folder"
24
+ new_folder = BOX_CLIENT.copy_folder(SUB_FOLDER,@test_folder, name: "copy of #{SUB_FOLDER_NAME}")
25
+ expect(new_folder).to be_a BoxrMash
26
+ SUB_FOLDER_COPY = new_folder
27
+
28
+ puts "create shared link for folder"
29
+ updated_folder = BOX_CLIENT.create_shared_link_for_folder(@test_folder, access: :open)
30
+ expect(updated_folder.shared_link.access).to eq("open")
31
+
32
+ puts "create password-protected shared link for folder"
33
+ updated_folder = BOX_CLIENT.create_shared_link_for_folder(@test_folder, password: 'password')
34
+ expect(updated_folder.shared_link.is_password_enabled).to eq(true)
35
+ shared_link = updated_folder.shared_link.url
36
+
37
+ puts "inspect shared link"
38
+ shared_item = BOX_CLIENT.shared_item(shared_link)
39
+ expect(shared_item.id).to eq(@test_folder.id)
40
+
41
+ puts "disable shared link for folder"
42
+ updated_folder = BOX_CLIENT.disable_shared_link_for_folder(@test_folder)
43
+ expect(updated_folder.shared_link).to be_nil
44
+
45
+ puts "move folder"
46
+ folder_to_move = BOX_CLIENT.create_folder("Folder to move", @test_folder)
47
+ folder_to_move_into = BOX_CLIENT.create_folder("Folder to move into", @test_folder)
48
+ folder_to_move = BOX_CLIENT.move_folder(folder_to_move, folder_to_move_into)
49
+ expect(folder_to_move.parent.id).to eq(folder_to_move_into.id)
50
+
51
+ puts "delete folder"
52
+ result = BOX_CLIENT.delete_folder(SUB_FOLDER_COPY, recursive: true)
53
+ expect(result).to eq ({})
54
+
55
+ puts "inspect the trash"
56
+ trash = BOX_CLIENT.trash()
57
+ expect(trash).to be_a Array
58
+
59
+ puts "inspect trashed folder"
60
+ trashed_folder = BOX_CLIENT.trashed_folder(SUB_FOLDER_COPY)
61
+ expect(trashed_folder.item_status).to eq("trashed")
62
+
63
+ puts "restore trashed folder"
64
+ restored_folder = BOX_CLIENT.restore_trashed_folder(SUB_FOLDER_COPY)
65
+ expect(restored_folder.item_status).to eq("active")
66
+
67
+ puts "trash and permanently delete folder"
68
+ BOX_CLIENT.delete_folder(SUB_FOLDER_COPY, recursive: true)
69
+ result = BOX_CLIENT.delete_trashed_folder(SUB_FOLDER_COPY)
70
+ expect(result).to eq({})
71
+ end
72
+ end
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ #rake spec SPEC_OPTS="-e \"invokes group operations"\"
4
+ describe 'group operations' do
5
+ it "invokes group operations" do
6
+ puts "create group"
7
+ group = BOX_CLIENT.create_group(TEST_GROUP_NAME)
8
+ expect(group.name).to eq(TEST_GROUP_NAME)
9
+
10
+ puts "inspect groups"
11
+ groups = BOX_CLIENT.groups
12
+ test_group = groups.find{|g| g.name == TEST_GROUP_NAME}
13
+ expect(test_group).to_not be_nil
14
+
15
+ puts "update group"
16
+ new_name = "Test Boxr Group Renamed"
17
+ group = BOX_CLIENT.update_group(test_group, new_name)
18
+ expect(group.name).to eq(new_name)
19
+ group = BOX_CLIENT.rename_group(test_group,TEST_GROUP_NAME)
20
+ expect(group.name).to eq(TEST_GROUP_NAME)
21
+
22
+ puts "add user to group"
23
+ group_membership = BOX_CLIENT.add_user_to_group(@test_user, test_group)
24
+ expect(group_membership.user.id).to eq(@test_user.id)
25
+ expect(group_membership.group.id).to eq(test_group.id)
26
+ membership = group_membership
27
+
28
+ puts "inspect group membership"
29
+ group_membership = BOX_CLIENT.group_membership(membership)
30
+ expect(group_membership.id).to eq(membership.id)
31
+
32
+ puts "inspect group memberships"
33
+ group_memberships = BOX_CLIENT.group_memberships(test_group)
34
+ expect(group_memberships.count).to eq(1)
35
+ expect(group_memberships.first.id).to eq(membership.id)
36
+
37
+ puts "inspect group memberships for a user"
38
+ group_memberships = BOX_CLIENT.group_memberships_for_user(@test_user)
39
+ expect(group_memberships.count).to eq(1)
40
+ expect(group_memberships.first.id).to eq(membership.id)
41
+
42
+ puts "inspect group memberships for me"
43
+ #this is whatever user your developer token is tied to
44
+ group_memberships = BOX_CLIENT.group_memberships_for_me
45
+ expect(group_memberships).to be_a(Array)
46
+
47
+ puts "update group membership"
48
+ group_membership = BOX_CLIENT.update_group_membership(membership, :admin)
49
+ expect(group_membership.role).to eq("admin")
50
+
51
+ puts "delete group membership"
52
+ result = BOX_CLIENT.delete_group_membership(membership)
53
+ expect(result).to eq({})
54
+ group_memberships = BOX_CLIENT.group_memberships_for_user(@test_user)
55
+ expect(group_memberships.count).to eq(0)
56
+
57
+ puts "inspect group collaborations"
58
+ group_collaboration = BOX_CLIENT.add_collaboration(@test_folder, {id: test_group.id, type: :group}, :editor)
59
+ expect(group_collaboration.accessible_by.id).to eq(test_group.id)
60
+
61
+ puts "delete group"
62
+ response = BOX_CLIENT.delete_group(test_group)
63
+ expect(response).to eq({})
64
+ end
65
+ end