ruby-lokalise-api 7.1.1 → 8.0.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/ruby_lokalise_api/base_client.rb +2 -34
- data/lib/ruby_lokalise_api/client.rb +2 -31
- data/lib/ruby_lokalise_api/collections/base.rb +97 -70
- data/lib/ruby_lokalise_api/collections/branches.rb +11 -0
- data/lib/ruby_lokalise_api/collections/contributors.rb +10 -0
- data/lib/ruby_lokalise_api/collections/custom_translation_statuses.rb +10 -0
- data/lib/ruby_lokalise_api/collections/files.rb +10 -0
- data/lib/ruby_lokalise_api/collections/key_comments.rb +11 -0
- data/lib/ruby_lokalise_api/collections/keys.rb +10 -0
- data/lib/ruby_lokalise_api/collections/orders.rb +10 -0
- data/lib/ruby_lokalise_api/collections/payment_cards.rb +10 -0
- data/lib/ruby_lokalise_api/collections/project_comments.rb +12 -0
- data/lib/ruby_lokalise_api/collections/project_languages.rb +11 -0
- data/lib/ruby_lokalise_api/collections/projects.rb +10 -0
- data/lib/ruby_lokalise_api/collections/queued_processes.rb +11 -0
- data/lib/ruby_lokalise_api/collections/screenshots.rb +10 -0
- data/lib/ruby_lokalise_api/collections/segments.rb +10 -0
- data/lib/ruby_lokalise_api/collections/snapshots.rb +10 -0
- data/lib/ruby_lokalise_api/collections/system_languages.rb +11 -0
- data/lib/ruby_lokalise_api/collections/tasks.rb +10 -0
- data/lib/ruby_lokalise_api/collections/team_user_groups.rb +11 -0
- data/lib/ruby_lokalise_api/collections/team_users.rb +10 -0
- data/lib/ruby_lokalise_api/collections/teams.rb +10 -0
- data/lib/ruby_lokalise_api/collections/translation_providers.rb +10 -0
- data/lib/ruby_lokalise_api/collections/translations.rb +10 -0
- data/lib/ruby_lokalise_api/collections/webhooks.rb +10 -0
- data/lib/ruby_lokalise_api/concerns/attrs_loadable.rb +31 -0
- data/lib/ruby_lokalise_api/concerns/hash_accessible.rb +16 -0
- data/lib/ruby_lokalise_api/concerns/unsupportable.rb +16 -0
- data/lib/ruby_lokalise_api/connection.rb +18 -9
- data/lib/ruby_lokalise_api/data/collection_attributes.yml +52 -0
- data/lib/ruby_lokalise_api/data/{attributes.yml → resource_attributes.yml} +64 -6
- data/lib/ruby_lokalise_api/endpoints/base_endpoint.rb +66 -0
- data/lib/ruby_lokalise_api/endpoints/branches_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/contributors_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/custom_translation_statuses_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/files_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/jwts_endpoint.rb +15 -0
- data/lib/ruby_lokalise_api/endpoints/key_comments_endpoint.rb +17 -0
- data/lib/ruby_lokalise_api/endpoints/keys_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/main_endpoint.rb +25 -0
- data/lib/ruby_lokalise_api/endpoints/oauth2/oauth2_endpoint.rb +33 -0
- data/lib/ruby_lokalise_api/endpoints/orders_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/payment_cards_endpoint.rb +15 -0
- data/lib/ruby_lokalise_api/endpoints/project_comments_endpoint.rb +15 -0
- data/lib/ruby_lokalise_api/endpoints/project_languages_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/projects_endpoint.rb +15 -0
- data/lib/ruby_lokalise_api/endpoints/queued_processes_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/screenshots_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/segments_endpoint.rb +17 -0
- data/lib/ruby_lokalise_api/endpoints/snapshots_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/system_languages_endpoint.rb +15 -0
- data/lib/ruby_lokalise_api/endpoints/tasks_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/team_user_billing_details_endpoint.rb +15 -0
- data/lib/ruby_lokalise_api/endpoints/team_user_groups_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/team_users_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/teams_endpoint.rb +13 -0
- data/lib/ruby_lokalise_api/endpoints/translation_providers_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/translations_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/endpoints/webhooks_endpoint.rb +16 -0
- data/lib/ruby_lokalise_api/error.rb +1 -0
- data/lib/ruby_lokalise_api/generics.rb +25 -0
- data/lib/ruby_lokalise_api/json_handler.rb +1 -2
- data/lib/ruby_lokalise_api/oauth2/auth.rb +33 -39
- data/lib/ruby_lokalise_api/oauth2_client.rb +3 -0
- data/lib/ruby_lokalise_api/request.rb +66 -18
- data/lib/ruby_lokalise_api/resources/base.rb +41 -181
- data/lib/ruby_lokalise_api/resources/branch.rb +2 -21
- data/lib/ruby_lokalise_api/resources/comment.rb +11 -0
- data/lib/ruby_lokalise_api/resources/contributor.rb +1 -9
- data/lib/ruby_lokalise_api/resources/custom_translation_status.rb +1 -13
- data/lib/ruby_lokalise_api/resources/file.rb +2 -16
- data/lib/ruby_lokalise_api/resources/jwt.rb +2 -5
- data/lib/ruby_lokalise_api/resources/key.rb +5 -8
- data/lib/ruby_lokalise_api/resources/oauth2_refreshed_token.rb +9 -0
- data/lib/ruby_lokalise_api/resources/oauth2_token.rb +9 -0
- data/lib/ruby_lokalise_api/resources/order.rb +2 -9
- data/lib/ruby_lokalise_api/resources/payment_card.rb +2 -8
- data/lib/ruby_lokalise_api/resources/project.rb +85 -16
- data/lib/ruby_lokalise_api/resources/project_language.rb +2 -10
- data/lib/ruby_lokalise_api/resources/queued_process.rb +3 -10
- data/lib/ruby_lokalise_api/resources/screenshot.rb +1 -9
- data/lib/ruby_lokalise_api/resources/segment.rb +2 -11
- data/lib/ruby_lokalise_api/resources/snapshot.rb +3 -18
- data/lib/ruby_lokalise_api/resources/system_language.rb +2 -1
- data/lib/ruby_lokalise_api/resources/task.rb +1 -9
- data/lib/ruby_lokalise_api/resources/team.rb +2 -0
- data/lib/ruby_lokalise_api/resources/team_user.rb +1 -9
- data/lib/ruby_lokalise_api/resources/team_user_billing_details.rb +10 -5
- data/lib/ruby_lokalise_api/resources/team_user_group.rb +6 -14
- data/lib/ruby_lokalise_api/resources/translation.rb +2 -9
- data/lib/ruby_lokalise_api/resources/translation_provider.rb +2 -9
- data/lib/ruby_lokalise_api/resources/webhook.rb +2 -16
- data/lib/ruby_lokalise_api/response.rb +50 -0
- data/lib/ruby_lokalise_api/rest/branches.rb +52 -27
- data/lib/ruby_lokalise_api/rest/comments.rb +48 -23
- data/lib/ruby_lokalise_api/rest/contributors.rb +47 -23
- data/lib/ruby_lokalise_api/rest/custom_translation_statuses.rb +60 -36
- data/lib/ruby_lokalise_api/rest/files.rb +43 -24
- data/lib/ruby_lokalise_api/rest/jwts.rb +21 -0
- data/lib/ruby_lokalise_api/rest/keys.rb +67 -34
- data/lib/ruby_lokalise_api/rest/languages.rb +57 -28
- data/lib/ruby_lokalise_api/rest/orders.rb +36 -14
- data/lib/ruby_lokalise_api/rest/payment_cards.rb +29 -12
- data/lib/ruby_lokalise_api/rest/projects.rb +55 -32
- data/lib/ruby_lokalise_api/rest/queued_processes.rb +21 -13
- data/lib/ruby_lokalise_api/rest/screenshots.rb +45 -20
- data/lib/ruby_lokalise_api/rest/segments.rb +31 -18
- data/lib/ruby_lokalise_api/rest/snapshots.rb +34 -14
- data/lib/ruby_lokalise_api/rest/tasks.rb +41 -19
- data/lib/ruby_lokalise_api/rest/team_user_billing_details.rb +33 -12
- data/lib/ruby_lokalise_api/rest/team_user_groups.rb +82 -50
- data/lib/ruby_lokalise_api/rest/team_users.rb +35 -18
- data/lib/ruby_lokalise_api/rest/teams.rb +10 -5
- data/lib/ruby_lokalise_api/rest/translation_providers.rb +24 -9
- data/lib/ruby_lokalise_api/rest/translations.rb +28 -15
- data/lib/ruby_lokalise_api/rest/webhooks.rb +54 -30
- data/lib/ruby_lokalise_api/rest.rb +31 -0
- data/lib/ruby_lokalise_api/utils/attributes.rb +37 -0
- data/lib/ruby_lokalise_api/utils/classes.rb +24 -0
- data/lib/ruby_lokalise_api/utils/keys.rb +29 -0
- data/lib/ruby_lokalise_api/utils/loaders.rb +24 -0
- data/lib/ruby_lokalise_api/utils/strings.rb +20 -0
- data/lib/ruby_lokalise_api/version.rb +1 -1
- data/lib/ruby_lokalise_api.rb +6 -2
- data/ruby-lokalise-api.gemspec +2 -2
- metadata +76 -41
- data/lib/ruby_lokalise_api/base_request.rb +0 -73
- data/lib/ruby_lokalise_api/collections/branch.rb +0 -15
- data/lib/ruby_lokalise_api/collections/contributor.rb +0 -13
- data/lib/ruby_lokalise_api/collections/custom_translation_status.rb +0 -15
- data/lib/ruby_lokalise_api/collections/file.rb +0 -13
- data/lib/ruby_lokalise_api/collections/key.rb +0 -20
- data/lib/ruby_lokalise_api/collections/key_comment.rb +0 -14
- data/lib/ruby_lokalise_api/collections/order.rb +0 -13
- data/lib/ruby_lokalise_api/collections/payment_card.rb +0 -13
- data/lib/ruby_lokalise_api/collections/project.rb +0 -13
- data/lib/ruby_lokalise_api/collections/project_comment.rb +0 -13
- data/lib/ruby_lokalise_api/collections/project_language.rb +0 -13
- data/lib/ruby_lokalise_api/collections/queued_process.rb +0 -15
- data/lib/ruby_lokalise_api/collections/screenshot.rb +0 -13
- data/lib/ruby_lokalise_api/collections/segment.rb +0 -15
- data/lib/ruby_lokalise_api/collections/snapshot.rb +0 -13
- data/lib/ruby_lokalise_api/collections/system_language.rb +0 -13
- data/lib/ruby_lokalise_api/collections/task.rb +0 -13
- data/lib/ruby_lokalise_api/collections/team.rb +0 -13
- data/lib/ruby_lokalise_api/collections/team_user.rb +0 -13
- data/lib/ruby_lokalise_api/collections/team_user_group.rb +0 -15
- data/lib/ruby_lokalise_api/collections/translation.rb +0 -13
- data/lib/ruby_lokalise_api/collections/translation_provider.rb +0 -13
- data/lib/ruby_lokalise_api/collections/webhook.rb +0 -13
- data/lib/ruby_lokalise_api/oauth2/refresh.rb +0 -16
- data/lib/ruby_lokalise_api/oauth2/token.rb +0 -16
- data/lib/ruby_lokalise_api/resources/key_comment.rb +0 -19
- data/lib/ruby_lokalise_api/resources/project_comment.rb +0 -10
- data/lib/ruby_lokalise_api/rest/jwt.rb +0 -15
- data/lib/ruby_lokalise_api/utils/attribute_helpers.rb +0 -86
- data/lib/ruby_lokalise_api/utils/endpoint_helpers.rb +0 -14
- data/lib/ruby_lokalise_api/utils/string_utils.rb +0 -33
@@ -1,217 +1,77 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module RubyLokaliseApi
|
4
|
+
# Base resource class. A resource is an individual object returned by the API
|
4
5
|
module Resources
|
5
6
|
class Base
|
6
|
-
using RubyLokaliseApi::Utils::
|
7
|
+
using RubyLokaliseApi::Utils::Classes
|
8
|
+
extend RubyLokaliseApi::Utils::Attributes
|
9
|
+
extend RubyLokaliseApi::Concerns::Unsupportable
|
10
|
+
extend RubyLokaliseApi::Concerns::AttrsLoadable
|
11
|
+
include RubyLokaliseApi::Concerns::HashAccessible
|
12
|
+
include RubyLokaliseApi::Utils::Keys
|
7
13
|
|
8
|
-
|
9
|
-
extend RubyLokaliseApi::Utils::AttributeHelpers
|
10
|
-
include RubyLokaliseApi::Utils::AttributeHelpers
|
11
|
-
extend RubyLokaliseApi::Utils::EndpointHelpers
|
14
|
+
ATTRS_FILENAME = 'resource_attributes.yml'
|
12
15
|
|
13
|
-
|
16
|
+
def initialize(response)
|
17
|
+
@self_endpoint = response.endpoint
|
14
18
|
|
15
|
-
|
16
|
-
# `endpoint_generator` is used in cases when a new instance is generated
|
17
|
-
# from a different resource. For example, restoring from a snapshot
|
18
|
-
# creates a totally different project which should have a new path.
|
19
|
-
#
|
20
|
-
# @param response [Hash]
|
21
|
-
# @param endpoint_generator [Proc] Generate proper paths for certain resources
|
22
|
-
# @return [RubyLokaliseApi::Resources::Base]
|
23
|
-
def initialize(response, endpoint_generator = nil)
|
24
|
-
populate_attributes_for response['content']
|
25
|
-
extract_common_attributes_for response['content']
|
26
|
-
@client = response['client']
|
27
|
-
@path = infer_path_from response, endpoint_generator
|
19
|
+
populate_attrs_from response.content
|
28
20
|
end
|
29
21
|
|
30
|
-
#
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
# @param raw_key_attr [String or Hash]
|
35
|
-
def [](raw_key_attr)
|
36
|
-
key_attr = raw_key_attr.to_s.to_sym
|
22
|
+
# Updates the current resource
|
23
|
+
def update(params)
|
24
|
+
self.class.new reinit_endpoint(params).do_put
|
25
|
+
end
|
37
26
|
|
38
|
-
|
27
|
+
# Deletes the current resource
|
28
|
+
def destroy
|
29
|
+
RubyLokaliseApi::Generics::DeletedResource.new(
|
30
|
+
reinit_endpoint.do_delete.content
|
31
|
+
)
|
32
|
+
end
|
39
33
|
|
40
|
-
|
34
|
+
# Reloads the current resource with new values from the API
|
35
|
+
def reload_data
|
36
|
+
self.class.new reinit_endpoint.do_get
|
41
37
|
end
|
42
38
|
|
43
39
|
class << self
|
44
|
-
#
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
def inherited(subclass)
|
49
|
-
klass_attributes = attributes_for subclass
|
50
|
-
subclass.class_exec do
|
51
|
-
const_set :ATTRIBUTES, klass_attributes
|
52
|
-
attr_reader(*klass_attributes)
|
53
|
-
end
|
54
|
-
super
|
55
|
-
end
|
56
|
-
|
57
|
-
# Defines CRUD instance methods. In the simplest case it delegates work to the
|
58
|
-
# class method. In more complex case it is possible to specify sub-path and the
|
59
|
-
# class method name to call.
|
60
|
-
# Usage: `supports :update, :destroy, [:complex_method, '/sub/path', :update]`
|
61
|
-
def supports(*methods)
|
62
|
-
methods.each do |m_data|
|
63
|
-
# `method_name` - the method that the resource should support
|
64
|
-
# `sub_path` - a string that has to be appended to a base path
|
65
|
-
# `c_method` - method name to delegate the work to
|
66
|
-
method_name, sub_path, c_method =
|
67
|
-
m_data.is_a?(Array) ? m_data : [m_data, '', m_data]
|
68
|
-
|
69
|
-
define_method method_name do |params = {}|
|
70
|
-
path = instance_variable_get(:@path)
|
71
|
-
# If there's a sub_path which is a string,
|
72
|
-
# preserve the initial path to allow further chaining
|
73
|
-
params = params.merge(_initial_path: path) if sub_path
|
74
|
-
self.class.send c_method, instance_variable_get(:@client),
|
75
|
-
path + sub_path, params
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
# Fetches a single record
|
81
|
-
def find(client, path, params = {})
|
82
|
-
new get(path, client, prepare_params(params))
|
83
|
-
end
|
84
|
-
|
85
|
-
# Creates one or multiple records
|
86
|
-
def create(client, path, params)
|
87
|
-
response = post path, client, prepare_params(params)
|
88
|
-
object_from response, params
|
89
|
-
end
|
90
|
-
|
91
|
-
# Updates one or multiple records
|
92
|
-
def update(client, path, params)
|
93
|
-
response = put path, client, prepare_params(params)
|
94
|
-
object_from response, params
|
95
|
-
end
|
96
|
-
|
97
|
-
# Destroys records by given ids
|
98
|
-
def destroy(client, path, params = {})
|
99
|
-
delete(path, client, prepare_params(params))['content']
|
100
|
-
end
|
101
|
-
|
102
|
-
private
|
103
|
-
|
104
|
-
# Filters out internal attributes that should not be sent to Lokalise
|
105
|
-
def prepare_params(params)
|
106
|
-
filter_attrs = %i[_initial_path]
|
107
|
-
params.reject { |key, _v| filter_attrs.include?(key) }
|
108
|
-
end
|
109
|
-
|
110
|
-
# Instantiates a new resource or collection based on the given response
|
111
|
-
def object_from(response, params)
|
112
|
-
model_class = name.base_class_name
|
113
|
-
data_key_plural = data_key_for model_class: model_class, plural: true
|
114
|
-
# Preserve the initial path to allow chaining
|
115
|
-
response['path'] = params.delete(:_initial_path) if params.key?(:_initial_path)
|
116
|
-
|
117
|
-
if response['content'].key?(data_key_plural)
|
118
|
-
produce_collection model_class, response, params
|
119
|
-
else
|
120
|
-
produce_resource model_class, response
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
def produce_resource(model_class, response)
|
125
|
-
content = response['content']
|
126
|
-
data_key_singular = data_key_for model_class: model_class
|
127
|
-
if content.key? data_key_singular
|
128
|
-
data = content.delete data_key_singular
|
129
|
-
content.merge! data
|
40
|
+
# Delegates instance method calls to the client methods
|
41
|
+
def delegate_call(from, to = nil)
|
42
|
+
define_method(from) do |*args|
|
43
|
+
@self_endpoint.client.send((to || from), *read_main_params.push(*args))
|
130
44
|
end
|
131
|
-
|
132
|
-
new response
|
133
|
-
end
|
134
|
-
|
135
|
-
def produce_collection(model_class, response, params)
|
136
|
-
Module.const_get("RubyLokaliseApi::Collections::#{model_class}").new(response, params)
|
137
45
|
end
|
138
46
|
end
|
139
47
|
|
140
|
-
|
141
|
-
def infer_path_from(response, endpoint_generator = nil)
|
142
|
-
id_key = id_key_for self.class.name.base_class_name
|
143
|
-
data_key = data_key_for model_class: self.class.name.base_class_name
|
144
|
-
|
145
|
-
path_with_id response, id_key, data_key, endpoint_generator
|
146
|
-
end
|
48
|
+
private
|
147
49
|
|
148
|
-
def
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
# ID of the resource
|
153
|
-
id = id_from response, id_key, data_key
|
154
|
-
|
155
|
-
# If `endpoint_generator` is present, generate a new path
|
156
|
-
# based on the fetched id
|
157
|
-
if endpoint_generator
|
158
|
-
path = endpoint_generator.call project_id, id
|
159
|
-
return path.remove_trailing_slash
|
50
|
+
def read_main_params
|
51
|
+
self.class.const_get(:MAIN_PARAMS).to_array.map do |param|
|
52
|
+
instance_variable_get "@#{param}"
|
160
53
|
end
|
161
|
-
|
162
|
-
path = response['path'] || response['base_path']
|
163
|
-
# If path already has id - just return it
|
164
|
-
return path if path.match?(/#{id}\z/)
|
165
|
-
|
166
|
-
# Otherwise this looks like a collection path, so append the resource id to it
|
167
|
-
path.remove_trailing_slash + "/#{id}"
|
168
54
|
end
|
169
55
|
|
170
|
-
def
|
171
|
-
|
172
|
-
# Sometimes there is an `id_key` but it has a value of `null`
|
173
|
-
# (for example when we do not place the actual order but only check its price).
|
174
|
-
# In rare cases the actual identifier does not have an "_id" suffix
|
175
|
-
# (for segments that have "segment_number" field instead)
|
176
|
-
# Therefore we must explicitly check if the key is present
|
177
|
-
content = response['content']
|
178
|
-
return content[id_key] if content.respond_to?(:key?) && content&.key?(id_key)
|
179
|
-
|
180
|
-
content[data_key][id_key]
|
56
|
+
def reinit_endpoint(req_params = {})
|
57
|
+
@self_endpoint.reinitialize(query_params: read_main_params, req_params: req_params)
|
181
58
|
end
|
182
59
|
|
183
|
-
|
184
|
-
# `ATTRIBUTES` is defined inside resource-specific classes
|
185
|
-
def populate_attributes_for(content)
|
60
|
+
def populate_attrs_from(content)
|
186
61
|
return unless content
|
187
62
|
|
188
|
-
data_key = data_key_for
|
63
|
+
data_key = data_key_for klass: self.class.base_name
|
189
64
|
|
190
|
-
|
191
|
-
value = if content.key?(data_key) && content[data_key].is_a?(Hash)
|
192
|
-
content[data_key][
|
65
|
+
supported_attrs.each do |attrib|
|
66
|
+
value = if content.key?(data_key) && content[data_key].is_a?(Hash) && content[data_key].key?(attrib)
|
67
|
+
content[data_key][attrib]
|
193
68
|
else
|
194
|
-
content[
|
69
|
+
content[attrib]
|
195
70
|
end
|
196
71
|
|
197
|
-
instance_variable_set "@#{
|
72
|
+
instance_variable_set "@#{attrib}", value
|
198
73
|
end
|
199
74
|
end
|
200
|
-
|
201
|
-
# Extracts all common attributes that resources have.
|
202
|
-
# Some of them may be absent in certain cases.
|
203
|
-
# rubocop:disable Naming/MemoizedInstanceVariableName
|
204
|
-
def extract_common_attributes_for(content)
|
205
|
-
return unless content
|
206
|
-
|
207
|
-
@raw_data = content
|
208
|
-
@project_id ||= content['project_id']
|
209
|
-
@user_id ||= content['user_id']
|
210
|
-
@team_id ||= content['team_id']
|
211
|
-
@key_id ||= content['key_id']
|
212
|
-
@branch ||= content['branch']
|
213
|
-
end
|
214
|
-
# rubocop:enable Naming/MemoizedInstanceVariableName
|
215
75
|
end
|
216
76
|
end
|
217
77
|
end
|
@@ -3,28 +3,9 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class Branch < Base
|
6
|
-
|
7
|
-
supports :update, :destroy, [:reload_data, '', :find]
|
6
|
+
MAIN_PARAMS = %i[project_id branch_id].freeze
|
8
7
|
|
9
|
-
|
10
|
-
klass = self.class
|
11
|
-
klass.merge @client, klass.endpoint(project_id, branch_id, :merge), params
|
12
|
-
end
|
13
|
-
|
14
|
-
class << self
|
15
|
-
def merge(client, path, params, *_args)
|
16
|
-
post(path, client, params)['content']
|
17
|
-
end
|
18
|
-
|
19
|
-
def endpoint(project_id, branch_id = nil, action = nil)
|
20
|
-
params = {projects: project_id,
|
21
|
-
branches: branch_id}
|
22
|
-
|
23
|
-
params[:merge] = '' if action == :merge
|
24
|
-
|
25
|
-
path_from params
|
26
|
-
end
|
27
|
-
end
|
8
|
+
delegate_call :merge, :merge_branch
|
28
9
|
end
|
29
10
|
end
|
30
11
|
end
|
@@ -3,15 +3,7 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class Contributor < Base
|
6
|
-
|
7
|
-
supports :update, :destroy, [:reload_data, '', :find]
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def endpoint(project_id, contributor_id = nil)
|
11
|
-
path_from projects: project_id,
|
12
|
-
contributors: contributor_id
|
13
|
-
end
|
14
|
-
end
|
6
|
+
MAIN_PARAMS = %i[project_id user_id].freeze
|
15
7
|
end
|
16
8
|
end
|
17
9
|
end
|
@@ -3,19 +3,7 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class CustomTranslationStatus < Base
|
6
|
-
|
7
|
-
supports :update, :destroy, [:reload_data, '', :find]
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def colors(client, path, *_args)
|
11
|
-
get(path, client)['content']['colors']
|
12
|
-
end
|
13
|
-
|
14
|
-
def endpoint(project_id, status_id = nil)
|
15
|
-
path_from projects: project_id,
|
16
|
-
custom_translation_statuses: status_id
|
17
|
-
end
|
18
|
-
end
|
6
|
+
MAIN_PARAMS = %i[project_id status_id].freeze
|
19
7
|
end
|
20
8
|
end
|
21
9
|
end
|
@@ -3,22 +3,8 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class File < Base
|
6
|
-
|
7
|
-
|
8
|
-
post(path, client, params)['content']
|
9
|
-
end
|
10
|
-
|
11
|
-
def upload(client, path, params)
|
12
|
-
klass = RubyLokaliseApi::Resources::QueuedProcess
|
13
|
-
klass.new post(path, client, params),
|
14
|
-
->(project_id, id) { klass.endpoint(project_id, id) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def endpoint(project_id, action = '')
|
18
|
-
path_from projects: project_id,
|
19
|
-
files: action
|
20
|
-
end
|
21
|
-
end
|
6
|
+
MAIN_PARAMS = %i[project_id file_id].freeze
|
7
|
+
no_support_for %i[update reload_data]
|
22
8
|
end
|
23
9
|
end
|
24
10
|
end
|
@@ -3,15 +3,12 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class Key < Base
|
6
|
-
|
7
|
-
supports :update, :destroy, [:reload_data, '', :find]
|
6
|
+
MAIN_PARAMS = %i[project_id key_id].freeze
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
end
|
8
|
+
delegate_call :key_comment, :comment
|
9
|
+
delegate_call :key_comments, :comments
|
10
|
+
delegate_call :create_comments
|
11
|
+
delegate_call :destroy_comment
|
15
12
|
end
|
16
13
|
end
|
17
14
|
end
|
@@ -3,15 +3,8 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class Order < Base
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def endpoint(team_id, order_id = nil)
|
11
|
-
path_from teams: team_id,
|
12
|
-
orders: order_id
|
13
|
-
end
|
14
|
-
end
|
6
|
+
MAIN_PARAMS = %i[team_id order_id].freeze
|
7
|
+
no_support_for %i[update destroy]
|
15
8
|
end
|
16
9
|
end
|
17
10
|
end
|
@@ -3,14 +3,8 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class PaymentCard < Base
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def endpoint(card_id = nil)
|
11
|
-
path_from payment_cards: card_id
|
12
|
-
end
|
13
|
-
end
|
6
|
+
MAIN_PARAMS = %i[card_id].freeze
|
7
|
+
no_support_for %i[update]
|
14
8
|
end
|
15
9
|
end
|
16
10
|
end
|
@@ -3,22 +3,91 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class Project < Base
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
6
|
+
MAIN_PARAMS = :project_id
|
7
|
+
|
8
|
+
delegate_call :empty, :empty_project
|
9
|
+
|
10
|
+
delegate_call :branches
|
11
|
+
delegate_call :branch
|
12
|
+
delegate_call :create_branch
|
13
|
+
delegate_call :update_branch
|
14
|
+
delegate_call :destroy_branch
|
15
|
+
delegate_call :merge_branch
|
16
|
+
|
17
|
+
delegate_call :key_comment, :comment
|
18
|
+
delegate_call :key_comments, :comments
|
19
|
+
delegate_call :project_comments
|
20
|
+
delegate_call :create_comments
|
21
|
+
delegate_call :destroy_comment
|
22
|
+
|
23
|
+
delegate_call :contributor
|
24
|
+
delegate_call :contributors
|
25
|
+
delegate_call :create_contributors
|
26
|
+
delegate_call :update_contributor
|
27
|
+
delegate_call :destroy_contributor
|
28
|
+
|
29
|
+
delegate_call :custom_translation_status
|
30
|
+
delegate_call :custom_translation_statuses
|
31
|
+
delegate_call :create_custom_translation_status
|
32
|
+
delegate_call :update_custom_translation_status
|
33
|
+
delegate_call :destroy_custom_translation_status
|
34
|
+
delegate_call :custom_translation_status_colors
|
35
|
+
|
36
|
+
delegate_call :files
|
37
|
+
delegate_call :upload_file
|
38
|
+
delegate_call :download_files
|
39
|
+
delegate_call :destroy_file
|
40
|
+
|
41
|
+
delegate_call :create_jwt
|
42
|
+
|
43
|
+
delegate_call :keys
|
44
|
+
delegate_call :key
|
45
|
+
delegate_call :create_keys
|
46
|
+
delegate_call :update_key
|
47
|
+
delegate_call :update_keys
|
48
|
+
delegate_call :destroy_key
|
49
|
+
delegate_call :destroy_keys
|
50
|
+
|
51
|
+
delegate_call :languages, :project_languages
|
52
|
+
delegate_call :language, :project_language
|
53
|
+
delegate_call :create_languages, :create_project_languages
|
54
|
+
delegate_call :update_language, :update_project_language
|
55
|
+
delegate_call :destroy_language, :destroy_project_language
|
56
|
+
|
57
|
+
delegate_call :queued_process
|
58
|
+
delegate_call :queued_processes
|
59
|
+
|
60
|
+
delegate_call :segments
|
61
|
+
delegate_call :segment
|
62
|
+
delegate_call :update_segment
|
63
|
+
|
64
|
+
delegate_call :screenshots
|
65
|
+
delegate_call :screenshot
|
66
|
+
delegate_call :create_screenshots
|
67
|
+
delegate_call :update_screenshot
|
68
|
+
delegate_call :destroy_screenshot
|
69
|
+
|
70
|
+
delegate_call :snapshots
|
71
|
+
delegate_call :create_snapshot
|
72
|
+
delegate_call :restore_snapshot
|
73
|
+
delegate_call :destroy_snapshot
|
74
|
+
|
75
|
+
delegate_call :tasks
|
76
|
+
delegate_call :task
|
77
|
+
delegate_call :create_task
|
78
|
+
delegate_call :update_task
|
79
|
+
delegate_call :destroy_task
|
80
|
+
|
81
|
+
delegate_call :translations
|
82
|
+
delegate_call :translation
|
83
|
+
delegate_call :update_translation
|
84
|
+
|
85
|
+
delegate_call :webhooks
|
86
|
+
delegate_call :webhook
|
87
|
+
delegate_call :create_webhook
|
88
|
+
delegate_call :update_webhook
|
89
|
+
delegate_call :regenerate_webhook_secret
|
90
|
+
delegate_call :destroy_webhook
|
22
91
|
end
|
23
92
|
end
|
24
93
|
end
|
@@ -3,16 +3,8 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class ProjectLanguage < Base
|
6
|
-
|
7
|
-
|
8
|
-
supports :update, :destroy, [:reload_data, '', :find]
|
9
|
-
|
10
|
-
class << self
|
11
|
-
def endpoint(project_id, language_id = nil)
|
12
|
-
path_from projects: project_id,
|
13
|
-
languages: language_id
|
14
|
-
end
|
15
|
-
end
|
6
|
+
MAIN_PARAMS = %i[project_id lang_id].freeze
|
7
|
+
DATA_KEY = 'language'
|
16
8
|
end
|
17
9
|
end
|
18
10
|
end
|
@@ -3,16 +3,9 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class QueuedProcess < Base
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
class << self
|
11
|
-
def endpoint(project_id, process_id = nil)
|
12
|
-
path_from projects: project_id,
|
13
|
-
processes: process_id
|
14
|
-
end
|
15
|
-
end
|
6
|
+
MAIN_PARAMS = %i[project_id process_id].freeze
|
7
|
+
no_support_for %i[update destroy]
|
8
|
+
DATA_KEY = 'process'
|
16
9
|
end
|
17
10
|
end
|
18
11
|
end
|
@@ -3,15 +3,7 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class Screenshot < Base
|
6
|
-
|
7
|
-
supports :update, :destroy, [:reload_data, '', :find]
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def endpoint(project_id, screenshot_id = nil)
|
11
|
-
path_from projects: project_id,
|
12
|
-
screenshots: screenshot_id
|
13
|
-
end
|
14
|
-
end
|
6
|
+
MAIN_PARAMS = %i[project_id screenshot_id].freeze
|
15
7
|
end
|
16
8
|
end
|
17
9
|
end
|
@@ -3,17 +3,8 @@
|
|
3
3
|
module RubyLokaliseApi
|
4
4
|
module Resources
|
5
5
|
class Segment < Base
|
6
|
-
|
7
|
-
|
8
|
-
supports :update, [:reload_data, '', :find]
|
9
|
-
|
10
|
-
class << self
|
11
|
-
def endpoint(project_id, key_id, lang_iso, segment_number = nil)
|
12
|
-
path_from projects: project_id,
|
13
|
-
keys: key_id,
|
14
|
-
segments: [lang_iso, segment_number]
|
15
|
-
end
|
16
|
-
end
|
6
|
+
MAIN_PARAMS = %i[project_id key_id language_iso segment_number].freeze
|
7
|
+
no_support_for %i[destroy]
|
17
8
|
end
|
18
9
|
end
|
19
10
|
end
|