crowdin-api 1.1.1 → 1.3.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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/test-and-lint.yml +1 -1
  3. data/.gitignore +2 -2
  4. data/.rubocop_todo.yml +114 -42
  5. data/README.md +26 -13
  6. data/bin/crowdin-console +5 -5
  7. data/crowdin-api.gemspec +1 -2
  8. data/lib/crowdin-api/api_resources/dictionaries.rb +32 -0
  9. data/lib/crowdin-api/api_resources/distributions.rb +92 -0
  10. data/lib/crowdin-api/api_resources/glossaries.rb +199 -0
  11. data/lib/crowdin-api/api_resources/labels.rb +98 -0
  12. data/lib/crowdin-api/api_resources/languages.rb +61 -0
  13. data/lib/crowdin-api/api_resources/machine_translation_engines.rb +79 -0
  14. data/lib/crowdin-api/api_resources/projects.rb +124 -0
  15. data/lib/crowdin-api/api_resources/reports.rb +120 -0
  16. data/lib/crowdin-api/api_resources/screenshots.rb +172 -0
  17. data/lib/crowdin-api/{api-resources → api_resources}/source_files.rb +68 -130
  18. data/lib/crowdin-api/{api-resources → api_resources}/source_strings.rb +19 -24
  19. data/lib/crowdin-api/api_resources/storages.rb +54 -0
  20. data/lib/crowdin-api/api_resources/string_comments.rb +68 -0
  21. data/lib/crowdin-api/api_resources/string_translations.rb +193 -0
  22. data/lib/crowdin-api/api_resources/tasks.rb +102 -0
  23. data/lib/crowdin-api/api_resources/teams.rb +135 -0
  24. data/lib/crowdin-api/api_resources/translation_memory.rb +131 -0
  25. data/lib/crowdin-api/{api-resources → api_resources}/translation_status.rb +24 -30
  26. data/lib/crowdin-api/{api-resources → api_resources}/translations.rb +41 -59
  27. data/lib/crowdin-api/api_resources/users.rb +161 -0
  28. data/lib/crowdin-api/api_resources/vendors.rb +21 -0
  29. data/lib/crowdin-api/api_resources/webhooks.rb +68 -0
  30. data/lib/crowdin-api/api_resources/workflows.rb +59 -0
  31. data/lib/crowdin-api/client/client.rb +72 -50
  32. data/lib/crowdin-api/client/configuration.rb +16 -12
  33. data/lib/crowdin-api/client/version.rb +1 -1
  34. data/lib/crowdin-api/core/errors.rb +2 -1
  35. data/lib/crowdin-api/core/{api_errors_raiser.rb → errors_raisers.rb} +21 -11
  36. data/lib/crowdin-api/core/request.rb +53 -88
  37. data/lib/crowdin-api/core/send_request.rb +67 -0
  38. data/lib/crowdin-api.rb +20 -11
  39. data/spec/api_resources/dictionaries_spec.rb +23 -0
  40. data/spec/api_resources/distributions_spec.rb +71 -0
  41. data/spec/api_resources/glossaries_spec.rb +167 -0
  42. data/spec/api_resources/labels_spec.rb +71 -0
  43. data/spec/api_resources/languages_spec.rb +51 -0
  44. data/spec/api_resources/machine_translation_engines_spec.rb +63 -0
  45. data/spec/api_resources/projects_spec.rb +215 -0
  46. data/spec/api_resources/reports_spec.rb +95 -0
  47. data/spec/api_resources/screenshots_spec.rb +134 -0
  48. data/spec/api_resources/source_files_spec.rb +13 -0
  49. data/spec/api_resources/source_strings_spec.rb +51 -0
  50. data/spec/api_resources/storages_spec.rb +13 -0
  51. data/spec/api_resources/string_comments_spec.rb +13 -0
  52. data/spec/api_resources/string_translations_spec.rb +13 -0
  53. data/spec/api_resources/tasks_spec.rb +79 -0
  54. data/spec/api_resources/teams_spec.rb +13 -0
  55. data/spec/api_resources/translation_memory_spec.rb +13 -0
  56. data/spec/api_resources/translation_status_spec.rb +15 -0
  57. data/spec/api_resources/translations_spec.rb +107 -0
  58. data/spec/api_resources/users_spec.rb +117 -0
  59. data/spec/api_resources/vendors_spec.rb +13 -0
  60. data/spec/api_resources/webhooks_spec.rb +51 -0
  61. data/spec/api_resources/workflows_spec.rb +41 -0
  62. data/spec/spec_helper.rb +20 -2
  63. data/spec/unit/client_spec.rb +85 -0
  64. metadata +65 -28
  65. data/bin/setup +0 -6
  66. data/lib/crowdin-api/api-resources/languages.rb +0 -81
  67. data/lib/crowdin-api/api-resources/projects.rb +0 -134
  68. data/lib/crowdin-api/api-resources/storages.rb +0 -102
  69. data/lib/crowdin-api/api-resources/workflows.rb +0 -59
  70. data/spec/core/config-instance_spec.rb +0 -72
  71. data/spec/crowdin-api_spec.rb +0 -7
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Glossaries
6
+ def list_glossaries(query = {})
7
+ request = Web::Request.new(
8
+ connection,
9
+ :get,
10
+ "#{config.target_api_url}/glossaries",
11
+ { params: query }
12
+ )
13
+ Web::SendRequest.new(request).perform
14
+ end
15
+
16
+ def add_glossary(query = {})
17
+ request = Web::Request.new(
18
+ connection,
19
+ :post,
20
+ "#{config.target_api_url}/glossaries",
21
+ { params: query }
22
+ )
23
+ Web::SendRequest.new(request).perform
24
+ end
25
+
26
+ def get_glossary(glossary_id = nil, query = {})
27
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
28
+
29
+ request = Web::Request.new(
30
+ connection,
31
+ :get,
32
+ "#{config.target_api_url}/glossaries/#{glossary_id}",
33
+ { params: query }
34
+ )
35
+ Web::SendRequest.new(request).perform
36
+ end
37
+
38
+ def delete_glossary(glossary_id = nil)
39
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
40
+
41
+ request = Web::Request.new(
42
+ connection,
43
+ :delete,
44
+ "#{config.target_api_url}/glossaries/#{glossary_id}"
45
+ )
46
+ Web::SendRequest.new(request).perform
47
+ end
48
+
49
+ def edit_glossary(glossary_id = nil, query = {})
50
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
51
+
52
+ request = Web::Request.new(
53
+ connection,
54
+ :patch,
55
+ "#{config.target_api_url}/glossaries/#{glossary_id}",
56
+ { params: query }
57
+ )
58
+ Web::SendRequest.new(request).perform
59
+ end
60
+
61
+ def export_glossary(query = {}, glossary_id = nil, destination = nil)
62
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
63
+
64
+ request = Web::Request.new(
65
+ connection,
66
+ :post,
67
+ "#{config.target_api_url}/glossaries/#{glossary_id}/exports",
68
+ { params: query }
69
+ )
70
+ Web::SendRequest.new(request, destination).perform
71
+ end
72
+
73
+ def check_glossary_export_status(glossary_id = nil, export_id = nil)
74
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
75
+ export_id || raise_parameter_is_required_error(:export_id)
76
+
77
+ request = Web::Request.new(
78
+ connection,
79
+ :get,
80
+ "#{config.target_api_url}/glossaries/#{glossary_id}/exports/#{export_id}"
81
+ )
82
+ Web::SendRequest.new(request).perform
83
+ end
84
+
85
+ def download_glossary(glossary_id = nil, export_id = nil, destination = nil)
86
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
87
+ export_id || raise_parameter_is_required_error(:export_id)
88
+
89
+ request = Web::Request.new(
90
+ connection,
91
+ :get,
92
+ "#{config.target_api_url}/glossaries/#{glossary_id}/exports/#{export_id}/download"
93
+ )
94
+ Web::SendRequest.new(request, destination).perform
95
+ end
96
+
97
+ def import_glossary(glossary_id = nil, query = {})
98
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
99
+
100
+ request = Web::Request.new(
101
+ connection,
102
+ :post,
103
+ "#{config.target_api_url}/glossaries/#{glossary_id}/imports",
104
+ { params: query }
105
+ )
106
+ Web::SendRequest.new(request).perform
107
+ end
108
+
109
+ def check_glossary_import_status(glossary_id = nil, import_id = nil)
110
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
111
+ import_id || raise_parameter_is_required_error(:import_id)
112
+
113
+ request = Web::Request.new(
114
+ connection,
115
+ :get,
116
+ "#{config.target_api_url}/glossaries/#{glossary_id}/imports/#{import_id}"
117
+ )
118
+ Web::SendRequest.new(request).perform
119
+ end
120
+
121
+ def list_terms(glossary_id = nil, query = {})
122
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
123
+
124
+ request = Web::Request.new(
125
+ connection,
126
+ :get,
127
+ "#{config.target_api_url}/glossaries/#{glossary_id}/terms",
128
+ { params: query }
129
+ )
130
+ Web::SendRequest.new(request).perform
131
+ end
132
+
133
+ def add_term(glossary_id = nil, query = {})
134
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
135
+
136
+ request = Web::Request.new(
137
+ connection,
138
+ :post,
139
+ "#{config.target_api_url}/glossaries/#{glossary_id}/terms",
140
+ { params: query }
141
+ )
142
+ Web::SendRequest.new(request).perform
143
+ end
144
+
145
+ def clear_glossary(glossary_id = nil, query = {})
146
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
147
+
148
+ response = ::RestClient::Request.execute(
149
+ {
150
+ method: :delete,
151
+ url: config.base_url + config.target_api_url + "/glossaries/#{glossary_id}/terms",
152
+ payload: query.to_json
153
+ }.merge(@options)
154
+ )
155
+
156
+ response.body.empty? ? response.code : JSON.parse(response.body)
157
+ rescue StandardError => e
158
+ e.message
159
+ end
160
+
161
+ def get_term(glossary_id = nil, term_id = nil)
162
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
163
+ term_id || raise_parameter_is_required_error(:term_id)
164
+
165
+ request = Web::Request.new(
166
+ connection,
167
+ :get,
168
+ "#{config.target_api_url}/glossaries/#{glossary_id}/terms/#{term_id}"
169
+ )
170
+ Web::SendRequest.new(request).perform
171
+ end
172
+
173
+ def delete_term(glossary_id = nil, term_id = nil)
174
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
175
+ term_id || raise_parameter_is_required_error(:term_id)
176
+
177
+ request = Web::Request.new(
178
+ connection,
179
+ :delete,
180
+ "#{config.target_api_url}/glossaries/#{glossary_id}/terms/#{term_id}"
181
+ )
182
+ Web::SendRequest.new(request).perform
183
+ end
184
+
185
+ def edit_term(glossary_id = nil, term_id = nil, query = {})
186
+ glossary_id || raise_parameter_is_required_error(:glossary_id)
187
+ term_id || raise_parameter_is_required_error(:term_id)
188
+
189
+ request = Web::Request.new(
190
+ connection,
191
+ :patch,
192
+ "#{config.target_api_url}/glossaries/#{glossary_id}/terms/#{term_id}",
193
+ { params: query }
194
+ )
195
+ Web::SendRequest.new(request).perform
196
+ end
197
+ end
198
+ end
199
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Labels
6
+ def list_labels(query = {}, project_id = config.project_id)
7
+ project_id || raise_project_id_is_required_error
8
+
9
+ request = Web::Request.new(
10
+ connection,
11
+ :get,
12
+ "#{config.target_api_url}/projects/#{project_id}/labels",
13
+ { params: query }
14
+ )
15
+ Web::SendRequest.new(request).perform
16
+ end
17
+
18
+ def add_label(query = {}, project_id = config.project_id)
19
+ project_id || raise_project_id_is_required_error
20
+
21
+ request = Web::Request.new(
22
+ connection,
23
+ :post,
24
+ "#{config.target_api_url}/projects/#{project_id}/labels",
25
+ { params: query }
26
+ )
27
+ Web::SendRequest.new(request).perform
28
+ end
29
+
30
+ def get_label(label_id = nil, project_id = config.project_id)
31
+ label_id || raise_parameter_is_required_error(:label_id)
32
+ project_id || raise_project_id_is_required_error
33
+
34
+ request = Web::Request.new(
35
+ connection,
36
+ :get,
37
+ "#{config.target_api_url}/projects/#{project_id}/labels/#{label_id}"
38
+ )
39
+ Web::SendRequest.new(request).perform
40
+ end
41
+
42
+ def delete_label(label_id = nil, project_id = config.project_id)
43
+ label_id || raise_parameter_is_required_error(:label_id)
44
+ project_id || raise_project_id_is_required_error
45
+
46
+ request = Web::Request.new(
47
+ connection,
48
+ :delete,
49
+ "#{config.target_api_url}/projects/#{project_id}/labels/#{label_id}"
50
+ )
51
+ Web::SendRequest.new(request).perform
52
+ end
53
+
54
+ def edit_label(label_id = nil, query = {}, project_id = config.project_id)
55
+ label_id || raise_parameter_is_required_error(:label_id)
56
+ project_id || raise_project_id_is_required_error
57
+
58
+ request = Web::Request.new(
59
+ connection,
60
+ :patch,
61
+ "#{config.target_api_url}/projects/#{project_id}/labels/#{label_id}",
62
+ { params: query }
63
+ )
64
+ Web::SendRequest.new(request).perform
65
+ end
66
+
67
+ def assign_label_to_strings(label_id = nil, query = {}, project_id = config.project_id)
68
+ label_id || raise_parameter_is_required_error(:label_id)
69
+ project_id || raise_project_id_is_required_error
70
+
71
+ request = Web::Request.new(
72
+ connection,
73
+ :post,
74
+ "#{config.target_api_url}/projects/#{project_id}/labels/#{label_id}/strings",
75
+ { params: query }
76
+ )
77
+ Web::SendRequest.new(request).perform
78
+ end
79
+
80
+ def unassign_label_from_strings(label_id = nil, query = {}, project_id = config.project_id)
81
+ label_id || raise_parameter_is_required_error(:label_id)
82
+ project_id || raise_project_id_is_required_error
83
+
84
+ response = ::RestClient::Request.execute(
85
+ {
86
+ method: :delete,
87
+ url: config.base_url + config.target_api_url + "/projects/#{project_id}/labels/#{label_id}",
88
+ payload: query.to_json
89
+ }.merge(@options)
90
+ )
91
+
92
+ response.body.empty? ? response.code : JSON.parse(response.body)
93
+ rescue StandardError => e
94
+ e.message
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Languages
6
+ def list_languages(query = {})
7
+ request = Web::Request.new(
8
+ connection,
9
+ :get,
10
+ "#{config.target_api_url}/languages",
11
+ { params: query }
12
+ )
13
+ Web::SendRequest.new(request).perform
14
+ end
15
+
16
+ def add_custom_language(query = {})
17
+ request = Web::Request.new(
18
+ connection,
19
+ :post,
20
+ "#{config.target_api_url}/languages",
21
+ { params: query }
22
+ )
23
+ Web::SendRequest.new(request).perform
24
+ end
25
+
26
+ def get_language(language_id = nil)
27
+ language_id || raise_parameter_is_required_error(:language_id)
28
+
29
+ request = Web::Request.new(
30
+ connection,
31
+ :get,
32
+ "#{config.target_api_url}/languages/#{language_id}"
33
+ )
34
+ Web::SendRequest.new(request).perform
35
+ end
36
+
37
+ def delete_custom_language(language_id = nil)
38
+ language_id || raise_parameter_is_required_error(:language_id)
39
+
40
+ request = Web::Request.new(
41
+ connection,
42
+ :delete,
43
+ "#{config.target_api_url}/languages/#{language_id}"
44
+ )
45
+ Web::SendRequest.new(request).perform
46
+ end
47
+
48
+ def edit_custom_language(language_id = nil, query = {})
49
+ language_id || raise_parameter_is_required_error(:language_id)
50
+
51
+ request = Web::Request.new(
52
+ connection,
53
+ :patch,
54
+ "#{config.target_api_url}/languages/#{language_id}",
55
+ { params: query }
56
+ )
57
+ Web::SendRequest.new(request).perform
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module MachineTranslationEngines
6
+ def list_mts(query = {})
7
+ request = Web::Request.new(
8
+ connection,
9
+ :get,
10
+ "#{config.target_api_url}/mts",
11
+ { params: query }
12
+ )
13
+ Web::SendRequest.new(request).perform
14
+ end
15
+
16
+ def get_mt(mt_id = nil)
17
+ mt_id || raise_parameter_is_required_error(:mt_id)
18
+
19
+ request = Web::Request.new(
20
+ connection,
21
+ :get,
22
+ "#{config.target_api_url}/mts/#{mt_id}"
23
+ )
24
+ Web::SendRequest.new(request).perform
25
+ end
26
+
27
+ def translate_via_mt(mt_id = nil, query = {})
28
+ mt_id || raise_parameter_is_required_error(:mt_id)
29
+
30
+ request = Web::Request.new(
31
+ connection,
32
+ :post,
33
+ "#{config.target_api_url}/mts/#{mt_id}/translations",
34
+ { params: query }
35
+ )
36
+ Web::SendRequest.new(request).perform
37
+ end
38
+
39
+ # -- For Enterprise mode only --
40
+
41
+ def edit_mt(mt_id = nil, query = {})
42
+ enterprise_mode? || raise_only_for_enterprise_mode_error
43
+ mt_id || raise_parameter_is_required_error(:mt_id)
44
+
45
+ request = Web::Request.new(
46
+ connection,
47
+ :patch,
48
+ "#{config.target_api_url}/mts/#{mt_id}",
49
+ { params: query }
50
+ )
51
+ Web::SendRequest.new(request).perform
52
+ end
53
+
54
+ def add_mt(query = {})
55
+ enterprise_mode? || raise_only_for_enterprise_mode_error
56
+
57
+ request = Web::Request.new(
58
+ connection,
59
+ :post,
60
+ "#{config.target_api_url}/mts",
61
+ { params: query }
62
+ )
63
+ Web::SendRequest.new(request).perform
64
+ end
65
+
66
+ def delete_mt(mt_id = nil)
67
+ enterprise_mode? || raise_only_for_enterprise_mode_error
68
+ mt_id || raise_parameter_is_required_error(:mt_id)
69
+
70
+ request = Web::Request.new(
71
+ connection,
72
+ :delete,
73
+ "#{config.target_api_url}/mts/#{mt_id}"
74
+ )
75
+ Web::SendRequest.new(request).perform
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,124 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Projects
6
+ def list_projects(query = {})
7
+ request = Web::Request.new(
8
+ connection,
9
+ :get,
10
+ "#{config.target_api_url}/projects",
11
+ { params: query }
12
+ )
13
+ Web::SendRequest.new(request).perform
14
+ end
15
+
16
+ def add_project(query = {})
17
+ request = Web::Request.new(
18
+ connection,
19
+ :post,
20
+ "#{config.target_api_url}/projects",
21
+ { params: query }
22
+ )
23
+ Web::SendRequest.new(request).perform
24
+ end
25
+
26
+ def get_project(project_id = nil)
27
+ project_id || raise_parameter_is_required_error(:project_id)
28
+
29
+ request = Web::Request.new(
30
+ connection,
31
+ :get,
32
+ "#{config.target_api_url}/projects/#{project_id}"
33
+ )
34
+ Web::SendRequest.new(request).perform
35
+ end
36
+
37
+ def delete_project(project_id = nil)
38
+ project_id || raise_parameter_is_required_error(:project_id)
39
+
40
+ request = Web::Request.new(
41
+ connection,
42
+ :delete,
43
+ "#{config.target_api_url}/projects/#{project_id}"
44
+ )
45
+ Web::SendRequest.new(request).perform
46
+ end
47
+
48
+ def edit_project(project_id = nil, query = {})
49
+ project_id || raise_parameter_is_required_error(:project_id)
50
+
51
+ request = Web::Request.new(
52
+ connection,
53
+ :patch,
54
+ "#{config.target_api_url}/projects/#{project_id}",
55
+ { params: query }
56
+ )
57
+ Web::SendRequest.new(request).perform
58
+ end
59
+
60
+ # -- For Enterprise mode only --
61
+
62
+ def list_groups(query = {})
63
+ enterprise_mode? || raise_only_for_enterprise_mode_error
64
+
65
+ request = Web::Request.new(
66
+ connection,
67
+ :get,
68
+ "#{config.target_api_url}/groups",
69
+ { params: query }
70
+ )
71
+ Web::SendRequest.new(request).perform
72
+ end
73
+
74
+ def add_group(query = {})
75
+ enterprise_mode? || raise_only_for_enterprise_mode_error
76
+
77
+ request = Web::Request.new(
78
+ connection,
79
+ :post,
80
+ "#{config.target_api_url}/groups",
81
+ { params: query }
82
+ )
83
+ Web::SendRequest.new(request).perform
84
+ end
85
+
86
+ def get_group(group_id = nil)
87
+ enterprise_mode? || raise_only_for_enterprise_mode_error
88
+ group_id || raise_parameter_is_required_error(:group_id)
89
+
90
+ request = Web::Request.new(
91
+ connection,
92
+ :get,
93
+ "#{config.target_api_url}/groups/#{group_id}"
94
+ )
95
+ Web::SendRequest.new(request).perform
96
+ end
97
+
98
+ def delete_group(group_id = nil)
99
+ enterprise_mode? || raise_only_for_enterprise_mode_error
100
+ group_id || raise_parameter_is_required_error(:group_id)
101
+
102
+ request = Web::Request.new(
103
+ connection,
104
+ :delete,
105
+ "#{config.target_api_url}/groups/#{group_id}"
106
+ )
107
+ Web::SendRequest.new(request).perform
108
+ end
109
+
110
+ def edit_group(group_id = nil, query = {})
111
+ enterprise_mode? || raise_only_for_enterprise_mode_error
112
+ group_id || raise_parameter_is_required_error(:group_id)
113
+
114
+ request = Web::Request.new(
115
+ connection,
116
+ :patch,
117
+ "#{config.target_api_url}/groups/#{group_id}",
118
+ { params: query }
119
+ )
120
+ Web::SendRequest.new(request).perform
121
+ end
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Reports
6
+ def generate_report(query = {}, project_id = config.project_id)
7
+ project_id || raise_project_id_is_required_error
8
+
9
+ request = Web::Request.new(
10
+ connection,
11
+ :post,
12
+ "#{config.target_api_url}/projects/#{project_id}/reports",
13
+ { params: query }
14
+ )
15
+ Web::SendRequest.new(request).perform
16
+ end
17
+
18
+ def check_report_generation_status(report_id = nil, project_id = config.project_id)
19
+ report_id || raise_parameter_is_required_error(:report_id)
20
+ project_id || raise_project_id_is_required_error
21
+
22
+ request = Web::Request.new(
23
+ connection,
24
+ :get,
25
+ "#{config.target_api_url}/projects/#{project_id}/reports/#{report_id}"
26
+ )
27
+ Web::SendRequest.new(request).perform
28
+ end
29
+
30
+ def download_report(report_id = nil, destination = nil, project_id = config.project_id)
31
+ report_id || raise_parameter_is_required_error(:report_id)
32
+ project_id || raise_project_id_is_required_error
33
+
34
+ request = Web::Request.new(
35
+ connection,
36
+ :get,
37
+ "#{config.target_api_url}/projects/#{project_id}/reports/#{report_id}/download"
38
+ )
39
+ Web::SendRequest.new(request, destination).perform
40
+ end
41
+
42
+ # -- For Enterprise mode only --
43
+
44
+ def generate_group_report(group_id = nil, query = {})
45
+ enterprise_mode? || raise_only_for_enterprise_mode_error
46
+ group_id || raise_parameter_is_required_error(:group_id)
47
+
48
+ request = Web::Request.new(
49
+ connection,
50
+ :post,
51
+ "#{config.target_api_url}/groups/#{group_id}/reports",
52
+ { params: query }
53
+ )
54
+ Web::SendRequest.new(request).perform
55
+ end
56
+
57
+ def check_group_report_generation_status(group_id = nil, report_id = nil)
58
+ enterprise_mode? || raise_only_for_enterprise_mode_error
59
+ group_id || raise_parameter_is_required_error(:group_id)
60
+ report_id || raise_parameter_is_required_error(:report_id)
61
+
62
+ request = Web::Request.new(
63
+ connection,
64
+ :get,
65
+ "#{config.target_api_url}/groups/#{group_id}/reports/#{report_id}"
66
+ )
67
+ Web::SendRequest.new(request).perform
68
+ end
69
+
70
+ def download_group_report(group_id = nil, report_id = nil, destination = nil)
71
+ enterprise_mode? || raise_only_for_enterprise_mode_error
72
+ group_id || raise_parameter_is_required_error(:group_id)
73
+ report_id || raise_parameter_is_required_error(:report_id)
74
+
75
+ request = Web::Request.new(
76
+ connection,
77
+ :get,
78
+ "#{config.target_api_url}/groups/#{group_id}/reports/#{report_id}/download"
79
+ )
80
+ Web::SendRequest.new(request, destination).perform
81
+ end
82
+
83
+ def generate_organization_report(query = {})
84
+ enterprise_mode? || raise_only_for_enterprise_mode_error
85
+
86
+ request = Web::Request.new(
87
+ connection,
88
+ :post,
89
+ "#{config.target_api_url}/reports",
90
+ { params: query }
91
+ )
92
+ Web::SendRequest.new(request).perform
93
+ end
94
+
95
+ def check_organization_report_generation_status(report_id = nil)
96
+ enterprise_mode? || raise_only_for_enterprise_mode_error
97
+ report_id || raise_parameter_is_required_error(:report_id)
98
+
99
+ request = Web::Request.new(
100
+ connection,
101
+ :get,
102
+ "#{config.target_api_url}/reports/#{report_id}"
103
+ )
104
+ Web::SendRequest.new(request).perform
105
+ end
106
+
107
+ def download_organization_report(report_id = nil, destination = nil)
108
+ enterprise_mode? || raise_only_for_enterprise_mode_error
109
+ report_id || raise_parameter_is_required_error(:report_id)
110
+
111
+ request = Web::Request.new(
112
+ connection,
113
+ :get,
114
+ "#{config.target_api_url}/reports/#{report_id}/download"
115
+ )
116
+ Web::SendRequest.new(request, destination).perform
117
+ end
118
+ end
119
+ end
120
+ end