crowdin-api 1.13.0 → 1.15.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/.rubocop.yml +4 -0
- data/.rubocop_todo.yml +1 -0
- data/AGENTS.md +63 -0
- data/CLAUDE.md +1 -0
- data/Gemfile.lock +1 -1
- data/README.md +23 -1
- data/lib/crowdin-api/api_resources/advisor.rb +86 -0
- data/lib/crowdin-api/api_resources/ai.rb +974 -0
- data/lib/crowdin-api/api_resources/applications.rb +252 -15
- data/lib/crowdin-api/api_resources/bundles.rb +45 -29
- data/lib/crowdin-api/api_resources/clients.rb +23 -0
- data/lib/crowdin-api/api_resources/custom_spellcheckers.rb +36 -0
- data/lib/crowdin-api/api_resources/dictionaries.rb +5 -5
- data/lib/crowdin-api/api_resources/distributions.rb +15 -15
- data/lib/crowdin-api/api_resources/external_qa_checks.rb +36 -0
- data/lib/crowdin-api/api_resources/fields.rb +78 -0
- data/lib/crowdin-api/api_resources/glossaries.rb +62 -50
- data/lib/crowdin-api/api_resources/integrations.rb +201 -0
- data/lib/crowdin-api/api_resources/labels.rb +32 -0
- data/lib/crowdin-api/api_resources/languages.rb +16 -0
- data/lib/crowdin-api/api_resources/machine_translation_engines.rb +17 -0
- data/lib/crowdin-api/api_resources/notifications.rb +15 -6
- data/lib/crowdin-api/api_resources/organization.rb +33 -0
- data/lib/crowdin-api/api_resources/organization_webhooks.rb +71 -0
- data/lib/crowdin-api/api_resources/placeholders.rb +182 -0
- data/lib/crowdin-api/api_resources/projects.rb +137 -41
- data/lib/crowdin-api/api_resources/reports.rb +310 -26
- data/lib/crowdin-api/api_resources/screenshots.rb +48 -0
- data/lib/crowdin-api/api_resources/security_logs.rb +63 -0
- data/lib/crowdin-api/api_resources/source_files.rb +370 -65
- data/lib/crowdin-api/api_resources/source_strings.rb +62 -0
- data/lib/crowdin-api/api_resources/storages.rb +11 -11
- data/lib/crowdin-api/api_resources/string_comments.rb +46 -0
- data/lib/crowdin-api/api_resources/string_corrections.rb +21 -6
- data/lib/crowdin-api/api_resources/string_translations.rb +96 -0
- data/lib/crowdin-api/api_resources/style_guides.rb +71 -0
- data/lib/crowdin-api/api_resources/tasks.rb +140 -10
- data/lib/crowdin-api/api_resources/teams.rb +99 -0
- data/lib/crowdin-api/api_resources/translation_memory.rb +138 -0
- data/lib/crowdin-api/api_resources/translation_status.rb +65 -0
- data/lib/crowdin-api/api_resources/translations.rb +122 -2
- data/lib/crowdin-api/api_resources/users.rb +136 -6
- data/lib/crowdin-api/api_resources/vendors.rb +2 -0
- data/lib/crowdin-api/api_resources/webhooks.rb +16 -0
- data/lib/crowdin-api/api_resources/workflows.rb +24 -0
- data/lib/crowdin-api/client/client.rb +3 -8
- data/lib/crowdin-api/client/version.rb +1 -1
- data/lib/crowdin-api/core/graphql_extensions.rb +22 -0
- data/lib/crowdin-api/core/request.rb +1 -1
- data/lib/crowdin-api.rb +4 -1
- data/spec/api_resources/advisor_spec.rb +45 -0
- data/spec/api_resources/ai_spec.rb +863 -0
- data/spec/api_resources/applications_spec.rb +138 -0
- data/spec/api_resources/bundles_spec.rb +8 -0
- data/spec/api_resources/clients_spec.rb +13 -0
- data/spec/api_resources/custom_spellcheckers_spec.rb +21 -0
- data/spec/api_resources/external_qa_checks_spec.rb +21 -0
- data/spec/api_resources/fields_spec.rb +45 -0
- data/spec/api_resources/glossaries_spec.rb +18 -0
- data/spec/api_resources/integrations_spec.rb +117 -0
- data/spec/api_resources/organization_spec.rb +21 -0
- data/spec/api_resources/organization_webhooks_spec.rb +45 -0
- data/spec/api_resources/placeholders_spec.rb +103 -0
- data/spec/api_resources/projects_spec.rb +58 -0
- data/spec/api_resources/reports_spec.rb +221 -0
- data/spec/api_resources/security_logs_spec.rb +39 -0
- data/spec/api_resources/source_files_spec.rb +182 -0
- data/spec/api_resources/source_strings_spec.rb +26 -0
- data/spec/api_resources/string_comments_spec.rb +18 -0
- data/spec/api_resources/string_corrections_spec.rb +25 -19
- data/spec/api_resources/string_translations_spec.rb +26 -0
- data/spec/api_resources/style_guides_spec.rb +45 -0
- data/spec/api_resources/tasks_spec.rb +60 -0
- data/spec/api_resources/teams_spec.rb +42 -0
- data/spec/api_resources/translation_memory_spec.rb +58 -0
- data/spec/api_resources/translation_status_spec.rb +26 -0
- data/spec/api_resources/translations_spec.rb +42 -0
- data/spec/api_resources/users_spec.rb +84 -0
- data/spec/api_resources/workflows_spec.rb +10 -0
- data/spec/unit/client_spec.rb +47 -0
- metadata +28 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
describe Crowdin::ApiResources::StyleGuides do
|
|
4
|
+
describe 'Default endpoints' do
|
|
5
|
+
describe '#list_style_guides' do
|
|
6
|
+
it 'when request are valid', :default do
|
|
7
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/style-guides")
|
|
8
|
+
result = @crowdin.list_style_guides({})
|
|
9
|
+
expect(result).to eq(200)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe '#create_style_guide' do
|
|
14
|
+
it 'when request are valid', :default do
|
|
15
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/style-guides")
|
|
16
|
+
result = @crowdin.create_style_guide({})
|
|
17
|
+
expect(result).to eq(200)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '#delete_style_guide' do
|
|
22
|
+
it 'when request are valid', :default do
|
|
23
|
+
stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/style-guides/1")
|
|
24
|
+
result = @crowdin.delete_style_guide(1)
|
|
25
|
+
expect(result).to eq(200)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe '#get_style_guide' do
|
|
30
|
+
it 'when request are valid', :default do
|
|
31
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/style-guides/1")
|
|
32
|
+
result = @crowdin.get_style_guide(1)
|
|
33
|
+
expect(result).to eq(200)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe '#edit_style_guide' do
|
|
38
|
+
it 'when request are valid', :default do
|
|
39
|
+
stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/style-guides/1")
|
|
40
|
+
result = @crowdin.edit_style_guide(1, [])
|
|
41
|
+
expect(result).to eq(200)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -121,4 +121,64 @@ describe Crowdin::ApiResources::Tasks do
|
|
|
121
121
|
end
|
|
122
122
|
end
|
|
123
123
|
end
|
|
124
|
+
|
|
125
|
+
describe 'Default endpoints' do
|
|
126
|
+
describe '#list_project_task_settings_templates' do
|
|
127
|
+
it 'when request are valid', :default do
|
|
128
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/settings-templates")
|
|
129
|
+
result = @crowdin.list_project_task_settings_templates({}, project_id)
|
|
130
|
+
expect(result).to eq(200)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
describe '#add_project_task_settings_template' do
|
|
135
|
+
it 'when request are valid', :default do
|
|
136
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/settings-templates")
|
|
137
|
+
result = @crowdin.add_project_task_settings_template({}, project_id)
|
|
138
|
+
expect(result).to eq(200)
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
describe '#delete_project_task_settings_template' do
|
|
143
|
+
it 'when request are valid', :default do
|
|
144
|
+
stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/settings-templates/1")
|
|
145
|
+
result = @crowdin.delete_project_task_settings_template(1, project_id)
|
|
146
|
+
expect(result).to eq(200)
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
describe '#get_project_task_settings_template' do
|
|
151
|
+
it 'when request are valid', :default do
|
|
152
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/settings-templates/1")
|
|
153
|
+
result = @crowdin.get_project_task_settings_template(1, project_id)
|
|
154
|
+
expect(result).to eq(200)
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
describe '#edit_project_task_settings_template' do
|
|
159
|
+
it 'when request are valid', :default do
|
|
160
|
+
stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/tasks/settings-templates/1")
|
|
161
|
+
result = @crowdin.edit_project_task_settings_template(1, [], project_id)
|
|
162
|
+
expect(result).to eq(200)
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
describe '#list_specific_user_tasks' do
|
|
167
|
+
it 'when request are valid', :default do
|
|
168
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/users/1/tasks")
|
|
169
|
+
result = @crowdin.list_specific_user_tasks({}, 1)
|
|
170
|
+
expect(result).to eq(200)
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
describe 'Enterprise endpoints' do
|
|
176
|
+
describe '#list_specific_user_tasks' do
|
|
177
|
+
it 'when request are valid', :enterprise do
|
|
178
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/tasks")
|
|
179
|
+
result = @crowdin.list_specific_user_tasks({})
|
|
180
|
+
expect(result).to eq(200)
|
|
181
|
+
end
|
|
182
|
+
end
|
|
183
|
+
end
|
|
124
184
|
end
|
|
@@ -97,4 +97,46 @@ describe Crowdin::ApiResources::Teams do
|
|
|
97
97
|
end
|
|
98
98
|
end
|
|
99
99
|
end
|
|
100
|
+
|
|
101
|
+
describe 'Enterprise endpoints' do
|
|
102
|
+
describe '#list_group_teams' do
|
|
103
|
+
it 'when request are valid', :enterprise do
|
|
104
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/groups/1/teams")
|
|
105
|
+
result = @crowdin.list_group_teams(1, {})
|
|
106
|
+
expect(result).to eq(200)
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
describe '#update_group_teams' do
|
|
111
|
+
it 'when request are valid', :enterprise do
|
|
112
|
+
stub_request(:patch, "https://domain.api.crowdin.com/#{target_api_url}/groups/1/teams")
|
|
113
|
+
result = @crowdin.update_group_teams(1, [])
|
|
114
|
+
expect(result).to eq(200)
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
describe '#get_group_team' do
|
|
119
|
+
it 'when request are valid', :enterprise do
|
|
120
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/groups/1/teams/1")
|
|
121
|
+
result = @crowdin.get_group_team(1, 1)
|
|
122
|
+
expect(result).to eq(200)
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
describe '#list_team_projects_permissions' do
|
|
127
|
+
it 'when request are valid', :enterprise do
|
|
128
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/teams/1/projects/permissions")
|
|
129
|
+
result = @crowdin.list_team_projects_permissions(1, {})
|
|
130
|
+
expect(result).to eq(200)
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
describe '#edit_team_projects_permissions' do
|
|
135
|
+
it 'when request are valid', :enterprise do
|
|
136
|
+
stub_request(:patch, "https://domain.api.crowdin.com/#{target_api_url}/teams/1/projects/permissions")
|
|
137
|
+
result = @crowdin.edit_team_projects_permissions(1, [])
|
|
138
|
+
expect(result).to eq(200)
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
end
|
|
100
142
|
end
|
|
@@ -132,4 +132,62 @@ describe Crowdin::ApiResources::TranslationMemory do
|
|
|
132
132
|
end
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
|
+
|
|
136
|
+
describe 'Default endpoints' do
|
|
137
|
+
describe '#concordance_search_in_tms' do
|
|
138
|
+
it 'when request are valid', :default do
|
|
139
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/tms/concordance")
|
|
140
|
+
result = @crowdin.concordance_search_in_tms({})
|
|
141
|
+
expect(result).to eq(200)
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
describe '#list_tm_segments' do
|
|
146
|
+
it 'when request are valid', :default do
|
|
147
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/tms/1/segments")
|
|
148
|
+
result = @crowdin.list_tm_segments(1, {})
|
|
149
|
+
expect(result).to eq(200)
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
describe '#tm_segment_batch_operations' do
|
|
154
|
+
it 'when request are valid', :default do
|
|
155
|
+
stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/tms/1/segments")
|
|
156
|
+
result = @crowdin.tm_segment_batch_operations(1, [])
|
|
157
|
+
expect(result).to eq(200)
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
describe '#create_tm_segment' do
|
|
162
|
+
it 'when request are valid', :default do
|
|
163
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/tms/1/segments")
|
|
164
|
+
result = @crowdin.create_tm_segment(1, {})
|
|
165
|
+
expect(result).to eq(200)
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
describe '#delete_tm_segment' do
|
|
170
|
+
it 'when request are valid', :default do
|
|
171
|
+
stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/tms/1/segments/1")
|
|
172
|
+
result = @crowdin.delete_tm_segment(1, 1)
|
|
173
|
+
expect(result).to eq(200)
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
describe '#get_tm_segment' do
|
|
178
|
+
it 'when request are valid', :default do
|
|
179
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/tms/1/segments/1")
|
|
180
|
+
result = @crowdin.get_tm_segment(1, 1)
|
|
181
|
+
expect(result).to eq(200)
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
describe '#edit_tm_segment' do
|
|
186
|
+
it 'when request are valid', :default do
|
|
187
|
+
stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/tms/1/segments/1")
|
|
188
|
+
result = @crowdin.edit_tm_segment(1, 1, [])
|
|
189
|
+
expect(result).to eq(200)
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
end
|
|
135
193
|
end
|
|
@@ -58,4 +58,30 @@ describe Crowdin::ApiResources::TranslationStatus do
|
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
|
+
|
|
62
|
+
describe 'Default endpoints' do
|
|
63
|
+
describe '#revalidate_qa_checks' do
|
|
64
|
+
it 'when request are valid', :default do
|
|
65
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/qa-checks/revalidate")
|
|
66
|
+
result = @crowdin.revalidate_qa_checks({}, project_id)
|
|
67
|
+
expect(result).to eq(200)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
describe '#cancel_qa_checks_revalidation' do
|
|
72
|
+
it 'when request are valid', :default do
|
|
73
|
+
stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/qa-checks/revalidate/1")
|
|
74
|
+
result = @crowdin.cancel_qa_checks_revalidation(1, project_id)
|
|
75
|
+
expect(result).to eq(200)
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
describe '#qa_checks_revalidation_status' do
|
|
80
|
+
it 'when request are valid', :default do
|
|
81
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/qa-checks/revalidate/1")
|
|
82
|
+
result = @crowdin.qa_checks_revalidation_status(1, project_id)
|
|
83
|
+
expect(result).to eq(200)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
61
87
|
end
|
|
@@ -169,4 +169,46 @@ describe Crowdin::ApiResources::Translations do
|
|
|
169
169
|
end
|
|
170
170
|
end
|
|
171
171
|
end
|
|
172
|
+
|
|
173
|
+
describe 'Default endpoints' do
|
|
174
|
+
describe '#auto_translation_batch_operations' do
|
|
175
|
+
it 'when request are valid', :default do
|
|
176
|
+
stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/pre-translations")
|
|
177
|
+
result = @crowdin.auto_translation_batch_operations([], project_id)
|
|
178
|
+
expect(result).to eq(200)
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
describe '#import_translations' do
|
|
183
|
+
it 'when request are valid', :default do
|
|
184
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/imports")
|
|
185
|
+
result = @crowdin.import_translations({}, project_id)
|
|
186
|
+
expect(result).to eq(200)
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
describe '#import_translations_status' do
|
|
191
|
+
it 'when request are valid', :default do
|
|
192
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/imports/1")
|
|
193
|
+
result = @crowdin.import_translations_status(1, project_id)
|
|
194
|
+
expect(result).to eq(200)
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
describe '#import_translations_report' do
|
|
199
|
+
it 'when request are valid', :default do
|
|
200
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/imports/1/report")
|
|
201
|
+
result = @crowdin.import_translations_report(1, project_id)
|
|
202
|
+
expect(result).to eq(200)
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
describe '#validate_text_by_qa_checks' do
|
|
207
|
+
it 'when request are valid', :default do
|
|
208
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/translations/validate-qa-checks")
|
|
209
|
+
result = @crowdin.validate_text_by_qa_checks([], project_id)
|
|
210
|
+
expect(result).to eq(200)
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
end
|
|
172
214
|
end
|
|
@@ -31,6 +31,12 @@ describe Crowdin::ApiResources::Users do
|
|
|
31
31
|
|
|
32
32
|
describe 'Enterprise endpoints' do
|
|
33
33
|
describe '#add_project_member' do
|
|
34
|
+
it 'when request are valid', :default do
|
|
35
|
+
stub_request(:post, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/members")
|
|
36
|
+
add_project_member = @crowdin.add_project_member({}, project_id)
|
|
37
|
+
expect(add_project_member).to eq(200)
|
|
38
|
+
end
|
|
39
|
+
|
|
34
40
|
it 'when request are valid', :enterprise do
|
|
35
41
|
stub_request(:post, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members")
|
|
36
42
|
add_project_member = @crowdin.add_project_member({}, project_id)
|
|
@@ -41,6 +47,12 @@ describe Crowdin::ApiResources::Users do
|
|
|
41
47
|
describe '#get_project_member_permissions' do
|
|
42
48
|
let(:member_id) { 1 }
|
|
43
49
|
|
|
50
|
+
it 'when request are valid', :default do
|
|
51
|
+
stub_request(:get, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
|
|
52
|
+
get_project_member_permissions = @crowdin.get_project_member_permissions(member_id, project_id)
|
|
53
|
+
expect(get_project_member_permissions).to eq(200)
|
|
54
|
+
end
|
|
55
|
+
|
|
44
56
|
it 'when request are valid', :enterprise do
|
|
45
57
|
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
|
|
46
58
|
get_project_member_permissions = @crowdin.get_project_member_permissions(member_id, project_id)
|
|
@@ -51,6 +63,12 @@ describe Crowdin::ApiResources::Users do
|
|
|
51
63
|
describe '#replace_project_permissions' do
|
|
52
64
|
let(:member_id) { 1 }
|
|
53
65
|
|
|
66
|
+
it 'when request are valid', :default do
|
|
67
|
+
stub_request(:put, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
|
|
68
|
+
replace_project_permissions = @crowdin.replace_project_permissions(member_id, {}, project_id)
|
|
69
|
+
expect(replace_project_permissions).to eq(200)
|
|
70
|
+
end
|
|
71
|
+
|
|
54
72
|
it 'when request are valid', :enterprise do
|
|
55
73
|
stub_request(:put, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
|
|
56
74
|
replace_project_permissions = @crowdin.replace_project_permissions(member_id, {}, project_id)
|
|
@@ -61,6 +79,12 @@ describe Crowdin::ApiResources::Users do
|
|
|
61
79
|
describe '#delete_member_from_project' do
|
|
62
80
|
let(:member_id) { 1 }
|
|
63
81
|
|
|
82
|
+
it 'when request are valid', :default do
|
|
83
|
+
stub_request(:delete, "https://api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
|
|
84
|
+
delete_member_from_project = @crowdin.delete_member_from_project(member_id, {}, project_id)
|
|
85
|
+
expect(delete_member_from_project).to eq(200)
|
|
86
|
+
end
|
|
87
|
+
|
|
64
88
|
it 'when request are valid', :enterprise do
|
|
65
89
|
stub_request(:delete, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/members/#{member_id}")
|
|
66
90
|
delete_member_from_project = @crowdin.delete_member_from_project(member_id, {}, project_id)
|
|
@@ -114,4 +138,64 @@ describe Crowdin::ApiResources::Users do
|
|
|
114
138
|
end
|
|
115
139
|
end
|
|
116
140
|
end
|
|
141
|
+
|
|
142
|
+
describe 'Default endpoints' do
|
|
143
|
+
describe '#edit_authenticated_user' do
|
|
144
|
+
it 'when request are valid', :default do
|
|
145
|
+
stub_request(:patch, "https://api.crowdin.com/#{target_api_url}/user")
|
|
146
|
+
result = @crowdin.edit_authenticated_user([])
|
|
147
|
+
expect(result).to eq(200)
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
describe 'Enterprise endpoints' do
|
|
153
|
+
describe '#list_group_managers' do
|
|
154
|
+
it 'when request are valid', :enterprise do
|
|
155
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/groups/1/managers")
|
|
156
|
+
result = @crowdin.list_group_managers(1, {})
|
|
157
|
+
expect(result).to eq(200)
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
describe '#update_group_managers' do
|
|
162
|
+
it 'when request are valid', :enterprise do
|
|
163
|
+
stub_request(:patch, "https://domain.api.crowdin.com/#{target_api_url}/groups/1/managers")
|
|
164
|
+
result = @crowdin.update_group_managers(1, [])
|
|
165
|
+
expect(result).to eq(200)
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
describe '#get_group_manager' do
|
|
170
|
+
it 'when request are valid', :enterprise do
|
|
171
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/groups/1/managers/1")
|
|
172
|
+
result = @crowdin.get_group_manager(1, 1)
|
|
173
|
+
expect(result).to eq(200)
|
|
174
|
+
end
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
describe '#list_user_projects_contributions' do
|
|
178
|
+
it 'when request are valid', :enterprise do
|
|
179
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/users/1/projects/contributions")
|
|
180
|
+
result = @crowdin.list_user_projects_contributions(1, {})
|
|
181
|
+
expect(result).to eq(200)
|
|
182
|
+
end
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
describe '#list_user_projects_permissions' do
|
|
186
|
+
it 'when request are valid', :enterprise do
|
|
187
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/users/1/projects/permissions")
|
|
188
|
+
result = @crowdin.list_user_projects_permissions(1, {})
|
|
189
|
+
expect(result).to eq(200)
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
describe '#edit_user_projects_permissions' do
|
|
194
|
+
it 'when request are valid', :enterprise do
|
|
195
|
+
stub_request(:patch, "https://domain.api.crowdin.com/#{target_api_url}/users/1/projects/permissions")
|
|
196
|
+
result = @crowdin.edit_user_projects_permissions(1, [])
|
|
197
|
+
expect(result).to eq(200)
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
117
201
|
end
|
|
@@ -38,4 +38,14 @@ describe Crowdin::ApiResources::Workflows do
|
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
|
+
|
|
42
|
+
describe 'Enterprise endpoints' do
|
|
43
|
+
describe '#list_workflow_step_strings' do
|
|
44
|
+
it 'when request are valid', :enterprise do
|
|
45
|
+
stub_request(:get, "https://domain.api.crowdin.com/#{target_api_url}/projects/#{project_id}/workflow-steps/1/strings")
|
|
46
|
+
result = @crowdin.list_workflow_step_strings(1, {}, project_id)
|
|
47
|
+
expect(result).to eq(200)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
41
51
|
end
|
data/spec/unit/client_spec.rb
CHANGED
|
@@ -98,6 +98,53 @@ describe 'Crowdin Client' do
|
|
|
98
98
|
end
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
+
describe 'Crowdin Client graphql' do
|
|
102
|
+
let(:graphql_request) do
|
|
103
|
+
{
|
|
104
|
+
query: 'query Viewer { viewer { id } }',
|
|
105
|
+
operationName: 'Viewer',
|
|
106
|
+
variables: { projectId: 1, emptyValue: nil }
|
|
107
|
+
}
|
|
108
|
+
end
|
|
109
|
+
let(:graphql_response) { { 'data' => { 'viewer' => { 'id' => 1 } } } }
|
|
110
|
+
|
|
111
|
+
it 'posts to the default GraphQL endpoint', :default do
|
|
112
|
+
stub_request(:post, 'https://api.crowdin.com/api/graphql')
|
|
113
|
+
.with(body: graphql_request.to_json)
|
|
114
|
+
.to_return(body: graphql_response.to_json)
|
|
115
|
+
|
|
116
|
+
expect(@crowdin.graphql(graphql_request)).to eq(graphql_response)
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
it 'posts to the Enterprise GraphQL endpoint', :enterprise do
|
|
120
|
+
stub_request(:post, 'https://domain.api.crowdin.com/api/graphql')
|
|
121
|
+
.with(body: graphql_request.to_json)
|
|
122
|
+
.to_return(body: graphql_response.to_json)
|
|
123
|
+
|
|
124
|
+
expect(@crowdin.graphql(graphql_request)).to eq(graphql_response)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
it 'supports a custom GraphQL endpoint URL', :default do
|
|
128
|
+
custom_url = 'http://localhost:3000/api/graphql'
|
|
129
|
+
|
|
130
|
+
stub_request(:post, custom_url)
|
|
131
|
+
.with(body: graphql_request.to_json)
|
|
132
|
+
.to_return(body: graphql_response.to_json)
|
|
133
|
+
|
|
134
|
+
expect(@crowdin.graphql(graphql_request, url: custom_url)).to eq(graphql_response)
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
it 'returns parsed GraphQL error responses', :default do
|
|
138
|
+
graphql_error_response = { 'errors' => [{ 'message' => 'Invalid query' }] }
|
|
139
|
+
|
|
140
|
+
stub_request(:post, 'https://api.crowdin.com/api/graphql')
|
|
141
|
+
.with(body: graphql_request.to_json)
|
|
142
|
+
.to_return(status: 400, body: graphql_error_response.to_json)
|
|
143
|
+
|
|
144
|
+
expect(@crowdin.graphql(graphql_request)).to eq(graphql_error_response)
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
101
148
|
describe 'connection' do
|
|
102
149
|
subject(:connection) { crowdin_client.connection }
|
|
103
150
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: crowdin-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.15.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Crowdin
|
|
@@ -194,6 +194,8 @@ files:
|
|
|
194
194
|
- ".rspec"
|
|
195
195
|
- ".rubocop.yml"
|
|
196
196
|
- ".rubocop_todo.yml"
|
|
197
|
+
- AGENTS.md
|
|
198
|
+
- CLAUDE.md
|
|
197
199
|
- CODE_OF_CONDUCT.md
|
|
198
200
|
- CONTRIBUTING.md
|
|
199
201
|
- Gemfile
|
|
@@ -204,24 +206,36 @@ files:
|
|
|
204
206
|
- bin/crowdin-console
|
|
205
207
|
- crowdin-api.gemspec
|
|
206
208
|
- lib/crowdin-api.rb
|
|
209
|
+
- lib/crowdin-api/api_resources/advisor.rb
|
|
210
|
+
- lib/crowdin-api/api_resources/ai.rb
|
|
207
211
|
- lib/crowdin-api/api_resources/applications.rb
|
|
208
212
|
- lib/crowdin-api/api_resources/bundles.rb
|
|
213
|
+
- lib/crowdin-api/api_resources/clients.rb
|
|
214
|
+
- lib/crowdin-api/api_resources/custom_spellcheckers.rb
|
|
209
215
|
- lib/crowdin-api/api_resources/dictionaries.rb
|
|
210
216
|
- lib/crowdin-api/api_resources/distributions.rb
|
|
217
|
+
- lib/crowdin-api/api_resources/external_qa_checks.rb
|
|
218
|
+
- lib/crowdin-api/api_resources/fields.rb
|
|
211
219
|
- lib/crowdin-api/api_resources/glossaries.rb
|
|
220
|
+
- lib/crowdin-api/api_resources/integrations.rb
|
|
212
221
|
- lib/crowdin-api/api_resources/labels.rb
|
|
213
222
|
- lib/crowdin-api/api_resources/languages.rb
|
|
214
223
|
- lib/crowdin-api/api_resources/machine_translation_engines.rb
|
|
215
224
|
- lib/crowdin-api/api_resources/notifications.rb
|
|
225
|
+
- lib/crowdin-api/api_resources/organization.rb
|
|
226
|
+
- lib/crowdin-api/api_resources/organization_webhooks.rb
|
|
227
|
+
- lib/crowdin-api/api_resources/placeholders.rb
|
|
216
228
|
- lib/crowdin-api/api_resources/projects.rb
|
|
217
229
|
- lib/crowdin-api/api_resources/reports.rb
|
|
218
230
|
- lib/crowdin-api/api_resources/screenshots.rb
|
|
231
|
+
- lib/crowdin-api/api_resources/security_logs.rb
|
|
219
232
|
- lib/crowdin-api/api_resources/source_files.rb
|
|
220
233
|
- lib/crowdin-api/api_resources/source_strings.rb
|
|
221
234
|
- lib/crowdin-api/api_resources/storages.rb
|
|
222
235
|
- lib/crowdin-api/api_resources/string_comments.rb
|
|
223
236
|
- lib/crowdin-api/api_resources/string_corrections.rb
|
|
224
237
|
- lib/crowdin-api/api_resources/string_translations.rb
|
|
238
|
+
- lib/crowdin-api/api_resources/style_guides.rb
|
|
225
239
|
- lib/crowdin-api/api_resources/tasks.rb
|
|
226
240
|
- lib/crowdin-api/api_resources/teams.rb
|
|
227
241
|
- lib/crowdin-api/api_resources/translation_memory.rb
|
|
@@ -237,26 +251,39 @@ files:
|
|
|
237
251
|
- lib/crowdin-api/core/errors.rb
|
|
238
252
|
- lib/crowdin-api/core/errors_raisers.rb
|
|
239
253
|
- lib/crowdin-api/core/fetch_all_extensions.rb
|
|
254
|
+
- lib/crowdin-api/core/graphql_extensions.rb
|
|
240
255
|
- lib/crowdin-api/core/request.rb
|
|
241
256
|
- lib/crowdin-api/core/send_request.rb
|
|
257
|
+
- spec/api_resources/advisor_spec.rb
|
|
258
|
+
- spec/api_resources/ai_spec.rb
|
|
242
259
|
- spec/api_resources/applications_spec.rb
|
|
243
260
|
- spec/api_resources/bundles_spec.rb
|
|
261
|
+
- spec/api_resources/clients_spec.rb
|
|
262
|
+
- spec/api_resources/custom_spellcheckers_spec.rb
|
|
244
263
|
- spec/api_resources/dictionaries_spec.rb
|
|
245
264
|
- spec/api_resources/distributions_spec.rb
|
|
265
|
+
- spec/api_resources/external_qa_checks_spec.rb
|
|
266
|
+
- spec/api_resources/fields_spec.rb
|
|
246
267
|
- spec/api_resources/glossaries_spec.rb
|
|
268
|
+
- spec/api_resources/integrations_spec.rb
|
|
247
269
|
- spec/api_resources/labels_spec.rb
|
|
248
270
|
- spec/api_resources/languages_spec.rb
|
|
249
271
|
- spec/api_resources/machine_translation_engines_spec.rb
|
|
250
272
|
- spec/api_resources/notifications_spec.rb
|
|
273
|
+
- spec/api_resources/organization_spec.rb
|
|
274
|
+
- spec/api_resources/organization_webhooks_spec.rb
|
|
275
|
+
- spec/api_resources/placeholders_spec.rb
|
|
251
276
|
- spec/api_resources/projects_spec.rb
|
|
252
277
|
- spec/api_resources/reports_spec.rb
|
|
253
278
|
- spec/api_resources/screenshots_spec.rb
|
|
279
|
+
- spec/api_resources/security_logs_spec.rb
|
|
254
280
|
- spec/api_resources/source_files_spec.rb
|
|
255
281
|
- spec/api_resources/source_strings_spec.rb
|
|
256
282
|
- spec/api_resources/storages_spec.rb
|
|
257
283
|
- spec/api_resources/string_comments_spec.rb
|
|
258
284
|
- spec/api_resources/string_corrections_spec.rb
|
|
259
285
|
- spec/api_resources/string_translations_spec.rb
|
|
286
|
+
- spec/api_resources/style_guides_spec.rb
|
|
260
287
|
- spec/api_resources/tasks_spec.rb
|
|
261
288
|
- spec/api_resources/teams_spec.rb
|
|
262
289
|
- spec/api_resources/translation_memory_spec.rb
|