ruby-lokalise-api 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -2
- data/README.md +172 -10
- data/lib/ruby-lokalise-api.rb +2 -0
- data/lib/ruby-lokalise-api/client.rb +18 -0
- data/lib/ruby-lokalise-api/collections/base.rb +11 -10
- data/lib/ruby-lokalise-api/collections/contributor.rb +1 -3
- data/lib/ruby-lokalise-api/collections/file.rb +1 -3
- data/lib/ruby-lokalise-api/collections/key.rb +8 -3
- data/lib/ruby-lokalise-api/collections/key_comment.rb +2 -3
- data/lib/ruby-lokalise-api/collections/project.rb +1 -3
- data/lib/ruby-lokalise-api/collections/project_comment.rb +1 -3
- data/lib/ruby-lokalise-api/collections/project_language.rb +1 -3
- data/lib/ruby-lokalise-api/collections/screenshot.rb +1 -3
- data/lib/ruby-lokalise-api/collections/snapshot.rb +1 -3
- data/lib/ruby-lokalise-api/collections/system_language.rb +1 -3
- data/lib/ruby-lokalise-api/collections/task.rb +1 -3
- data/lib/ruby-lokalise-api/collections/team.rb +1 -3
- data/lib/ruby-lokalise-api/collections/team_user.rb +1 -3
- data/lib/ruby-lokalise-api/collections/translation.rb +1 -3
- data/lib/ruby-lokalise-api/error.rb +2 -0
- data/lib/ruby-lokalise-api/request.rb +11 -3
- data/lib/ruby-lokalise-api/resources/base.rb +51 -41
- data/lib/ruby-lokalise-api/resources/contributor.rb +6 -4
- data/lib/ruby-lokalise-api/resources/file.rb +7 -12
- data/lib/ruby-lokalise-api/resources/key.rb +5 -4
- data/lib/ruby-lokalise-api/resources/key_comment.rb +6 -4
- data/lib/ruby-lokalise-api/resources/project.rb +10 -7
- data/lib/ruby-lokalise-api/resources/project_language.rb +5 -4
- data/lib/ruby-lokalise-api/resources/screenshot.rb +5 -4
- data/lib/ruby-lokalise-api/resources/snapshot.rb +10 -5
- data/lib/ruby-lokalise-api/resources/task.rb +5 -4
- data/lib/ruby-lokalise-api/resources/team_user.rb +6 -4
- data/lib/ruby-lokalise-api/resources/translation.rb +5 -4
- data/lib/ruby-lokalise-api/rest/comments.rb +6 -6
- data/lib/ruby-lokalise-api/rest/contributors.rb +6 -6
- data/lib/ruby-lokalise-api/rest/files.rb +3 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +9 -9
- data/lib/ruby-lokalise-api/rest/languages.rb +7 -7
- data/lib/ruby-lokalise-api/rest/projects.rb +7 -7
- data/lib/ruby-lokalise-api/rest/screenshots.rb +6 -6
- data/lib/ruby-lokalise-api/rest/snapshots.rb +5 -5
- data/lib/ruby-lokalise-api/rest/tasks.rb +6 -6
- data/lib/ruby-lokalise-api/rest/team_users.rb +5 -5
- data/lib/ruby-lokalise-api/rest/teams.rb +1 -1
- data/lib/ruby-lokalise-api/rest/translations.rb +3 -3
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +19 -5
- data/lib/ruby-lokalise-api/utils/endpoint_helpers.rb +12 -0
- data/lib/ruby-lokalise-api/utils/string_utils.rb +4 -0
- data/lib/ruby-lokalise-api/version.rb +1 -1
- data/ruby-lokalise-api.gemspec +1 -0
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +22 -5
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +35 -2
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +55 -4
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +31 -2
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +36 -2
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +45 -8
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +25 -2
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +38 -2
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +25 -2
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +17 -3
- metadata +17 -2
@@ -7,7 +7,7 @@ module Lokalise
|
|
7
7
|
# @param project_id [String]
|
8
8
|
# @param params [Hash]
|
9
9
|
def screenshots(project_id, params = {})
|
10
|
-
Lokalise::Collections::Screenshot
|
10
|
+
c_r Lokalise::Collections::Screenshot, :all, project_id, params
|
11
11
|
end
|
12
12
|
|
13
13
|
# Returns a single screenshot for the given project
|
@@ -17,7 +17,7 @@ module Lokalise
|
|
17
17
|
# @param project_id [String]
|
18
18
|
# @param screenshot_id [String, Integer]
|
19
19
|
def screenshot(project_id, screenshot_id)
|
20
|
-
Lokalise::Resources::Screenshot
|
20
|
+
c_r Lokalise::Resources::Screenshot, :find, [project_id, screenshot_id]
|
21
21
|
end
|
22
22
|
|
23
23
|
# Creates one or more screenshots for the given project
|
@@ -27,7 +27,7 @@ module Lokalise
|
|
27
27
|
# @param project_id [String]
|
28
28
|
# @param params [Hash]
|
29
29
|
def create_screenshots(project_id, params = {})
|
30
|
-
Lokalise::Resources::Screenshot
|
30
|
+
c_r Lokalise::Resources::Screenshot, :create, project_id, params, :screenshots
|
31
31
|
end
|
32
32
|
|
33
33
|
# Updates screenshot
|
@@ -38,7 +38,7 @@ module Lokalise
|
|
38
38
|
# @param screenshot_id [String, Integer]
|
39
39
|
# @param params [Hash]
|
40
40
|
def update_screenshot(project_id, screenshot_id, params = {})
|
41
|
-
Lokalise::Resources::Screenshot
|
41
|
+
c_r Lokalise::Resources::Screenshot, :update, [project_id, screenshot_id], params
|
42
42
|
end
|
43
43
|
|
44
44
|
# Deletes screenshot
|
@@ -47,8 +47,8 @@ module Lokalise
|
|
47
47
|
# @return [Hash]
|
48
48
|
# @param project_id [String]
|
49
49
|
# @param screenshot_id [String, Integer]
|
50
|
-
def
|
51
|
-
Lokalise::Resources::Screenshot
|
50
|
+
def destroy_screenshot(project_id, screenshot_id)
|
51
|
+
c_r Lokalise::Resources::Screenshot, :destroy, [project_id, screenshot_id]
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
@@ -7,7 +7,7 @@ module Lokalise
|
|
7
7
|
# @param project_id [String]
|
8
8
|
# @param params [Hash]
|
9
9
|
def snapshots(project_id, params = {})
|
10
|
-
Lokalise::Collections::Snapshot
|
10
|
+
c_r Lokalise::Collections::Snapshot, :all, project_id, params
|
11
11
|
end
|
12
12
|
|
13
13
|
# Creates snapshot for the given project
|
@@ -17,7 +17,7 @@ module Lokalise
|
|
17
17
|
# @param project_id [String]
|
18
18
|
# @param params [Hash]
|
19
19
|
def create_snapshot(project_id, params = {})
|
20
|
-
Lokalise::Resources::Snapshot
|
20
|
+
c_r Lokalise::Resources::Snapshot, :create, project_id, params
|
21
21
|
end
|
22
22
|
|
23
23
|
# Restore project from the given snapshot by producing project's copy
|
@@ -27,7 +27,7 @@ module Lokalise
|
|
27
27
|
# @param project_id [String]
|
28
28
|
# @param snapshot_id [String, Integer]
|
29
29
|
def restore_snapshot(project_id, snapshot_id)
|
30
|
-
Lokalise::Resources::Snapshot
|
30
|
+
c_r Lokalise::Resources::Snapshot, :restore, [project_id, snapshot_id]
|
31
31
|
end
|
32
32
|
|
33
33
|
# Deletes snapshot
|
@@ -36,8 +36,8 @@ module Lokalise
|
|
36
36
|
# @return [Hash]
|
37
37
|
# @param project_id [String]
|
38
38
|
# @param snapshot_id [String, Integer]
|
39
|
-
def
|
40
|
-
Lokalise::Resources::Snapshot
|
39
|
+
def destroy_snapshot(project_id, snapshot_id)
|
40
|
+
c_r Lokalise::Resources::Snapshot, :destroy, [project_id, snapshot_id]
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -7,7 +7,7 @@ module Lokalise
|
|
7
7
|
# @param project_id [String]
|
8
8
|
# @param params [Hash]
|
9
9
|
def tasks(project_id, params = {})
|
10
|
-
Lokalise::Collections::Task
|
10
|
+
c_r Lokalise::Collections::Task, :all, project_id, params
|
11
11
|
end
|
12
12
|
|
13
13
|
# Returns a single task for the given project
|
@@ -17,7 +17,7 @@ module Lokalise
|
|
17
17
|
# @param project_id [String]
|
18
18
|
# @param task_id [String, Integer]
|
19
19
|
def task(project_id, task_id)
|
20
|
-
Lokalise::Resources::Task
|
20
|
+
c_r Lokalise::Resources::Task, :find, [project_id, task_id]
|
21
21
|
end
|
22
22
|
|
23
23
|
# Creates task for the given project
|
@@ -27,7 +27,7 @@ module Lokalise
|
|
27
27
|
# @param project_id [String]
|
28
28
|
# @param params [Hash]
|
29
29
|
def create_task(project_id, params)
|
30
|
-
Lokalise::Resources::Task
|
30
|
+
c_r Lokalise::Resources::Task, :create, project_id, params
|
31
31
|
end
|
32
32
|
|
33
33
|
# Updates task for the given project
|
@@ -38,7 +38,7 @@ module Lokalise
|
|
38
38
|
# @param task_id [String, Integer]
|
39
39
|
# @param params [Hash]
|
40
40
|
def update_task(project_id, task_id, params = {})
|
41
|
-
Lokalise::Resources::Task
|
41
|
+
c_r Lokalise::Resources::Task, :update, [project_id, task_id], params
|
42
42
|
end
|
43
43
|
|
44
44
|
# Deletes task for the given project
|
@@ -47,8 +47,8 @@ module Lokalise
|
|
47
47
|
# @return [Hash]
|
48
48
|
# @param project_id [String]
|
49
49
|
# @param task_id [String, Integer]
|
50
|
-
def
|
51
|
-
Lokalise::Resources::Task
|
50
|
+
def destroy_task(project_id, task_id)
|
51
|
+
c_r Lokalise::Resources::Task, :destroy, [project_id, task_id]
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
@@ -7,7 +7,7 @@ module Lokalise
|
|
7
7
|
# @param team_id [String]
|
8
8
|
# @param params [Hash]
|
9
9
|
def team_users(team_id, params = {})
|
10
|
-
Lokalise::Collections::TeamUser
|
10
|
+
c_r Lokalise::Collections::TeamUser, :all, team_id, params
|
11
11
|
end
|
12
12
|
|
13
13
|
# Returns team user from the given team
|
@@ -17,7 +17,7 @@ module Lokalise
|
|
17
17
|
# @param team_id [String]
|
18
18
|
# @param user_id [String, Integer]
|
19
19
|
def team_user(team_id, user_id)
|
20
|
-
Lokalise::Resources::TeamUser
|
20
|
+
c_r Lokalise::Resources::TeamUser, :find, [team_id, user_id]
|
21
21
|
end
|
22
22
|
|
23
23
|
# Updates team user for the given team
|
@@ -28,7 +28,7 @@ module Lokalise
|
|
28
28
|
# @param user_id [String, Integer]
|
29
29
|
# @param params [Hash]
|
30
30
|
def update_team_user(team_id, user_id, params)
|
31
|
-
Lokalise::Resources::TeamUser
|
31
|
+
c_r Lokalise::Resources::TeamUser, :update, [team_id, user_id], params
|
32
32
|
end
|
33
33
|
|
34
34
|
# Deletes team user from the given team
|
@@ -37,8 +37,8 @@ module Lokalise
|
|
37
37
|
# @return [Lokalise::Resources::TeamUser]
|
38
38
|
# @param team_id [String]
|
39
39
|
# @param user_id [String, Integer]
|
40
|
-
def
|
41
|
-
Lokalise::Resources::TeamUser
|
40
|
+
def destroy_team_user(team_id, user_id)
|
41
|
+
c_r Lokalise::Resources::TeamUser, :destroy, [team_id, user_id]
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -7,7 +7,7 @@ module Lokalise
|
|
7
7
|
# @param project_id [String]
|
8
8
|
# @param params [Hash]
|
9
9
|
def translations(project_id, params = {})
|
10
|
-
Lokalise::Collections::Translation
|
10
|
+
c_r Lokalise::Collections::Translation, :all, project_id, params
|
11
11
|
end
|
12
12
|
|
13
13
|
# Returns translation of the given project
|
@@ -18,7 +18,7 @@ module Lokalise
|
|
18
18
|
# @param translation_id [String, Integer]
|
19
19
|
# @param params [Hash]
|
20
20
|
def translation(project_id, translation_id, params = {})
|
21
|
-
Lokalise::Resources::Translation
|
21
|
+
c_r Lokalise::Resources::Translation, :find, [project_id, translation_id], params
|
22
22
|
end
|
23
23
|
|
24
24
|
# Updates translation of the given project
|
@@ -29,7 +29,7 @@ module Lokalise
|
|
29
29
|
# @param translation_id [String, Integer]
|
30
30
|
# @param params [Hash]
|
31
31
|
def update_translation(project_id, translation_id, params)
|
32
|
-
Lokalise::Resources::Translation
|
32
|
+
c_r Lokalise::Resources::Translation, :update, [project_id, translation_id], params
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -12,17 +12,23 @@ module Lokalise
|
|
12
12
|
# @param model_class [String]
|
13
13
|
# @param plural [Boolean] Should the returned value be pluralized?
|
14
14
|
def data_key_for(model_class, plural = false)
|
15
|
-
data_key =
|
16
|
-
Module.const_get "Lokalise::Resources::#{model_class}::DATA_KEY"
|
17
|
-
else
|
18
|
-
model_class
|
19
|
-
end.snakecase
|
15
|
+
data_key = get_key 'DATA_KEY', model_class
|
20
16
|
|
21
17
|
return data_key unless plural
|
22
18
|
|
23
19
|
data_key + 's'
|
24
20
|
end
|
25
21
|
|
22
|
+
# Returns key used to determine resource id (for example `user_id` or `project_id`).
|
23
|
+
# Most ids corresponds to resources' class names, but some may differ (for instance,
|
24
|
+
# `Contributor` has `user_id` attribute).
|
25
|
+
#
|
26
|
+
# @return [String]
|
27
|
+
# @param model_class [String]
|
28
|
+
def id_key_for(model_class)
|
29
|
+
get_key('ID_KEY', model_class) + '_id'
|
30
|
+
end
|
31
|
+
|
26
32
|
# Loads attributes for the given resource based on its name
|
27
33
|
#
|
28
34
|
# @return [Array<String>]
|
@@ -37,6 +43,14 @@ module Lokalise
|
|
37
43
|
|
38
44
|
private
|
39
45
|
|
46
|
+
def get_key(name, model_class)
|
47
|
+
if Module.const_defined? "Lokalise::Resources::#{model_class}::#{name}"
|
48
|
+
Module.const_get "Lokalise::Resources::#{model_class}::#{name}"
|
49
|
+
else
|
50
|
+
model_class
|
51
|
+
end.snakecase
|
52
|
+
end
|
53
|
+
|
40
54
|
# Unify some resources' names (eg, `ProjectComment` and `KeyComment` have the same attributes which are stored under `comment`)
|
41
55
|
#
|
42
56
|
# @return [String]
|
data/ruby-lokalise-api.gemspec
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
RSpec.describe Lokalise::Client do
|
2
2
|
let(:project_id) { '803826145ba90b42d5d860.46800099' }
|
3
3
|
let(:key_id) { 15_305_182 }
|
4
|
+
let(:another_key_id) { 15_519_786 }
|
4
5
|
|
5
6
|
describe '#comments' do
|
6
7
|
it 'should return all comments' do
|
@@ -28,19 +29,18 @@ RSpec.describe Lokalise::Client do
|
|
28
29
|
expect(comments.prev_page?).to eq(true)
|
29
30
|
expect(comments.first_page?).to eq(false)
|
30
31
|
|
31
|
-
expect(comments.ids).to include(project_id, key_id)
|
32
32
|
expect(comments.client).to be_an_instance_of(Lokalise::Client)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
specify '#comment' do
|
37
37
|
comment = VCR.use_cassette('comment') do
|
38
|
-
test_client.comment project_id,
|
38
|
+
test_client.comment project_id, another_key_id, '800746'
|
39
39
|
end
|
40
40
|
|
41
41
|
expect(comment.comment).to eq('rspec comment')
|
42
42
|
expect(comment.comment_id).to eq(800_746)
|
43
|
-
expect(comment.key_id).to eq(
|
43
|
+
expect(comment.key_id).to eq(another_key_id)
|
44
44
|
expect(comment.added_by).to eq(20_181)
|
45
45
|
expect(comment.added_by_email).to eq('bodrovis@protonmail.com')
|
46
46
|
expect(comment.added_at).to eq('2018-12-09 19:41:44 (Etc/UTC)')
|
@@ -76,11 +76,28 @@ RSpec.describe Lokalise::Client do
|
|
76
76
|
expect(comment.comment_id).to eq(767_938)
|
77
77
|
end
|
78
78
|
|
79
|
-
specify '#
|
79
|
+
specify '#destroy_comment' do
|
80
80
|
response = VCR.use_cassette('delete_comment') do
|
81
|
-
test_client.
|
81
|
+
test_client.destroy_comment project_id, key_id, 767_938
|
82
82
|
end
|
83
83
|
expect(response['project_id']).to eq(project_id)
|
84
84
|
expect(response['comment_deleted']).to eq(true)
|
85
85
|
end
|
86
|
+
|
87
|
+
context 'comment chained methods' do
|
88
|
+
it 'should support destroy' do
|
89
|
+
comment = VCR.use_cassette('create_another_comment') do
|
90
|
+
test_client.create_comments project_id, another_key_id, comment: 'chained comment'
|
91
|
+
end.collection.first
|
92
|
+
|
93
|
+
expect(comment.comment).to eq('chained comment')
|
94
|
+
|
95
|
+
delete_response = VCR.use_cassette('delete_comment_chained') do
|
96
|
+
comment.destroy
|
97
|
+
end
|
98
|
+
|
99
|
+
expect(delete_response['project_id']).to eq(project_id)
|
100
|
+
expect(delete_response['comment_deleted']).to eq(true)
|
101
|
+
end
|
102
|
+
end
|
86
103
|
end
|
@@ -74,11 +74,44 @@ RSpec.describe Lokalise::Client do
|
|
74
74
|
expect(contributor.languages.length).to eq(1)
|
75
75
|
end
|
76
76
|
|
77
|
-
specify '#
|
77
|
+
specify '#destroy_contributor' do
|
78
78
|
response = VCR.use_cassette('delete_contributor') do
|
79
|
-
test_client.
|
79
|
+
test_client.destroy_contributor project_id, contributor_id
|
80
80
|
end
|
81
81
|
expect(response['project_id']).to eq(project_id)
|
82
82
|
expect(response['contributor_deleted']).to eq(true)
|
83
83
|
end
|
84
|
+
|
85
|
+
context 'contributor chained methods' do
|
86
|
+
it 'should support update and destroy' do
|
87
|
+
contributor = VCR.use_cassette('create_another_contributor') do
|
88
|
+
test_client.create_contributors project_id,
|
89
|
+
email: 'demo@test.com',
|
90
|
+
fullname: 'chained',
|
91
|
+
languages: [{lang_iso: 'en'}]
|
92
|
+
end.collection.first
|
93
|
+
|
94
|
+
expect(contributor.client).to eq(test_client)
|
95
|
+
expect(contributor.fullname).to eq('chained')
|
96
|
+
|
97
|
+
id = contributor.user_id
|
98
|
+
path = contributor.path
|
99
|
+
|
100
|
+
updated_contributor = VCR.use_cassette('update_contributor_chained') do
|
101
|
+
contributor.update fullname: 'updated!'
|
102
|
+
end
|
103
|
+
|
104
|
+
expect(updated_contributor.client).to eq(test_client)
|
105
|
+
expect(updated_contributor.fullname).to eq('updated!')
|
106
|
+
expect(updated_contributor.user_id).to eq(id)
|
107
|
+
expect(updated_contributor.path).to eq(path)
|
108
|
+
|
109
|
+
delete_response = VCR.use_cassette('delete_contributor_chained') do
|
110
|
+
updated_contributor.destroy
|
111
|
+
end
|
112
|
+
|
113
|
+
expect(delete_response['project_id']).to eq(project_id)
|
114
|
+
expect(delete_response['contributor_deleted']).to eq(true)
|
115
|
+
end
|
116
|
+
end
|
84
117
|
end
|
@@ -108,21 +108,72 @@ RSpec.describe Lokalise::Client do
|
|
108
108
|
expect(second_key.description).to eq('bulk updated')
|
109
109
|
end
|
110
110
|
|
111
|
-
specify '#
|
111
|
+
specify '#destroy_key' do
|
112
112
|
response = VCR.use_cassette('delete_key') do
|
113
|
-
test_client.
|
113
|
+
test_client.destroy_key project_id, '15519771'
|
114
114
|
end
|
115
115
|
|
116
116
|
expect(response['project_id']).to eq(project_id)
|
117
117
|
expect(response['key_removed']).to eq(true)
|
118
118
|
end
|
119
119
|
|
120
|
-
specify '#
|
120
|
+
specify '#destroy_keys' do
|
121
121
|
response = VCR.use_cassette('delete_keys') do
|
122
|
-
test_client.
|
122
|
+
test_client.destroy_keys project_id, [new_key_id, key_id]
|
123
123
|
end
|
124
124
|
|
125
125
|
expect(response['project_id']).to eq(project_id)
|
126
126
|
expect(response['keys_removed']).to eq(true)
|
127
127
|
end
|
128
|
+
|
129
|
+
context 'key chained methods' do
|
130
|
+
it 'should support update and destroy' do
|
131
|
+
key = VCR.use_cassette('create_another_key') do
|
132
|
+
test_client.create_keys project_id, key_name: 'chained_k', platforms: %w[ios]
|
133
|
+
end.collection.first
|
134
|
+
|
135
|
+
expect(key.key_name['ios']).to eq('chained_k')
|
136
|
+
|
137
|
+
path = key.path
|
138
|
+
|
139
|
+
updated_key = VCR.use_cassette('update_key_chained') do
|
140
|
+
key.update key_name: 'updated!'
|
141
|
+
end
|
142
|
+
|
143
|
+
expect(updated_key.client).to eq(test_client)
|
144
|
+
expect(updated_key.key_name['ios']).to eq('updated!')
|
145
|
+
expect(updated_key.path).to eq(path)
|
146
|
+
|
147
|
+
delete_response = VCR.use_cassette('delete_key_chained') do
|
148
|
+
updated_key.destroy
|
149
|
+
end
|
150
|
+
|
151
|
+
expect(delete_response['project_id']).to eq(project_id)
|
152
|
+
expect(delete_response['key_removed']).to eq(true)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
context 'keys collection chained methods' do
|
157
|
+
it 'should support destroy_all' do
|
158
|
+
keys = VCR.use_cassette('create_keys_collection') do
|
159
|
+
test_client.create_keys project_id, [
|
160
|
+
{
|
161
|
+
key_name: 'key_collect1', platforms: %w[ios]
|
162
|
+
},
|
163
|
+
{
|
164
|
+
key_name: 'key_collect2', platforms: %w[ios]
|
165
|
+
}
|
166
|
+
]
|
167
|
+
end
|
168
|
+
|
169
|
+
expect(keys.collection.length).to eq(2)
|
170
|
+
|
171
|
+
delete_response = VCR.use_cassette('delete_all_keys_chained') do
|
172
|
+
keys.destroy_all
|
173
|
+
end
|
174
|
+
|
175
|
+
expect(delete_response['project_id']).to eq(project_id)
|
176
|
+
expect(delete_response['keys_removed']).to eq(true)
|
177
|
+
end
|
178
|
+
end
|
128
179
|
end
|