crowdin-api 0.6.0 → 1.2.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build-and-publish.yml +30 -0
  3. data/.github/workflows/test-and-lint.yml +31 -0
  4. data/.gitignore +12 -0
  5. data/.rspec +2 -0
  6. data/.rubocop.yml +5 -0
  7. data/.rubocop_todo.yml +146 -0
  8. data/CODE_OF_CONDUCT.md +128 -0
  9. data/CONTRIBUTING.md +71 -0
  10. data/Gemfile +5 -0
  11. data/LICENSE +1 -1
  12. data/README.md +120 -280
  13. data/Rakefile +19 -0
  14. data/bin/crowdin-console +54 -0
  15. data/bin/setup +6 -0
  16. data/crowdin-api.gemspec +33 -0
  17. data/lib/crowdin-api/api-resources/dictionaries.rb +34 -0
  18. data/lib/crowdin-api/api-resources/distributions.rb +99 -0
  19. data/lib/crowdin-api/api-resources/glossaries.rb +217 -0
  20. data/lib/crowdin-api/api-resources/labels.rb +117 -0
  21. data/lib/crowdin-api/api-resources/languages.rb +82 -0
  22. data/lib/crowdin-api/api-resources/machine_translation_engines.rb +74 -0
  23. data/lib/crowdin-api/api-resources/projects.rb +148 -0
  24. data/lib/crowdin-api/api-resources/reports.rb +138 -0
  25. data/lib/crowdin-api/api-resources/screenshots.rb +186 -0
  26. data/lib/crowdin-api/api-resources/source_files.rb +304 -0
  27. data/lib/crowdin-api/api-resources/source_strings.rb +74 -0
  28. data/lib/crowdin-api/api-resources/storages.rb +106 -0
  29. data/lib/crowdin-api/api-resources/string_comments.rb +73 -0
  30. data/lib/crowdin-api/api-resources/string_translations.rb +220 -0
  31. data/lib/crowdin-api/api-resources/tasks.rb +113 -0
  32. data/lib/crowdin-api/api-resources/teams.rb +144 -0
  33. data/lib/crowdin-api/api-resources/translation_memory.rb +145 -0
  34. data/lib/crowdin-api/api-resources/translation_status.rb +89 -0
  35. data/lib/crowdin-api/api-resources/translations.rb +161 -0
  36. data/lib/crowdin-api/api-resources/users.rb +129 -0
  37. data/lib/crowdin-api/api-resources/vendors.rb +21 -0
  38. data/lib/crowdin-api/api-resources/webhooks.rb +73 -0
  39. data/lib/crowdin-api/api-resources/workflows.rb +62 -0
  40. data/lib/crowdin-api/client/client.rb +95 -0
  41. data/lib/crowdin-api/client/configuration.rb +48 -0
  42. data/lib/crowdin-api/client/version.rb +7 -0
  43. data/lib/crowdin-api/core/errors.rb +8 -0
  44. data/lib/crowdin-api/core/errors_raisers.rb +39 -0
  45. data/lib/crowdin-api/core/request.rb +118 -0
  46. data/lib/crowdin-api/core/utils.rb +10 -0
  47. data/lib/crowdin-api.rb +39 -126
  48. data/spec/client/client-instance_spec.rb +14 -0
  49. data/spec/client/configuration-instance_spec.rb +72 -0
  50. data/spec/spec_helper.rb +9 -0
  51. metadata +130 -47
  52. data/lib/crowdin-api/errors.rb +0 -23
  53. data/lib/crowdin-api/methods.rb +0 -452
  54. data/lib/crowdin-api/version.rb +0 -5
