crowdin-api 1.2.0 → 1.4.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_todo.yml +102 -43
- data/README.md +37 -6
- data/bin/crowdin-console +1 -1
- data/crowdin-api.gemspec +1 -2
- data/lib/crowdin-api/api_resources/bundles.rb +81 -0
- data/lib/crowdin-api/{api-resources → api_resources}/dictionaries.rb +8 -10
- data/lib/crowdin-api/{api-resources → api_resources}/distributions.rb +25 -32
- data/lib/crowdin-api/{api-resources → api_resources}/glossaries.rb +64 -82
- data/lib/crowdin-api/{api-resources → api_resources}/labels.rb +28 -47
- data/lib/crowdin-api/api_resources/languages.rb +61 -0
- data/lib/crowdin-api/api_resources/machine_translation_engines.rb +79 -0
- data/lib/crowdin-api/api_resources/projects.rb +124 -0
- data/lib/crowdin-api/api_resources/reports.rb +120 -0
- data/lib/crowdin-api/{api-resources → api_resources}/screenshots.rb +47 -61
- data/lib/crowdin-api/{api-resources → api_resources}/source_files.rb +68 -131
- data/lib/crowdin-api/{api-resources → api_resources}/source_strings.rb +19 -24
- data/lib/crowdin-api/api_resources/storages.rb +54 -0
- data/lib/crowdin-api/{api-resources → api_resources}/string_comments.rb +18 -23
- data/lib/crowdin-api/{api-resources → api_resources}/string_translations.rb +64 -91
- data/lib/crowdin-api/{api-resources → api_resources}/tasks.rb +30 -41
- data/lib/crowdin-api/api_resources/teams.rb +135 -0
- data/lib/crowdin-api/{api-resources → api_resources}/translation_memory.rb +38 -52
- data/lib/crowdin-api/{api-resources → api_resources}/translation_status.rb +24 -30
- data/lib/crowdin-api/{api-resources → api_resources}/translations.rb +41 -58
- data/lib/crowdin-api/api_resources/users.rb +161 -0
- data/lib/crowdin-api/api_resources/vendors.rb +21 -0
- data/lib/crowdin-api/{api-resources → api_resources}/webhooks.rb +19 -24
- data/lib/crowdin-api/api_resources/workflows.rb +59 -0
- data/lib/crowdin-api/client/client.rb +134 -39
- data/lib/crowdin-api/client/configuration.rb +12 -12
- data/lib/crowdin-api/client/version.rb +1 -1
- data/lib/crowdin-api/core/errors.rb +1 -0
- data/lib/crowdin-api/core/errors_raisers.rb +1 -1
- data/lib/crowdin-api/core/fetch_all_extensions.rb +14 -0
- data/lib/crowdin-api/core/request.rb +50 -90
- data/lib/crowdin-api/core/send_request.rb +67 -0
- data/lib/crowdin-api.rb +18 -24
- data/spec/api_resources/bundles_spec.rb +61 -0
- data/spec/api_resources/dictionaries_spec.rb +23 -0
- data/spec/api_resources/distributions_spec.rb +71 -0
- data/spec/api_resources/glossaries_spec.rb +167 -0
- data/spec/api_resources/labels_spec.rb +71 -0
- data/spec/api_resources/languages_spec.rb +51 -0
- data/spec/api_resources/machine_translation_engines_spec.rb +63 -0
- data/spec/api_resources/projects_spec.rb +215 -0
- data/spec/api_resources/reports_spec.rb +95 -0
- data/spec/api_resources/screenshots_spec.rb +134 -0
- data/spec/api_resources/source_files_spec.rb +184 -0
- data/spec/api_resources/source_strings_spec.rb +51 -0
- data/spec/api_resources/storages_spec.rb +41 -0
- data/spec/api_resources/string_comments_spec.rb +51 -0
- data/spec/api_resources/string_translations_spec.rb +141 -0
- data/spec/api_resources/tasks_spec.rb +79 -0
- data/spec/api_resources/teams_spec.rb +100 -0
- data/spec/api_resources/translation_memory_spec.rb +114 -0
- data/spec/api_resources/translation_status_spec.rb +61 -0
- data/spec/api_resources/translations_spec.rb +107 -0
- data/spec/api_resources/users_spec.rb +117 -0
- data/spec/api_resources/vendors_spec.rb +13 -0
- data/spec/api_resources/webhooks_spec.rb +51 -0
- data/spec/api_resources/workflows_spec.rb +41 -0
- data/spec/spec_helper.rb +23 -2
- data/spec/unit/client_spec.rb +85 -0
- metadata +67 -43
- data/bin/setup +0 -6
- data/lib/crowdin-api/api-resources/languages.rb +0 -82
- data/lib/crowdin-api/api-resources/machine_translation_engines.rb +0 -74
- data/lib/crowdin-api/api-resources/projects.rb +0 -148
- data/lib/crowdin-api/api-resources/reports.rb +0 -138
- data/lib/crowdin-api/api-resources/storages.rb +0 -106
- data/lib/crowdin-api/api-resources/teams.rb +0 -144
- data/lib/crowdin-api/api-resources/users.rb +0 -129
- data/lib/crowdin-api/api-resources/vendors.rb +0 -21
- data/lib/crowdin-api/api-resources/workflows.rb +0 -62
- data/lib/crowdin-api/core/utils.rb +0 -10
- data/spec/client/client-instance_spec.rb +0 -14
- data/spec/client/configuration-instance_spec.rb +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 283ff1afb3a211be3a2c06c0417decc9b6ff3fcca1e8c61c78523708c428d286
|
4
|
+
data.tar.gz: e6f02c86c39702e00eacc0908c6dec0a93783a7a4038e2eddbc634ca2d4887d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca47c68a8c81d3de24a5ae913155ece611ae9400fdbea47933355d6043036c269d15ab067df037afcdc4aae1fa982991f49bee4603fb5f6816a783dd6d7c30b1
|
7
|
+
data.tar.gz: dcf04302fb3c882a81f630476b4e7dce4cf1e98320da04615d3d393fb4bdfadb9bc67aec732bee227321cd3af7cbc095363f0f0c22a903a5f954acb6101a243a
|
data/.rubocop_todo.yml
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2022-
|
3
|
+
# on 2022-08-12 15:14:54 UTC using RuboCop version 1.26.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
9
|
# Offense count: 1
|
10
|
-
#
|
10
|
+
# This cop supports safe auto-correction (--auto-correct).
|
11
11
|
# Configuration parameters: Include.
|
12
12
|
# Include: **/*.gemspec
|
13
13
|
Gemspec/RequireMFA:
|
@@ -21,8 +21,24 @@ Gemspec/RequiredRubyVersion:
|
|
21
21
|
Exclude:
|
22
22
|
- 'crowdin-api.gemspec'
|
23
23
|
|
24
|
+
# Offense count: 2
|
25
|
+
# This cop supports safe auto-correction (--auto-correct).
|
26
|
+
# Configuration parameters: EnforcedStyle, IndentOneStep, IndentationWidth.
|
27
|
+
# SupportedStyles: case, end
|
28
|
+
Layout/CaseIndentation:
|
29
|
+
Exclude:
|
30
|
+
- 'lib/crowdin-api/client/client.rb'
|
31
|
+
|
32
|
+
# Offense count: 1
|
33
|
+
# This cop supports safe auto-correction (--auto-correct).
|
34
|
+
# Configuration parameters: EnforcedStyleAlignWith, Severity.
|
35
|
+
# SupportedStylesAlignWith: keyword, variable, start_of_line
|
36
|
+
Layout/EndAlignment:
|
37
|
+
Exclude:
|
38
|
+
- 'lib/crowdin-api/client/client.rb'
|
39
|
+
|
24
40
|
# Offense count: 4
|
25
|
-
#
|
41
|
+
# This cop supports safe auto-correction (--auto-correct).
|
26
42
|
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
|
27
43
|
# SupportedHashRocketStyles: key, separator, table
|
28
44
|
# SupportedColonStyles: key, separator, table
|
@@ -31,115 +47,158 @@ Layout/HashAlignment:
|
|
31
47
|
Exclude:
|
32
48
|
- 'lib/crowdin-api/client/configuration.rb'
|
33
49
|
|
34
|
-
# Offense count:
|
35
|
-
#
|
50
|
+
# Offense count: 14
|
51
|
+
# This cop supports safe auto-correction (--auto-correct).
|
52
|
+
# Configuration parameters: EnforcedStyle.
|
53
|
+
# SupportedStyles: normal, indented_internal_methods
|
54
|
+
Layout/IndentationConsistency:
|
55
|
+
Exclude:
|
56
|
+
- 'lib/crowdin-api/client/client.rb'
|
57
|
+
- 'lib/crowdin-api/core/request.rb'
|
58
|
+
- 'lib/crowdin-api/core/send_request.rb'
|
59
|
+
|
60
|
+
# Offense count: 14
|
61
|
+
# This cop supports safe auto-correction (--auto-correct).
|
62
|
+
# Configuration parameters: Width, IgnoredPatterns.
|
63
|
+
Layout/IndentationWidth:
|
64
|
+
Exclude:
|
65
|
+
- 'lib/crowdin-api/client/client.rb'
|
66
|
+
- 'lib/crowdin-api/core/request.rb'
|
67
|
+
- 'lib/crowdin-api/core/send_request.rb'
|
68
|
+
|
69
|
+
# Offense count: 4
|
70
|
+
# This cop supports safe auto-correction (--auto-correct).
|
36
71
|
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator.
|
37
72
|
# SupportedStylesForExponentOperator: space, no_space
|
38
73
|
Layout/SpaceAroundOperators:
|
39
74
|
Exclude:
|
40
75
|
- 'crowdin-api.gemspec'
|
76
|
+
- 'spec/api_resources/projects_spec.rb'
|
41
77
|
|
42
|
-
# Offense count:
|
78
|
+
# Offense count: 3
|
43
79
|
# Configuration parameters: IgnoredMethods, CountRepeatedAttributes.
|
44
80
|
Metrics/AbcSize:
|
45
|
-
Max:
|
81
|
+
Max: 42
|
46
82
|
|
47
|
-
# Offense count:
|
83
|
+
# Offense count: 46
|
48
84
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
49
85
|
# IgnoredMethods: refine
|
50
86
|
Metrics/BlockLength:
|
51
|
-
Max:
|
87
|
+
Max: 171
|
52
88
|
|
53
|
-
# Offense count:
|
89
|
+
# Offense count: 1
|
90
|
+
# Configuration parameters: CountComments, CountAsOne.
|
91
|
+
Metrics/ClassLength:
|
92
|
+
Max: 101
|
93
|
+
|
94
|
+
# Offense count: 1
|
95
|
+
# Configuration parameters: IgnoredMethods.
|
96
|
+
Metrics/CyclomaticComplexity:
|
97
|
+
Max: 18
|
98
|
+
|
99
|
+
# Offense count: 6
|
54
100
|
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
55
101
|
Metrics/MethodLength:
|
56
|
-
Max:
|
102
|
+
Max: 41
|
57
103
|
|
58
104
|
# Offense count: 8
|
59
105
|
# Configuration parameters: CountComments, CountAsOne.
|
60
106
|
Metrics/ModuleLength:
|
61
|
-
Max:
|
107
|
+
Max: 196
|
62
108
|
|
63
109
|
# Offense count: 2
|
64
|
-
# Configuration parameters: CountKeywordArgs.
|
110
|
+
# Configuration parameters: Max, CountKeywordArgs.
|
65
111
|
Metrics/ParameterLists:
|
66
112
|
MaxOptionalParameters: 4
|
67
|
-
Max: 6
|
68
113
|
|
69
|
-
# Offense count:
|
114
|
+
# Offense count: 1
|
115
|
+
# Configuration parameters: IgnoredMethods.
|
116
|
+
Metrics/PerceivedComplexity:
|
117
|
+
Max: 19
|
118
|
+
|
119
|
+
# Offense count: 1
|
70
120
|
Naming/AccessorMethodName:
|
71
121
|
Exclude:
|
72
|
-
- 'lib/crowdin-api/
|
73
|
-
- 'lib/crowdin-api/core/request.rb'
|
122
|
+
- 'lib/crowdin-api/api_resources/users.rb'
|
74
123
|
|
75
|
-
# Offense count:
|
124
|
+
# Offense count: 1
|
76
125
|
# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
|
77
126
|
# CheckDefinitionPathHierarchyRoots: lib, spec, test, src
|
78
127
|
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
|
79
128
|
Naming/FileName:
|
80
129
|
Exclude:
|
81
130
|
- 'lib/crowdin-api.rb'
|
82
|
-
- 'spec/client/client-instance_spec.rb'
|
83
|
-
- 'spec/client/configuration-instance_spec.rb'
|
84
131
|
|
85
|
-
# Offense count:
|
132
|
+
# Offense count: 2
|
86
133
|
# Configuration parameters: EnforcedStyleForLeadingUnderscores.
|
87
134
|
# SupportedStylesForLeadingUnderscores: disallowed, required, optional
|
88
135
|
Naming/MemoizedInstanceVariableName:
|
89
136
|
Exclude:
|
90
137
|
- 'lib/crowdin-api/client/client.rb'
|
91
138
|
|
92
|
-
# Offense count:
|
93
|
-
#
|
94
|
-
# Configuration parameters: PreferredName.
|
95
|
-
Naming/RescuedExceptionsVariableName:
|
96
|
-
Exclude:
|
97
|
-
- 'lib/crowdin-api/core/request.rb'
|
98
|
-
|
99
|
-
# Offense count: 8
|
100
|
-
# Cop supports --auto-correct.
|
139
|
+
# Offense count: 7
|
140
|
+
# This cop supports safe auto-correction (--auto-correct).
|
101
141
|
# Configuration parameters: EnforcedStyle.
|
102
142
|
# SupportedStyles: separated, grouped
|
103
143
|
Style/AccessorGrouping:
|
104
144
|
Exclude:
|
105
|
-
- 'lib/crowdin-api/client/client.rb'
|
106
145
|
- 'lib/crowdin-api/client/configuration.rb'
|
146
|
+
- 'lib/crowdin-api/core/request.rb'
|
107
147
|
|
108
148
|
# Offense count: 2
|
109
|
-
#
|
149
|
+
# This cop supports unsafe auto-correction (--auto-correct-all).
|
110
150
|
Style/CollectionCompact:
|
111
151
|
Exclude:
|
112
152
|
- 'lib/crowdin-api/core/request.rb'
|
113
153
|
|
114
|
-
# Offense count:
|
154
|
+
# Offense count: 27
|
115
155
|
# Configuration parameters: AllowedConstants.
|
116
156
|
Style/Documentation:
|
117
157
|
Enabled: false
|
118
158
|
|
119
159
|
# Offense count: 1
|
120
|
-
#
|
160
|
+
# This cop supports safe auto-correction (--auto-correct).
|
161
|
+
# Configuration parameters: EnforcedStyle.
|
162
|
+
# SupportedStyles: allowed_in_returns, forbidden
|
163
|
+
Style/DoubleNegation:
|
164
|
+
Exclude:
|
165
|
+
- 'lib/crowdin-api/client/configuration.rb'
|
166
|
+
|
167
|
+
# Offense count: 1
|
168
|
+
# This cop supports safe auto-correction (--auto-correct).
|
121
169
|
# Configuration parameters: EnforcedStyle.
|
122
170
|
# SupportedStyles: always, always_true, never
|
123
171
|
Style/FrozenStringLiteralComment:
|
124
172
|
Exclude:
|
125
173
|
- 'bin/crowdin-console'
|
126
174
|
|
175
|
+
# Offense count: 1
|
176
|
+
# Configuration parameters: MinBodyLength.
|
177
|
+
Style/GuardClause:
|
178
|
+
Exclude:
|
179
|
+
- 'lib/crowdin-api/client/client.rb'
|
180
|
+
|
127
181
|
# Offense count: 1
|
128
182
|
Style/MixinUsage:
|
129
183
|
Exclude:
|
130
184
|
- 'bin/crowdin-console'
|
131
185
|
|
132
|
-
# Offense count:
|
133
|
-
#
|
134
|
-
|
135
|
-
# SupportedStyles: implicit, explicit
|
136
|
-
Style/RescueStandardError:
|
186
|
+
# Offense count: 1
|
187
|
+
# This cop supports safe auto-correction (--auto-correct).
|
188
|
+
Style/RedundantFreeze:
|
137
189
|
Exclude:
|
138
|
-
- 'lib/crowdin-api/
|
139
|
-
- 'lib/crowdin-api/api-resources/string_translations.rb'
|
190
|
+
- 'lib/crowdin-api/core/fetch_all_extensions.rb'
|
140
191
|
|
141
|
-
# Offense count:
|
142
|
-
#
|
192
|
+
# Offense count: 8
|
193
|
+
# This cop supports safe auto-correction (--auto-correct).
|
194
|
+
# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
|
195
|
+
# SupportedStyles: single_quotes, double_quotes
|
196
|
+
Style/StringLiterals:
|
197
|
+
Exclude:
|
198
|
+
- 'spec/api_resources/projects_spec.rb'
|
199
|
+
|
200
|
+
# Offense count: 2
|
201
|
+
# This cop supports safe auto-correction (--auto-correct).
|
143
202
|
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
|
144
203
|
# URISchemes: http, https
|
145
204
|
Layout/LineLength:
|
data/README.md
CHANGED
@@ -27,6 +27,7 @@ For more about Crowdin API v2 see the documentation:
|
|
27
27
|
* [Quick Start](#quick-start)
|
28
28
|
* [Initialization](#initialization)
|
29
29
|
* [Usage](#usage)
|
30
|
+
* [Fetch all records](#fetch-all-records)
|
30
31
|
* [Command-Line Client](#command-line-client)
|
31
32
|
* [Seeking Assistance](#seeking-assistance)
|
32
33
|
* [Contributing](#contributing)
|
@@ -40,7 +41,7 @@ For more about Crowdin API v2 see the documentation:
|
|
40
41
|
Add this line to your application's Gemfile:
|
41
42
|
|
42
43
|
```gemfile
|
43
|
-
gem 'crowdin-api', '~> 1.
|
44
|
+
gem 'crowdin-api', '~> 1.4.0'
|
44
45
|
```
|
45
46
|
|
46
47
|
And then execute:
|
@@ -66,6 +67,7 @@ gem install crowdin-api
|
|
66
67
|
## Quick start
|
67
68
|
|
68
69
|
### Initialization
|
70
|
+
|
69
71
|
```ruby
|
70
72
|
require 'crowdin-api'
|
71
73
|
|
@@ -74,7 +76,7 @@ crowdin = Crowdin::Client.new do |config|
|
|
74
76
|
config.api_token = 'YourApiToken'
|
75
77
|
end
|
76
78
|
|
77
|
-
# Or you can
|
79
|
+
# Or you can initialize Enterprise Client instance by specifying your
|
78
80
|
# organization_domain in config options
|
79
81
|
crowdin = Crowdin::Client.new do |config|
|
80
82
|
config.api_token = 'YourEnterpriseApiToken'
|
@@ -82,7 +84,7 @@ crowdin = Crowdin::Client.new do |config|
|
|
82
84
|
end
|
83
85
|
# Note: we use full specified organization domain if that includes '.com'
|
84
86
|
# config.organization_domain = your_domain -> https://your_domain.api.crowdin.com
|
85
|
-
# config.organization_domain = your_domain.com -> your_domain.com
|
87
|
+
# config.organization_domain = your_domain.com -> https://your_domain.com
|
86
88
|
|
87
89
|
# All supported Crowdin Client config options now:
|
88
90
|
crowdin = Crowdin::Client.new do |config|
|
@@ -121,9 +123,9 @@ projects = crowdin.list_projects(offset: 10, limit: 20)
|
|
121
123
|
project = crowdin.get_project(your_project_id)
|
122
124
|
|
123
125
|
# Edit project
|
124
|
-
project = crowdin.edit_project(project_id, [{op: 'replace',
|
125
|
-
|
126
|
-
|
126
|
+
project = crowdin.edit_project(project_id, [{ op: 'replace',
|
127
|
+
path: '/name',
|
128
|
+
value: 'your_new_project_name' }])
|
127
129
|
|
128
130
|
# Add Storage
|
129
131
|
storage = crowdin.add_storage(File.open('YourFilename.extension', 'r'))
|
@@ -141,6 +143,35 @@ file = crowdin.download_file(your_file_id, your_destination, your_project_id)
|
|
141
143
|
file_revisions = crowdin.list_file_revisions(your_file_id, limit: 10)
|
142
144
|
# or you can specify your project_id
|
143
145
|
file_revisions = crowdin.list_file_revisions(your_file_id, { limit: 10 }, your_project_id)
|
146
|
+
|
147
|
+
# Note: more examples you can find in spec folder
|
148
|
+
```
|
149
|
+
|
150
|
+
### Fetch all records
|
151
|
+
|
152
|
+
There is a possibility to fetch all records from paginatable methods using `fetch_all` method.
|
153
|
+
|
154
|
+
```ruby
|
155
|
+
# FetchAll options:
|
156
|
+
# * limit, Integer, default: 500 | How many records need to load per one request
|
157
|
+
# * offset, Integer, default: 0
|
158
|
+
# * request_delay, Integer (seconds), default: 0 | Delay between requests. To specify a delay in milliseconds use float values like 0.100
|
159
|
+
|
160
|
+
# Examples:
|
161
|
+
|
162
|
+
@crowdin.fetch_all(:list_projects)
|
163
|
+
|
164
|
+
# with options
|
165
|
+
@crowdin.fetch_all(:list_projects, { limit: 10, request_delay: 1 })
|
166
|
+
|
167
|
+
# playing with response per fetch
|
168
|
+
# Note: the block actually don't make any effect to finite result
|
169
|
+
@crowdin.fetch_all(:list_projects, { limit: 10, request_delay: 1 }) { |response| puts response['data'] }
|
170
|
+
|
171
|
+
# also, you could specify a retry configuration to handle some exceptions
|
172
|
+
# fetch all execution will be terminated if response status code is the same as one of the error_messages array value
|
173
|
+
# otherwise, the request will be retried so many times, as indicated at retries_count
|
174
|
+
@crowdin.fetch_all(:list_projects, {}, { request_delay: 2, retries_count: 3, error_messages: ['401'] })
|
144
175
|
```
|
145
176
|
|
146
177
|
### Command-Line Client
|
data/bin/crowdin-console
CHANGED
@@ -12,7 +12,7 @@ require 'optparse'
|
|
12
12
|
#
|
13
13
|
# bundle exec crowdin-console --enable-logger --api-token YOUR_API_TOKEN --project-id YOUR_PROJECT_ID
|
14
14
|
#
|
15
|
-
# or
|
15
|
+
# or Enterprise API:
|
16
16
|
#
|
17
17
|
# bundle exec crowdin-console --enterprise --api-token YOUR_ENTERPRISE_API_TOKEN --organization-domain YOUR_DOMAIN
|
18
18
|
#
|
data/crowdin-api.gemspec
CHANGED
@@ -13,7 +13,6 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.license = 'MIT'
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split("\n")
|
16
|
-
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
16
|
gem.require_paths = ['lib']
|
18
17
|
gem.bindir = 'bin'
|
19
18
|
gem.executables << 'crowdin-console'
|
@@ -25,9 +24,9 @@ Gem::Specification.new do |gem|
|
|
25
24
|
|
26
25
|
gem.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.32'
|
27
26
|
gem.add_development_dependency 'codecov', '~> 0.6.0'
|
27
|
+
gem.add_development_dependency 'pry', '~> 0.14.1'
|
28
28
|
gem.add_development_dependency 'rake', '~> 13.0', '>= 13.0.6'
|
29
29
|
gem.add_development_dependency 'rspec', '~> 3.10'
|
30
30
|
gem.add_development_dependency 'rubocop', '~> 1.23'
|
31
|
-
gem.add_development_dependency 'sinatra', '~> 2.1'
|
32
31
|
gem.add_development_dependency 'webmock', '~> 3.14'
|
33
32
|
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Crowdin
|
4
|
+
module ApiResources
|
5
|
+
module Bundles
|
6
|
+
def list_bundles(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}/bundles",
|
13
|
+
{ params: query }
|
14
|
+
)
|
15
|
+
Web::SendRequest.new(request).perform
|
16
|
+
end
|
17
|
+
|
18
|
+
def add_bundle(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}/bundles",
|
25
|
+
{ params: query }
|
26
|
+
)
|
27
|
+
Web::SendRequest.new(request).perform
|
28
|
+
end
|
29
|
+
|
30
|
+
def get_bundle(bundle_id, project_id = config.project_id)
|
31
|
+
bundle_id || raise_parameter_is_required_error(:bundle_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}/bundles/#{bundle_id}"
|
38
|
+
)
|
39
|
+
Web::SendRequest.new(request).perform
|
40
|
+
end
|
41
|
+
|
42
|
+
def delete_bundle(bundle_id, project_id = config.project_id)
|
43
|
+
bundle_id || raise_parameter_is_required_error(:bundle_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}/bundles/#{bundle_id}"
|
50
|
+
)
|
51
|
+
Web::SendRequest.new(request).perform
|
52
|
+
end
|
53
|
+
|
54
|
+
def edit_bundle(bundle_id, query = {}, project_id = config.project_id)
|
55
|
+
bundle_id || raise_parameter_is_required_error(:bundle_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}/bundles/#{bundle_id}",
|
62
|
+
{ params: query }
|
63
|
+
)
|
64
|
+
Web::SendRequest.new(request).perform
|
65
|
+
end
|
66
|
+
|
67
|
+
def bundle_list_files(bundle_id, query = {}, project_id = config.project_id)
|
68
|
+
bundle_id || raise_parameter_is_required_error(:bundle_id)
|
69
|
+
project_id || raise_project_id_is_required_error
|
70
|
+
|
71
|
+
request = Web::Request.new(
|
72
|
+
connection,
|
73
|
+
:get,
|
74
|
+
"#{config.target_api_url}/projects/#{project_id}/bundles/#{bundle_id}/files",
|
75
|
+
{ params: query }
|
76
|
+
)
|
77
|
+
Web::SendRequest.new(request).perform
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -7,13 +7,12 @@ module Crowdin
|
|
7
7
|
project_id || raise_project_id_is_required_error
|
8
8
|
|
9
9
|
request = Web::Request.new(
|
10
|
-
|
10
|
+
connection,
|
11
11
|
:get,
|
12
|
-
"/projects/#{project_id}/dictionaries",
|
13
|
-
query
|
12
|
+
"#{config.target_api_url}/projects/#{project_id}/dictionaries",
|
13
|
+
{ params: query }
|
14
14
|
)
|
15
|
-
|
16
|
-
request.perform
|
15
|
+
Web::SendRequest.new(request).perform
|
17
16
|
end
|
18
17
|
|
19
18
|
def edit_dictionary(language_id = nil, query = {}, project_id = config.project_id)
|
@@ -21,13 +20,12 @@ module Crowdin
|
|
21
20
|
project_id || raise_project_id_is_required_error
|
22
21
|
|
23
22
|
request = Web::Request.new(
|
24
|
-
|
23
|
+
connection,
|
25
24
|
:patch,
|
26
|
-
"/projects/#{project_id}/dictionaries/#{language_id}",
|
27
|
-
query
|
25
|
+
"#{config.target_api_url}/projects/#{project_id}/dictionaries/#{language_id}",
|
26
|
+
{ params: query }
|
28
27
|
)
|
29
|
-
|
30
|
-
request.perform
|
28
|
+
Web::SendRequest.new(request).perform
|
31
29
|
end
|
32
30
|
end
|
33
31
|
end
|
@@ -7,26 +7,24 @@ module Crowdin
|
|
7
7
|
project_id || raise_project_id_is_required_error
|
8
8
|
|
9
9
|
request = Web::Request.new(
|
10
|
-
|
10
|
+
connection,
|
11
11
|
:get,
|
12
|
-
"/projects/#{project_id}/distributions",
|
13
|
-
query
|
12
|
+
"#{config.target_api_url}/projects/#{project_id}/distributions",
|
13
|
+
{ params: query }
|
14
14
|
)
|
15
|
-
|
16
|
-
request.perform
|
15
|
+
Web::SendRequest.new(request).perform
|
17
16
|
end
|
18
17
|
|
19
18
|
def add_distribution(query = {}, project_id = config.project_id)
|
20
19
|
project_id || raise_project_id_is_required_error
|
21
20
|
|
22
21
|
request = Web::Request.new(
|
23
|
-
|
22
|
+
connection,
|
24
23
|
:post,
|
25
|
-
"/projects/#{project_id}/distributions",
|
26
|
-
query
|
24
|
+
"#{config.target_api_url}/projects/#{project_id}/distributions",
|
25
|
+
{ params: query }
|
27
26
|
)
|
28
|
-
|
29
|
-
request.perform
|
27
|
+
Web::SendRequest.new(request).perform
|
30
28
|
end
|
31
29
|
|
32
30
|
def get_distribution(hash = nil, project_id = config.project_id)
|
@@ -34,12 +32,11 @@ module Crowdin
|
|
34
32
|
project_id || raise_project_id_is_required_error
|
35
33
|
|
36
34
|
request = Web::Request.new(
|
37
|
-
|
35
|
+
connection,
|
38
36
|
:get,
|
39
|
-
"/projects/#{project_id}/distributions/#{hash}"
|
37
|
+
"#{config.target_api_url}/projects/#{project_id}/distributions/#{hash}"
|
40
38
|
)
|
41
|
-
|
42
|
-
request.perform
|
39
|
+
Web::SendRequest.new(request).perform
|
43
40
|
end
|
44
41
|
|
45
42
|
def delete_distribution(hash = nil, project_id = config.project_id)
|
@@ -47,12 +44,11 @@ module Crowdin
|
|
47
44
|
project_id || raise_project_id_is_required_error
|
48
45
|
|
49
46
|
request = Web::Request.new(
|
50
|
-
|
47
|
+
connection,
|
51
48
|
:delete,
|
52
|
-
"/projects/#{project_id}/distributions/#{hash}"
|
49
|
+
"#{config.target_api_url}/projects/#{project_id}/distributions/#{hash}"
|
53
50
|
)
|
54
|
-
|
55
|
-
request.perform
|
51
|
+
Web::SendRequest.new(request).perform
|
56
52
|
end
|
57
53
|
|
58
54
|
def edit_distribution(hash = nil, query = {}, project_id = config.project_id)
|
@@ -60,26 +56,24 @@ module Crowdin
|
|
60
56
|
project_id || raise_project_id_is_required_error
|
61
57
|
|
62
58
|
request = Web::Request.new(
|
63
|
-
|
59
|
+
connection,
|
64
60
|
:patch,
|
65
|
-
"/projects/#{project_id}/distributions/#{hash}",
|
66
|
-
query
|
61
|
+
"#{config.target_api_url}/projects/#{project_id}/distributions/#{hash}",
|
62
|
+
{ params: query }
|
67
63
|
)
|
68
|
-
|
69
|
-
request.perform
|
64
|
+
Web::SendRequest.new(request).perform
|
70
65
|
end
|
71
66
|
|
72
|
-
def
|
67
|
+
def get_distribution_release(hash = nil, project_id = config.project_id)
|
73
68
|
hash || raise_parameter_is_required_error(:hash)
|
74
69
|
project_id || raise_project_id_is_required_error
|
75
70
|
|
76
71
|
request = Web::Request.new(
|
77
|
-
|
72
|
+
connection,
|
78
73
|
:get,
|
79
|
-
"/projects/#{project_id}/distributions/#{hash}/release"
|
74
|
+
"#{config.target_api_url}/projects/#{project_id}/distributions/#{hash}/release"
|
80
75
|
)
|
81
|
-
|
82
|
-
request.perform
|
76
|
+
Web::SendRequest.new(request).perform
|
83
77
|
end
|
84
78
|
|
85
79
|
def release_distribution(hash = nil, project_id = config.project_id)
|
@@ -87,12 +81,11 @@ module Crowdin
|
|
87
81
|
project_id || raise_project_id_is_required_error
|
88
82
|
|
89
83
|
request = Web::Request.new(
|
90
|
-
|
84
|
+
connection,
|
91
85
|
:post,
|
92
|
-
"/projects/#{project_id}/distributions/#{hash}/release"
|
86
|
+
"#{config.target_api_url}/projects/#{project_id}/distributions/#{hash}/release"
|
93
87
|
)
|
94
|
-
|
95
|
-
request.perform
|
88
|
+
Web::SendRequest.new(request).perform
|
96
89
|
end
|
97
90
|
end
|
98
91
|
end
|