ruby-lokalise-api 4.5.0 → 6.0.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/README.md +5 -3
- data/lib/ruby_lokalise_api/base_request.rb +24 -0
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/client.rb +25 -26
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/base.rb +10 -10
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/branch.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/contributor.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/custom_translation_status.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/file.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key.rb +2 -2
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key_comment.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/order.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/payment_card.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_comment.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_language.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/queued_process.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/screenshot.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/segment.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/snapshot.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/system_language.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/task.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user_group.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation_provider.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/webhook.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/connection.rb +4 -3
- data/lib/ruby_lokalise_api/data/attributes.yml +235 -0
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/error.rb +15 -15
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/json_handler.rb +1 -1
- data/lib/ruby_lokalise_api/oauth2/auth.rb +62 -0
- data/lib/ruby_lokalise_api/oauth2/connection.rb +25 -0
- data/lib/ruby_lokalise_api/oauth2/request.rb +23 -0
- data/lib/{ruby-lokalise-api/oauth_client.rb → ruby_lokalise_api/oauth2_client.rb} +2 -2
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/request.rb +5 -16
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/base.rb +8 -8
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/branch.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/contributor.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/custom_translation_status.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/file.rb +2 -2
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key_comment.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/order.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/payment_card.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_comment.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_language.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/queued_process.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/screenshot.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/segment.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/snapshot.rb +2 -2
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/system_language.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/task.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_billing_details.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_group.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation_provider.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/webhook.rb +1 -1
- data/lib/ruby_lokalise_api/rest/branches.rb +69 -0
- data/lib/ruby_lokalise_api/rest/comments.rb +61 -0
- data/lib/ruby_lokalise_api/rest/contributors.rb +58 -0
- data/lib/ruby_lokalise_api/rest/custom_translation_statuses.rb +67 -0
- data/lib/ruby_lokalise_api/rest/files.rb +38 -0
- data/lib/ruby_lokalise_api/rest/keys.rb +79 -0
- data/lib/ruby_lokalise_api/rest/languages.rb +67 -0
- data/lib/ruby_lokalise_api/rest/orders.rb +37 -0
- data/lib/ruby_lokalise_api/rest/payment_cards.rb +43 -0
- data/lib/ruby_lokalise_api/rest/projects.rb +62 -0
- data/lib/ruby_lokalise_api/rest/queued_processes.rb +28 -0
- data/lib/ruby_lokalise_api/rest/screenshots.rb +58 -0
- data/lib/ruby_lokalise_api/rest/segments.rb +45 -0
- data/lib/ruby_lokalise_api/rest/snapshots.rb +47 -0
- data/lib/ruby_lokalise_api/rest/tasks.rb +58 -0
- data/lib/ruby_lokalise_api/rest/team_user_billing_details.rb +36 -0
- data/lib/ruby_lokalise_api/rest/team_user_groups.rb +109 -0
- data/lib/ruby_lokalise_api/rest/team_users.rb +48 -0
- data/lib/ruby_lokalise_api/rest/teams.rb +16 -0
- data/lib/ruby_lokalise_api/rest/translation_providers.rb +27 -0
- data/lib/ruby_lokalise_api/rest/translations.rb +39 -0
- data/lib/ruby_lokalise_api/rest/webhooks.rb +69 -0
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/attribute_helpers.rb +7 -7
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/endpoint_helpers.rb +1 -1
- data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/string_utils.rb +1 -1
- data/lib/ruby_lokalise_api/version.rb +5 -0
- data/lib/ruby_lokalise_api.rb +50 -0
- data/ruby-lokalise-api.gemspec +8 -7
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/branches_spec.rb +13 -13
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/comments_spec.rb +7 -7
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/contributors_spec.rb +11 -11
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/custom_translation_statuses_spec.rb +7 -7
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/files_spec.rb +2 -2
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/keys_spec.rb +15 -15
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/languages_spec.rb +6 -6
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/orders_spec.rb +1 -1
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/payment_cards_spec.rb +7 -7
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/projects_spec.rb +24 -11
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/queued_processes_spec.rb +1 -1
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/screenshots_spec.rb +5 -5
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/segments_spec.rb +4 -4
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/snapshots_spec.rb +9 -9
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/tasks_spec.rb +14 -14
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/team_user_billing_details_spec.rb +1 -1
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/team_user_groups_spec.rb +7 -7
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/team_users_spec.rb +4 -4
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/teams_spec.rb +1 -1
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/translation_providers_spec.rb +2 -2
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/translations_spec.rb +11 -11
- data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/webhooks_spec.rb +2 -2
- data/spec/lib/ruby_lokalise_api/connection_spec.rb +68 -0
- data/spec/lib/{ruby-lokalise-api → ruby_lokalise_api}/custom_json_parser_spec.rb +3 -3
- data/spec/lib/{ruby-lokalise-api → ruby_lokalise_api}/error_spec.rb +10 -10
- data/spec/lib/ruby_lokalise_api/oauth2/auth_spec.rb +73 -0
- data/spec/lib/ruby_lokalise_api_spec.rb +47 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/test_client.rb +7 -3
- data/spec/support/vcr.rb +5 -0
- metadata +168 -148
- data/lib/ruby-lokalise-api/data/attributes.json +0 -259
- data/lib/ruby-lokalise-api/rest/branches.rb +0 -67
- data/lib/ruby-lokalise-api/rest/comments.rb +0 -59
- data/lib/ruby-lokalise-api/rest/contributors.rb +0 -56
- data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +0 -65
- data/lib/ruby-lokalise-api/rest/files.rb +0 -36
- data/lib/ruby-lokalise-api/rest/keys.rb +0 -77
- data/lib/ruby-lokalise-api/rest/languages.rb +0 -65
- data/lib/ruby-lokalise-api/rest/orders.rb +0 -35
- data/lib/ruby-lokalise-api/rest/payment_cards.rb +0 -41
- data/lib/ruby-lokalise-api/rest/projects.rb +0 -60
- data/lib/ruby-lokalise-api/rest/queued_processes.rb +0 -26
- data/lib/ruby-lokalise-api/rest/screenshots.rb +0 -56
- data/lib/ruby-lokalise-api/rest/segments.rb +0 -43
- data/lib/ruby-lokalise-api/rest/snapshots.rb +0 -45
- data/lib/ruby-lokalise-api/rest/tasks.rb +0 -56
- data/lib/ruby-lokalise-api/rest/team_user_billing_details.rb +0 -34
- data/lib/ruby-lokalise-api/rest/team_user_group.rb +0 -107
- data/lib/ruby-lokalise-api/rest/team_users.rb +0 -46
- data/lib/ruby-lokalise-api/rest/teams.rb +0 -14
- data/lib/ruby-lokalise-api/rest/translation_providers.rb +0 -25
- data/lib/ruby-lokalise-api/rest/translations.rb +0 -37
- data/lib/ruby-lokalise-api/rest/webhooks.rb +0 -67
- data/lib/ruby-lokalise-api/version.rb +0 -5
- data/lib/ruby-lokalise-api.rb +0 -101
- data/spec/lib/ruby-lokalise-api/connection_spec.rb +0 -89
- data/spec/lib/ruby-lokalise-api_spec.rb +0 -54
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module RubyLokaliseApi
|
|
4
4
|
class Error < StandardError
|
|
5
5
|
ClientError = Class.new(self)
|
|
6
6
|
ServerError = Class.new(self)
|
|
@@ -13,7 +13,7 @@ module Lokalise
|
|
|
13
13
|
TooManyRequests = Class.new(ClientError)
|
|
14
14
|
Forbidden = Class.new(ClientError)
|
|
15
15
|
Locked = Class.new(ClientError)
|
|
16
|
-
|
|
16
|
+
MethodNotAllowed = Class.new(ClientError)
|
|
17
17
|
|
|
18
18
|
NotImplemented = Class.new(ServerError)
|
|
19
19
|
BadGateway = Class.new(ServerError)
|
|
@@ -21,19 +21,19 @@ module Lokalise
|
|
|
21
21
|
GatewayTimeout = Class.new(ServerError)
|
|
22
22
|
|
|
23
23
|
ERRORS = {
|
|
24
|
-
400 =>
|
|
25
|
-
401 =>
|
|
26
|
-
403 =>
|
|
27
|
-
404 =>
|
|
28
|
-
405 =>
|
|
29
|
-
406 =>
|
|
30
|
-
409 =>
|
|
31
|
-
423 =>
|
|
32
|
-
429 =>
|
|
33
|
-
500 =>
|
|
34
|
-
502 =>
|
|
35
|
-
503 =>
|
|
36
|
-
504 =>
|
|
24
|
+
400 => RubyLokaliseApi::Error::BadRequest,
|
|
25
|
+
401 => RubyLokaliseApi::Error::Unauthorized,
|
|
26
|
+
403 => RubyLokaliseApi::Error::Forbidden,
|
|
27
|
+
404 => RubyLokaliseApi::Error::NotFound,
|
|
28
|
+
405 => RubyLokaliseApi::Error::MethodNotAllowed,
|
|
29
|
+
406 => RubyLokaliseApi::Error::NotAcceptable,
|
|
30
|
+
409 => RubyLokaliseApi::Error::Conflict,
|
|
31
|
+
423 => RubyLokaliseApi::Error::Locked,
|
|
32
|
+
429 => RubyLokaliseApi::Error::TooManyRequests,
|
|
33
|
+
500 => RubyLokaliseApi::Error::ServerError,
|
|
34
|
+
502 => RubyLokaliseApi::Error::BadGateway,
|
|
35
|
+
503 => RubyLokaliseApi::Error::ServiceUnavailable,
|
|
36
|
+
504 => RubyLokaliseApi::Error::GatewayTimeout
|
|
37
37
|
}.freeze
|
|
38
38
|
|
|
39
39
|
class << self
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RubyLokaliseApi
|
|
4
|
+
module OAuth2
|
|
5
|
+
class Auth
|
|
6
|
+
include RubyLokaliseApi::OAuth2::Request
|
|
7
|
+
|
|
8
|
+
attr_reader :client_id, :client_secret
|
|
9
|
+
|
|
10
|
+
def initialize(client_id, client_secret)
|
|
11
|
+
@client_id = client_id
|
|
12
|
+
@client_secret = client_secret
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def auth(scope:, redirect_uri: nil, state: nil)
|
|
16
|
+
scope = scope.join(' ') if scope.is_a?(Array)
|
|
17
|
+
|
|
18
|
+
params = {
|
|
19
|
+
client_id: client_id,
|
|
20
|
+
scope: scope
|
|
21
|
+
}
|
|
22
|
+
params[:state] = state unless state.nil?
|
|
23
|
+
params[:redirect_uri] = redirect_uri unless redirect_uri.nil?
|
|
24
|
+
|
|
25
|
+
_build_url_from params
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def token(code)
|
|
29
|
+
params = base_params.merge({
|
|
30
|
+
code: code,
|
|
31
|
+
grant_type: 'authorization_code'
|
|
32
|
+
})
|
|
33
|
+
post 'token', params
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def refresh(token)
|
|
37
|
+
params = base_params.merge({
|
|
38
|
+
refresh_token: token,
|
|
39
|
+
grant_type: 'refresh_token'
|
|
40
|
+
})
|
|
41
|
+
post 'token', params
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
|
|
46
|
+
def base_params
|
|
47
|
+
{
|
|
48
|
+
client_id: client_id,
|
|
49
|
+
client_secret: client_secret
|
|
50
|
+
}
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def _build_url_from(params)
|
|
54
|
+
URI::HTTPS.build(
|
|
55
|
+
host: BASE_URL.host,
|
|
56
|
+
path: "#{BASE_URL.path}auth",
|
|
57
|
+
query: URI.encode_www_form(params)
|
|
58
|
+
).to_s
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RubyLokaliseApi
|
|
4
|
+
module OAuth2
|
|
5
|
+
module Connection
|
|
6
|
+
BASE_URL = URI('https://app.lokalise.com/oauth2/')
|
|
7
|
+
|
|
8
|
+
def connection
|
|
9
|
+
Faraday.new(options) { |f| f.adapter Faraday.default_adapter }
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
private
|
|
13
|
+
|
|
14
|
+
def options
|
|
15
|
+
{
|
|
16
|
+
headers: {
|
|
17
|
+
accept: 'application/json',
|
|
18
|
+
user_agent: "ruby-lokalise-api gem/#{RubyLokaliseApi::VERSION}"
|
|
19
|
+
},
|
|
20
|
+
url: BASE_URL.to_s
|
|
21
|
+
}
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RubyLokaliseApi
|
|
4
|
+
module OAuth2
|
|
5
|
+
module Request
|
|
6
|
+
include RubyLokaliseApi::BaseRequest
|
|
7
|
+
include RubyLokaliseApi::OAuth2::Connection
|
|
8
|
+
|
|
9
|
+
def post(path, params = {})
|
|
10
|
+
respond_with connection.post(prepare(path), custom_dump(params))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def respond_with(response)
|
|
16
|
+
body = custom_load response.body
|
|
17
|
+
status = response.status
|
|
18
|
+
raise_on_error! status, body
|
|
19
|
+
body
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module RubyLokaliseApi
|
|
4
4
|
module Request
|
|
5
|
-
include
|
|
6
|
-
include
|
|
5
|
+
include RubyLokaliseApi::BaseRequest
|
|
6
|
+
include RubyLokaliseApi::Connection
|
|
7
7
|
|
|
8
8
|
# Lokalise returns pagination info in special headers
|
|
9
9
|
PAGINATION_HEADERS = %w[x-pagination-total-count x-pagination-page-count x-pagination-limit x-pagination-page].freeze
|
|
@@ -50,34 +50,23 @@ module Lokalise
|
|
|
50
50
|
|
|
51
51
|
private
|
|
52
52
|
|
|
53
|
-
# Get rid of double slashes in the `path`, leading and trailing slash
|
|
54
|
-
def prepare(path)
|
|
55
|
-
path.delete_prefix('/').gsub(%r{//}, '/').gsub(%r{/+\z}, '')
|
|
56
|
-
end
|
|
57
|
-
|
|
58
53
|
def respond_with(response, client)
|
|
59
54
|
body = custom_load response.body
|
|
60
55
|
uri = Addressable::URI.parse response.env.url
|
|
61
56
|
status = response.status
|
|
62
|
-
|
|
57
|
+
raise_on_error! status, body
|
|
63
58
|
extract_headers_from(response).
|
|
64
59
|
merge('content' => body,
|
|
65
60
|
'client' => client,
|
|
66
61
|
'path' => uri.path.gsub(%r{/api2/}, ''))
|
|
67
62
|
end
|
|
68
63
|
|
|
69
|
-
#
|
|
64
|
+
# Keep only pagination headers
|
|
70
65
|
def extract_headers_from(response)
|
|
71
66
|
response.
|
|
72
67
|
headers.
|
|
73
68
|
to_h.
|
|
74
69
|
keep_if { |k, _v| PAGINATION_HEADERS.include?(k) }
|
|
75
70
|
end
|
|
76
|
-
|
|
77
|
-
def respond_with_error(code, body)
|
|
78
|
-
raise(Lokalise::Error, body['error'] || body) unless Lokalise::Error::ERRORS.key? code
|
|
79
|
-
|
|
80
|
-
raise Lokalise::Error::ERRORS[code].from_response(body)
|
|
81
|
-
end
|
|
82
71
|
end
|
|
83
72
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module RubyLokaliseApi
|
|
4
4
|
module Resources
|
|
5
5
|
class Base
|
|
6
|
-
using
|
|
6
|
+
using RubyLokaliseApi::Utils::StringUtils
|
|
7
7
|
|
|
8
|
-
extend
|
|
9
|
-
extend
|
|
10
|
-
include
|
|
11
|
-
extend
|
|
8
|
+
extend RubyLokaliseApi::Request
|
|
9
|
+
extend RubyLokaliseApi::Utils::AttributeHelpers
|
|
10
|
+
include RubyLokaliseApi::Utils::AttributeHelpers
|
|
11
|
+
extend RubyLokaliseApi::Utils::EndpointHelpers
|
|
12
12
|
|
|
13
13
|
attr_reader :raw_data, :project_id, :client, :path, :branch, :user_id, :team_id, :key_id
|
|
14
14
|
|
|
@@ -19,7 +19,7 @@ module Lokalise
|
|
|
19
19
|
#
|
|
20
20
|
# @param response [Hash]
|
|
21
21
|
# @param endpoint_generator [Proc] Generate proper paths for certain resources
|
|
22
|
-
# @return [
|
|
22
|
+
# @return [RubyLokaliseApi::Resources::Base]
|
|
23
23
|
def initialize(response, endpoint_generator = nil)
|
|
24
24
|
populate_attributes_for response['content']
|
|
25
25
|
extract_common_attributes_for response['content']
|
|
@@ -120,7 +120,7 @@ module Lokalise
|
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
def produce_collection(model_class, response, params)
|
|
123
|
-
Module.const_get("
|
|
123
|
+
Module.const_get("RubyLokaliseApi::Collections::#{model_class}").new(response, params)
|
|
124
124
|
end
|
|
125
125
|
end
|
|
126
126
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module RubyLokaliseApi
|
|
4
4
|
module Resources
|
|
5
5
|
class File < Base
|
|
6
6
|
class << self
|
|
@@ -9,7 +9,7 @@ module Lokalise
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def upload(client, path, params)
|
|
12
|
-
klass =
|
|
12
|
+
klass = RubyLokaliseApi::Resources::QueuedProcess
|
|
13
13
|
klass.new post(path, client, params),
|
|
14
14
|
->(project_id, id) { klass.endpoint(project_id, id) }
|
|
15
15
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module RubyLokaliseApi
|
|
4
4
|
module Resources
|
|
5
5
|
class Snapshot < Base
|
|
6
6
|
ID_KEY = 'snapshot_id'
|
|
@@ -12,7 +12,7 @@ module Lokalise
|
|
|
12
12
|
|
|
13
13
|
class << self
|
|
14
14
|
def restore(client, path, *_args)
|
|
15
|
-
klass =
|
|
15
|
+
klass = RubyLokaliseApi::Resources::Project
|
|
16
16
|
klass.new post(path, client),
|
|
17
17
|
->(project_id, *_ids) { klass.endpoint(project_id) }
|
|
18
18
|
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RubyLokaliseApi
|
|
4
|
+
module Rest
|
|
5
|
+
module Branches
|
|
6
|
+
# Returns all branches for the given project
|
|
7
|
+
#
|
|
8
|
+
# @see https://lokalise.com/api2docs/curl/#transition-list-all-branches-get
|
|
9
|
+
# @return [RubyLokaliseApi::Collection::Branch<RubyLokaliseApi::Resources::Branch>]
|
|
10
|
+
# @param project_id [String]
|
|
11
|
+
# @param params [Hash]
|
|
12
|
+
def branches(project_id, params = {})
|
|
13
|
+
c_r RubyLokaliseApi::Collections::Branch, :all, project_id, params
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Creates a new branch inside the given project
|
|
17
|
+
#
|
|
18
|
+
# @see https://lokalise.com/api2docs/curl/#transition-create-a-branch-post
|
|
19
|
+
# @return [RubyLokaliseApi::Resources::Branch]
|
|
20
|
+
# @param project_id [String]
|
|
21
|
+
# @param params [Hash]
|
|
22
|
+
def create_branch(project_id, params)
|
|
23
|
+
c_r RubyLokaliseApi::Resources::Branch, :create, project_id, params
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Returns a single branch for the given project
|
|
27
|
+
#
|
|
28
|
+
# @see https://lokalise.com/api2docs/curl/#transition-retrieve-a-branch-get
|
|
29
|
+
# @return [RubyLokaliseApi::Resources::Branch]
|
|
30
|
+
# @param project_id [String]
|
|
31
|
+
# @param branch_id [String, Integer]
|
|
32
|
+
def branch(project_id, branch_id)
|
|
33
|
+
c_r RubyLokaliseApi::Resources::Branch, :find, [project_id, branch_id]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Updates the given branch inside the given project
|
|
37
|
+
#
|
|
38
|
+
# @see https://lokalise.com/api2docs/curl/#transition-update-a-branch-put
|
|
39
|
+
# @return [RubyLokaliseApi::Resources::Branch]
|
|
40
|
+
# @param project_id [String]
|
|
41
|
+
# @param branch_id [String, Integer]
|
|
42
|
+
# @param params [Hash]
|
|
43
|
+
def update_branch(project_id, branch_id, params)
|
|
44
|
+
c_r RubyLokaliseApi::Resources::Branch, :update, [project_id, branch_id], params
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Deletes branch inside the given project
|
|
48
|
+
#
|
|
49
|
+
# @see https://lokalise.com/api2docs/curl/#transition-delete-a-branch-delete
|
|
50
|
+
# @return [Hash]
|
|
51
|
+
# @param project_id [String]
|
|
52
|
+
# @param branch_id [String, Integer]
|
|
53
|
+
def destroy_branch(project_id, branch_id)
|
|
54
|
+
c_r RubyLokaliseApi::Resources::Branch, :destroy, [project_id, branch_id]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Merges a branch in the project
|
|
58
|
+
#
|
|
59
|
+
# @see https://lokalise.com/api2docs/curl/#transition-merge-a-branch-post
|
|
60
|
+
# @return [Hash]
|
|
61
|
+
# @param project_id [String]
|
|
62
|
+
# @param branch_id [String, Integer]
|
|
63
|
+
# @param params [Hash]
|
|
64
|
+
def merge_branch(project_id, branch_id, params = {})
|
|
65
|
+
c_r RubyLokaliseApi::Resources::Branch, :merge, [project_id, branch_id, :merge], params
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module RubyLokaliseApi
|
|
4
|
+
module Rest
|
|
5
|
+
module Comments
|
|
6
|
+
# Returns a single comment for the given key
|
|
7
|
+
#
|
|
8
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-comment-get
|
|
9
|
+
# @return [RubyLokaliseApi::Resources::Comment]
|
|
10
|
+
# @param project_id [String]
|
|
11
|
+
# @param key_id [String, Integer]
|
|
12
|
+
# @param comment_id [String, Integer]
|
|
13
|
+
def comment(project_id, key_id, comment_id)
|
|
14
|
+
c_r RubyLokaliseApi::Resources::KeyComment, :find, [project_id, key_id, comment_id]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Returns all comments for all keys inside the given project
|
|
18
|
+
#
|
|
19
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-project-comments-get
|
|
20
|
+
# @return [RubyLokaliseApi::Collection::Comment<RubyLokaliseApi::Resources::Comment>]
|
|
21
|
+
# @param project_id [String]
|
|
22
|
+
# @param params [Hash]
|
|
23
|
+
def project_comments(project_id, params = {})
|
|
24
|
+
c_r RubyLokaliseApi::Collections::ProjectComment, :all, project_id, params
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Returns all comments for the given key inside the given project
|
|
28
|
+
#
|
|
29
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-key-comments-get
|
|
30
|
+
# @return [RubyLokaliseApi::Collection::Comment<RubyLokaliseApi::Resources::Comment>]
|
|
31
|
+
# @param project_id [String]
|
|
32
|
+
# @param key_id [String, Integer]
|
|
33
|
+
# @param params [Hash]
|
|
34
|
+
def comments(project_id, key_id, params = {})
|
|
35
|
+
c_r RubyLokaliseApi::Collections::KeyComment, :all, [project_id, key_id], params
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Creates one or more comments for the given key inside the given project
|
|
39
|
+
#
|
|
40
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-comments-post
|
|
41
|
+
# @return [RubyLokaliseApi::Collection::Comment<RubyLokaliseApi::Resources::Comment>]
|
|
42
|
+
# @param project_id [String]
|
|
43
|
+
# @param key_id [String, Integer]
|
|
44
|
+
# @param params [Hash, Array<Hash>]
|
|
45
|
+
def create_comments(project_id, key_id, params)
|
|
46
|
+
c_r RubyLokaliseApi::Resources::KeyComment, :create, [project_id, key_id], params, :comments
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Deletes comment for the given key inside the given project
|
|
50
|
+
#
|
|
51
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-comment-delete
|
|
52
|
+
# @return [Hash]
|
|
53
|
+
# @param project_id [String]
|
|
54
|
+
# @param key_id [String, Integer]
|
|
55
|
+
# @param comment_id [String, Integer]
|
|
56
|
+
def destroy_comment(project_id, key_id, comment_id)
|
|
57
|
+
c_r RubyLokaliseApi::Resources::KeyComment, :destroy, [project_id, key_id, comment_id]
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|