@@ -0,0 +1,148 @@
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
+ self,
9
+ :get,
10
+ '/projects',
11
+ query
12
+ )
13
+
14
+ request.perform
15
+ end
16
+
17
+ def add_project(query = {})
18
+ request = Web::Request.new(
19
+ self,
20
+ :post,
21
+ '/projects',
22
+ query
23
+ )
24
+
25
+ request.perform
26
+ end
27
+
28
+ def get_project(project_id = nil)
29
+ project_id || raise_parameter_is_required_error(:project_id)
30
+
31
+ request = Web::Request.new(
32
+ self,
33
+ :get,
34
+ "/projects/#{project_id}"
35
+ )
36
+
37
+ request.perform
38
+ end
39
+
40
+ def delete_project(project_id = nil)
41
+ project_id || raise_parameter_is_required_error(:project_id)
42
+
43
+ request = Web::Request.new(
44
+ self,
45
+ :delete,
46
+ "/projects/#{project_id}"
47
+ )
48
+
49
+ request.perform
50
+ end
51
+
52
+ #
53
+ # Edit project.
54
+ #
55
+ # === Parameters
56
+ #
57
+ # * +:projectId+ [Integer] - Project Identifier. Get via list_projects. Can be initialized with the Crowdin Client
58
+ # * +:value+ [String] - String or Array of strings.
59
+ # * +:op+ [String] - Path operation to perform.
60
+ # * +:projectId+ [String <json-pointer>] - Enum, for instance '/name'. Full list you can see on the developers site.
61
+ #
62
+ # === Example
63
+ #
64
+ # crowdin.edit_project(project_id, [{op: 'replace', path: '/name', value: 'your_new_project_name'}])
65
+ #
66
+ def edit_project(project_id = nil, query = {})
67
+ project_id || raise_parameter_is_required_error(:project_id)
68
+
69
+ request = Web::Request.new(
70
+ self,
71
+ :patch,
72
+ "/projects/#{project_id}",
73
+ query
74
+ )
75
+
76
+ request.perform
77
+ end
78
+
79
+ # -- For Enterprise mode only --
80
+
81
+ def list_groups(query = {})
82
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
83
+
84
+ request = Web::Request.new(
85
+ self,
86
+ :get,
87
+ '/groups',
88
+ query
89
+ )
90
+
91
+ request.perform
92
+ end
93
+
94
+ def add_group(query = {})
95
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
96
+
97
+ request = Web::Request.new(
98
+ self,
99
+ :post,
100
+ '/groups',
101
+ query
102
+ )
103
+
104
+ request.perform
105
+ end
106
+
107
+ def get_group(group_id = nil)
108
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
109
+ group_id || raise_parameter_is_required_error(:group_id)
110
+
111
+ request = Web::Request.new(
112
+ self,
113
+ :get,
114
+ "/groups/#{group_id}"
115
+ )
116
+
117
+ request.perform
118
+ end
119
+
120
+ def delete_group(group_id = nil)
121
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
122
+ group_id || raise_parameter_is_required_error(:group_id)
123
+
124
+ request = Web::Request.new(
125
+ self,
126
+ :delete,
127
+ "/groups/#{group_id}"
128
+ )
129
+
130
+ request.perform
131
+ end
132
+
133
+ def edit_group(group_id = nil, query = {})
134
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
135
+ group_id || raise_parameter_is_required_error(:group_id)
136
+
137
+ request = Web::Request.new(
138
+ self,
139
+ :patch,
140
+ "/groups/#{group_id}",
141
+ query
142
+ )
143
+
144
+ request.perform
145
+ end
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,138 @@
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
+ self,
11
+ :post,
12
+ "/projects/#{project_id}/reports",
13
+ query
14
+ )
15
+
16
+ request.perform
17
+ end
18
+
19
+ def check_report_generation_status(report_id = nil, project_id = config.project_id)
20
+ report_id || raise_parameter_is_required_error(:report_id)
21
+ project_id || raise_project_id_is_required_error
22
+
23
+ request = Web::Request.new(
24
+ self,
25
+ :get,
26
+ "/projects/#{project_id}/reports/#{report_id}"
27
+ )
28
+
29
+ request.perform
30
+ end
31
+
32
+ def download_report(report_id = nil, destination = nil, project_id = config.project_id)
33
+ report_id || raise_parameter_is_required_error(:report_id)
34
+ project_id || raise_project_id_is_required_error
35
+
36
+ request = Web::Request.new(
37
+ self,
38
+ :get,
39
+ "/projects/#{project_id}/reports/#{report_id}/download",
40
+ {},
41
+ {},
42
+ destination
43
+ )
44
+
45
+ request.perform
46
+ end
47
+
48
+ # -- For Enterprise mode only --
49
+
50
+ def generate_group_report(group_id = nil, query = {})
51
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
52
+ group_id || raise_parameter_is_required_error(:group_id)
53
+
54
+ request = Web::Request.new(
55
+ self,
56
+ :post,
57
+ "/groups/#{group_id}/reports",
58
+ query
59
+ )
60
+
61
+ request.perform
62
+ end
63
+
64
+ def check_group_report_generation_status(group_id = nil, report_id = nil)
65
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
66
+ group_id || raise_parameter_is_required_error(:group_id)
67
+ report_id || raise_parameter_is_required_error(:report_id)
68
+
69
+ request = Web::Request.new(
70
+ self,
71
+ :get,
72
+ "/groups/#{group_id}/reports/#{report_id}"
73
+ )
74
+
75
+ request.perform
76
+ end
77
+
78
+ def download_group_report(group_id = nil, report_id = nil, destination = nil)
79
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
80
+ group_id || raise_parameter_is_required_error(:group_id)
81
+ report_id || raise_parameter_is_required_error(:report_id)
82
+
83
+ request = Web::Request.new(
84
+ self,
85
+ :get,
86
+ "/groups/#{group_id}/reports/#{report_id}/download",
87
+ {},
88
+ {},
89
+ destination
90
+ )
91
+
92
+ request.perform
93
+ end
94
+
95
+ def generate_organization_report(query = {})
96
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
97
+
98
+ request = Web::Request.new(
99
+ self,
100
+ :post,
101
+ '/reports',
102
+ query
103
+ )
104
+
105
+ request.perform
106
+ end
107
+
108
+ def check_organization_report_generation_status(report_id = nil)
109
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
110
+ report_id || raise_parameter_is_required_error(:report_id)
111
+
112
+ request = Web::Request.new(
113
+ self,
114
+ :get,
115
+ "/reports/#{report_id}"
116
+ )
117
+
118
+ request.perform
119
+ end
120
+
121
+ def download_organization_report(report_id = nil, destination = nil)
122
+ config.enterprise_mode? || raise_only_for_enterprise_mode_error
123
+ report_id || raise_parameter_is_required_error(:report_id)
124
+
125
+ request = Web::Request.new(
126
+ self,
127
+ :get,
128
+ "/reports/#{report_id}/download",
129
+ {},
130
+ {},
131
+ destination
132
+ )
133
+
134
+ request.perform
135
+ end
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,186 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Crowdin
4
+ module ApiResources
5
+ module Screenshots
6
+ def list_screenshots(query = {}, project_id = config.project_id)
7
+ project_id || raise_project_id_is_required_error
8
+
9
+ request = Web::Request.new(
10
+ self,
11
+ :get,
12
+ "/projects/#{project_id}/screenshots",
13
+ query
14
+ )
15
+
16
+ request.perform
17
+ end
18
+
19
+ def add_screenshot(query = {}, project_id = config.project_id)
20
+ project_id || raise_project_id_is_required_error
21
+
22
+ request = Web::Request.new(
23
+ self,
24
+ :post,
25
+ "/projects/#{project_id}/screenshots",
26
+ query
27
+ )
28
+
29
+ request.perform
30
+ end
31
+
32
+ def get_screenshot(screenshot_id = nil, project_id = config.project_id)
33
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
34
+ project_id || raise_project_id_is_required_error
35
+
36
+ request = Web::Request.new(
37
+ self,
38
+ :get,
39
+ "/projects/#{project_id}/screenshots/#{screenshot_id}"
40
+ )
41
+
42
+ request.perform
43
+ end
44
+
45
+ def update_screenshot(screenshot_id = nil, query = {}, project_id = config.project_id)
46
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
47
+ project_id || raise_project_id_is_required_error
48
+
49
+ request = Web::Request.new(
50
+ self,
51
+ :put,
52
+ "/projects/#{project_id}/screenshots/#{screenshot_id}",
53
+ query
54
+ )
55
+
56
+ request.perform
57
+ end
58
+
59
+ def delete_screenshot(screenshot_id = nil, project_id = config.project_id)
60
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
61
+ project_id || raise_project_id_is_required_error
62
+
63
+ request = Web::Request.new(
64
+ self,
65
+ :delete,
66
+ "/projects/#{project_id}/screenshots/#{screenshot_id}"
67
+ )
68
+
69
+ request.perform
70
+ end
71
+
72
+ def edit_screenshot(screenshot_id = nil, query = {}, project_id = config.project_id)
73
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
74
+ project_id || raise_project_id_is_required_error
75
+
76
+ request = Web::Request.new(
77
+ self,
78
+ :patch,
79
+ "/projects/#{project_id}/screenshots/#{screenshot_id}",
80
+ query
81
+ )
82
+
83
+ request.perform
84
+ end
85
+
86
+ def list_tags(screenshot_id = nil, query = {}, project_id = config.project_id)
87
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
88
+ project_id || raise_project_id_is_required_error
89
+
90
+ request = Web::Request.new(
91
+ self,
92
+ :get,
93
+ "/projects/#{project_id}/screenshots/#{screenshot_id}/tags",
94
+ query
95
+ )
96
+
97
+ request.perform
98
+ end
99
+
100
+ # Auto tag
101
+ def replace_tags(screenshot_id = nil, query = {}, project_id = config.project_id)
102
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
103
+ project_id || raise_project_id_is_required_error
104
+
105
+ request = Web::Request.new(
106
+ self,
107
+ :put,
108
+ "/projects/#{project_id}/screenshots/#{screenshot_id}/tags",
109
+ query
110
+ )
111
+
112
+ request.perform
113
+ end
114
+
115
+ def add_tag(screenshot_id = nil, query = {}, project_id = config.project_id)
116
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
117
+ project_id || raise_project_id_is_required_error
118
+
119
+ request = Web::Request.new(
120
+ self,
121
+ :post,
122
+ "/projects/#{project_id}/screenshots/#{screenshot_id}/tags",
123
+ query
124
+ )
125
+
126
+ request.perform
127
+ end
128
+
129
+ def clear_tags(screenshot_id = nil, project_id = config.project_id)
130
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
131
+ project_id || raise_project_id_is_required_error
132
+
133
+ request = Web::Request.new(
134
+ self,
135
+ :delete,
136
+ "/projects/#{project_id}/screenshots/#{screenshot_id}/tags"
137
+ )
138
+
139
+ request.perform
140
+ end
141
+
142
+ def get_tag(screenshot_id = nil, tag_id = nil, project_id = config.project_id)
143
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
144
+ tag_id || raise_parameter_is_required_error(:tag_id)
145
+ project_id || raise_project_id_is_required_error
146
+
147
+ request = Web::Request.new(
148
+ self,
149
+ :get,
150
+ "/projects/#{project_id}/screenshots/#{screenshot_id}/tags/#{tag_id}"
151
+ )
152
+
153
+ request.perform
154
+ end
155
+
156
+ def delete_tag(screenshot_id = nil, tag_id = nil, project_id = config.project_id)
157
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
158
+ tag_id || raise_parameter_is_required_error(:tag_id)
159
+ project_id || raise_project_id_is_required_error
160
+
161
+ request = Web::Request.new(
162
+ self,
163
+ :delete,
164
+ "/projects/#{project_id}/screenshots/#{screenshot_id}/tags/#{tag_id}"
165
+ )
166
+
167
+ request.perform
168
+ end
169
+
170
+ def edit_tag(screenshot_id = nil, tag_id = nil, query = {}, project_id = config.project_id)
171
+ screenshot_id || raise_parameter_is_required_error(:screenshot_id)
172
+ tag_id || raise_parameter_is_required_error(:tag_id)
173
+ project_id || raise_project_id_is_required_error
174
+
175
+ request = Web::Request.new(
176
+ self,
177
+ :patch,
178
+ "/projects/#{project_id}/screenshots/#{screenshot_id}/tags/#{tag_id}",
179
+ query
180
+ )
181
+
182
+ request.perform
183
+ end
184
+ end
185
+ end
186
+ end