ruby-lokalise-api 7.2.0 → 8.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.
Files changed (160) hide show
  1. checksums.yaml +4 -4
  2. data/lib/ruby_lokalise_api/base_client.rb +2 -34
  3. data/lib/ruby_lokalise_api/client.rb +2 -31
  4. data/lib/ruby_lokalise_api/collections/base.rb +97 -70
  5. data/lib/ruby_lokalise_api/collections/branches.rb +11 -0
  6. data/lib/ruby_lokalise_api/collections/contributors.rb +10 -0
  7. data/lib/ruby_lokalise_api/collections/custom_translation_statuses.rb +10 -0
  8. data/lib/ruby_lokalise_api/collections/files.rb +10 -0
  9. data/lib/ruby_lokalise_api/collections/key_comments.rb +11 -0
  10. data/lib/ruby_lokalise_api/collections/keys.rb +10 -0
  11. data/lib/ruby_lokalise_api/collections/orders.rb +10 -0
  12. data/lib/ruby_lokalise_api/collections/payment_cards.rb +10 -0
  13. data/lib/ruby_lokalise_api/collections/project_comments.rb +12 -0
  14. data/lib/ruby_lokalise_api/collections/project_languages.rb +11 -0
  15. data/lib/ruby_lokalise_api/collections/projects.rb +10 -0
  16. data/lib/ruby_lokalise_api/collections/queued_processes.rb +11 -0
  17. data/lib/ruby_lokalise_api/collections/screenshots.rb +10 -0
  18. data/lib/ruby_lokalise_api/collections/segments.rb +10 -0
  19. data/lib/ruby_lokalise_api/collections/snapshots.rb +10 -0
  20. data/lib/ruby_lokalise_api/collections/system_languages.rb +11 -0
  21. data/lib/ruby_lokalise_api/collections/tasks.rb +10 -0
  22. data/lib/ruby_lokalise_api/collections/team_user_groups.rb +11 -0
  23. data/lib/ruby_lokalise_api/collections/team_users.rb +10 -0
  24. data/lib/ruby_lokalise_api/collections/teams.rb +10 -0
  25. data/lib/ruby_lokalise_api/collections/translation_providers.rb +10 -0
  26. data/lib/ruby_lokalise_api/collections/translations.rb +10 -0
  27. data/lib/ruby_lokalise_api/collections/webhooks.rb +10 -0
  28. data/lib/ruby_lokalise_api/concerns/attrs_loadable.rb +32 -0
  29. data/lib/ruby_lokalise_api/concerns/hash_accessible.rb +16 -0
  30. data/lib/ruby_lokalise_api/concerns/unsupportable.rb +16 -0
  31. data/lib/ruby_lokalise_api/connection.rb +17 -9
  32. data/lib/ruby_lokalise_api/data/collection_attributes.yml +52 -0
  33. data/lib/ruby_lokalise_api/data/{attributes.yml → resource_attributes.yml} +64 -6
  34. data/lib/ruby_lokalise_api/endpoints/base_endpoint.rb +66 -0
  35. data/lib/ruby_lokalise_api/endpoints/branches_endpoint.rb +16 -0
  36. data/lib/ruby_lokalise_api/endpoints/contributors_endpoint.rb +16 -0
  37. data/lib/ruby_lokalise_api/endpoints/custom_translation_statuses_endpoint.rb +16 -0
  38. data/lib/ruby_lokalise_api/endpoints/files_endpoint.rb +16 -0
  39. data/lib/ruby_lokalise_api/endpoints/jwts_endpoint.rb +15 -0
  40. data/lib/ruby_lokalise_api/endpoints/key_comments_endpoint.rb +17 -0
  41. data/lib/ruby_lokalise_api/endpoints/keys_endpoint.rb +16 -0
  42. data/lib/ruby_lokalise_api/endpoints/main_endpoint.rb +25 -0
  43. data/lib/ruby_lokalise_api/endpoints/oauth2/oauth2_endpoint.rb +33 -0
  44. data/lib/ruby_lokalise_api/endpoints/orders_endpoint.rb +16 -0
  45. data/lib/ruby_lokalise_api/endpoints/payment_cards_endpoint.rb +15 -0
  46. data/lib/ruby_lokalise_api/endpoints/project_comments_endpoint.rb +15 -0
  47. data/lib/ruby_lokalise_api/endpoints/project_languages_endpoint.rb +16 -0
  48. data/lib/ruby_lokalise_api/endpoints/projects_endpoint.rb +15 -0
  49. data/lib/ruby_lokalise_api/endpoints/queued_processes_endpoint.rb +16 -0
  50. data/lib/ruby_lokalise_api/endpoints/screenshots_endpoint.rb +16 -0
  51. data/lib/ruby_lokalise_api/endpoints/segments_endpoint.rb +17 -0
  52. data/lib/ruby_lokalise_api/endpoints/snapshots_endpoint.rb +16 -0
  53. data/lib/ruby_lokalise_api/endpoints/system_languages_endpoint.rb +15 -0
  54. data/lib/ruby_lokalise_api/endpoints/tasks_endpoint.rb +16 -0
  55. data/lib/ruby_lokalise_api/endpoints/team_user_billing_details_endpoint.rb +15 -0
  56. data/lib/ruby_lokalise_api/endpoints/team_user_groups_endpoint.rb +16 -0
  57. data/lib/ruby_lokalise_api/endpoints/team_users_endpoint.rb +16 -0
  58. data/lib/ruby_lokalise_api/endpoints/teams_endpoint.rb +13 -0
  59. data/lib/ruby_lokalise_api/endpoints/translation_providers_endpoint.rb +16 -0
  60. data/lib/ruby_lokalise_api/endpoints/translations_endpoint.rb +16 -0
  61. data/lib/ruby_lokalise_api/endpoints/webhooks_endpoint.rb +16 -0
  62. data/lib/ruby_lokalise_api/error.rb +1 -0
  63. data/lib/ruby_lokalise_api/generics.rb +25 -0
  64. data/lib/ruby_lokalise_api/json_handler.rb +1 -2
  65. data/lib/ruby_lokalise_api/oauth2/auth.rb +48 -39
  66. data/lib/ruby_lokalise_api/oauth2_client.rb +3 -0
  67. data/lib/ruby_lokalise_api/request.rb +66 -18
  68. data/lib/ruby_lokalise_api/resources/base.rb +41 -185
  69. data/lib/ruby_lokalise_api/resources/branch.rb +2 -21
  70. data/lib/ruby_lokalise_api/resources/comment.rb +11 -0
  71. data/lib/ruby_lokalise_api/resources/contributor.rb +1 -9
  72. data/lib/ruby_lokalise_api/resources/custom_translation_status.rb +1 -13
  73. data/lib/ruby_lokalise_api/resources/file.rb +2 -16
  74. data/lib/ruby_lokalise_api/resources/jwt.rb +2 -5
  75. data/lib/ruby_lokalise_api/resources/key.rb +5 -8
  76. data/lib/ruby_lokalise_api/resources/oauth2_refreshed_token.rb +9 -0
  77. data/lib/ruby_lokalise_api/resources/oauth2_token.rb +9 -0
  78. data/lib/ruby_lokalise_api/resources/order.rb +2 -9
  79. data/lib/ruby_lokalise_api/resources/payment_card.rb +2 -8
  80. data/lib/ruby_lokalise_api/resources/project.rb +85 -16
  81. data/lib/ruby_lokalise_api/resources/project_language.rb +2 -10
  82. data/lib/ruby_lokalise_api/resources/queued_process.rb +3 -10
  83. data/lib/ruby_lokalise_api/resources/screenshot.rb +1 -9
  84. data/lib/ruby_lokalise_api/resources/segment.rb +2 -11
  85. data/lib/ruby_lokalise_api/resources/snapshot.rb +3 -18
  86. data/lib/ruby_lokalise_api/resources/system_language.rb +2 -1
  87. data/lib/ruby_lokalise_api/resources/task.rb +1 -9
  88. data/lib/ruby_lokalise_api/resources/team.rb +2 -0
  89. data/lib/ruby_lokalise_api/resources/team_user.rb +1 -9
  90. data/lib/ruby_lokalise_api/resources/team_user_billing_details.rb +10 -5
  91. data/lib/ruby_lokalise_api/resources/team_user_group.rb +6 -14
  92. data/lib/ruby_lokalise_api/resources/translation.rb +2 -9
  93. data/lib/ruby_lokalise_api/resources/translation_provider.rb +2 -9
  94. data/lib/ruby_lokalise_api/resources/webhook.rb +2 -16
  95. data/lib/ruby_lokalise_api/response.rb +50 -0
  96. data/lib/ruby_lokalise_api/rest/branches.rb +52 -27
  97. data/lib/ruby_lokalise_api/rest/comments.rb +48 -23
  98. data/lib/ruby_lokalise_api/rest/contributors.rb +47 -23
  99. data/lib/ruby_lokalise_api/rest/custom_translation_statuses.rb +60 -36
  100. data/lib/ruby_lokalise_api/rest/files.rb +43 -24
  101. data/lib/ruby_lokalise_api/rest/jwts.rb +21 -0
  102. data/lib/ruby_lokalise_api/rest/keys.rb +67 -34
  103. data/lib/ruby_lokalise_api/rest/languages.rb +57 -28
  104. data/lib/ruby_lokalise_api/rest/orders.rb +36 -14
  105. data/lib/ruby_lokalise_api/rest/payment_cards.rb +29 -12
  106. data/lib/ruby_lokalise_api/rest/projects.rb +55 -32
  107. data/lib/ruby_lokalise_api/rest/queued_processes.rb +21 -13
  108. data/lib/ruby_lokalise_api/rest/screenshots.rb +45 -20
  109. data/lib/ruby_lokalise_api/rest/segments.rb +31 -18
  110. data/lib/ruby_lokalise_api/rest/snapshots.rb +34 -14
  111. data/lib/ruby_lokalise_api/rest/tasks.rb +41 -19
  112. data/lib/ruby_lokalise_api/rest/team_user_billing_details.rb +33 -12
  113. data/lib/ruby_lokalise_api/rest/team_user_groups.rb +82 -50
  114. data/lib/ruby_lokalise_api/rest/team_users.rb +35 -18
  115. data/lib/ruby_lokalise_api/rest/teams.rb +10 -5
  116. data/lib/ruby_lokalise_api/rest/translation_providers.rb +24 -9
  117. data/lib/ruby_lokalise_api/rest/translations.rb +28 -15
  118. data/lib/ruby_lokalise_api/rest/webhooks.rb +54 -30
  119. data/lib/ruby_lokalise_api/rest.rb +31 -0
  120. data/lib/ruby_lokalise_api/utils/attributes.rb +37 -0
  121. data/lib/ruby_lokalise_api/utils/classes.rb +28 -0
  122. data/lib/ruby_lokalise_api/utils/keys.rb +33 -0
  123. data/lib/ruby_lokalise_api/utils/loaders.rb +27 -0
  124. data/lib/ruby_lokalise_api/utils/strings.rb +20 -0
  125. data/lib/ruby_lokalise_api/version.rb +1 -1
  126. data/lib/ruby_lokalise_api.rb +6 -2
  127. data/ruby-lokalise-api.gemspec +3 -3
  128. metadata +76 -47
  129. data/lib/ruby_lokalise_api/base_request.rb +0 -73
  130. data/lib/ruby_lokalise_api/collections/branch.rb +0 -15
  131. data/lib/ruby_lokalise_api/collections/contributor.rb +0 -13
  132. data/lib/ruby_lokalise_api/collections/custom_translation_status.rb +0 -15
  133. data/lib/ruby_lokalise_api/collections/file.rb +0 -13
  134. data/lib/ruby_lokalise_api/collections/key.rb +0 -20
  135. data/lib/ruby_lokalise_api/collections/key_comment.rb +0 -14
  136. data/lib/ruby_lokalise_api/collections/order.rb +0 -13
  137. data/lib/ruby_lokalise_api/collections/payment_card.rb +0 -13
  138. data/lib/ruby_lokalise_api/collections/project.rb +0 -13
  139. data/lib/ruby_lokalise_api/collections/project_comment.rb +0 -13
  140. data/lib/ruby_lokalise_api/collections/project_language.rb +0 -13
  141. data/lib/ruby_lokalise_api/collections/queued_process.rb +0 -15
  142. data/lib/ruby_lokalise_api/collections/screenshot.rb +0 -13
  143. data/lib/ruby_lokalise_api/collections/segment.rb +0 -15
  144. data/lib/ruby_lokalise_api/collections/snapshot.rb +0 -13
  145. data/lib/ruby_lokalise_api/collections/system_language.rb +0 -13
  146. data/lib/ruby_lokalise_api/collections/task.rb +0 -13
  147. data/lib/ruby_lokalise_api/collections/team.rb +0 -13
  148. data/lib/ruby_lokalise_api/collections/team_user.rb +0 -13
  149. data/lib/ruby_lokalise_api/collections/team_user_group.rb +0 -15
  150. data/lib/ruby_lokalise_api/collections/translation.rb +0 -13
  151. data/lib/ruby_lokalise_api/collections/translation_provider.rb +0 -13
  152. data/lib/ruby_lokalise_api/collections/webhook.rb +0 -13
  153. data/lib/ruby_lokalise_api/oauth2/refresh.rb +0 -16
  154. data/lib/ruby_lokalise_api/oauth2/token.rb +0 -16
  155. data/lib/ruby_lokalise_api/resources/key_comment.rb +0 -19
  156. data/lib/ruby_lokalise_api/resources/project_comment.rb +0 -10
  157. data/lib/ruby_lokalise_api/rest/jwt.rb +0 -15
  158. data/lib/ruby_lokalise_api/utils/attribute_helpers.rb +0 -86
  159. data/lib/ruby_lokalise_api/utils/endpoint_helpers.rb +0 -14
  160. data/lib/ruby_lokalise_api/utils/string_utils.rb +0 -33
@@ -3,25 +3,10 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class Snapshot < Base
6
- ID_KEY = 'snapshot_id'
7
- supports :destroy
6
+ MAIN_PARAMS = %i[project_id snapshot_id].freeze
7
+ no_support_for %i[update reload_data]
8
8
 
9
- def restore
10
- self.class.restore @client, @path
11
- end
12
-
13
- class << self
14
- def restore(client, path, *_args)
15
- klass = RubyLokaliseApi::Resources::Project
16
- klass.new post(path, client),
17
- ->(project_id, *_ids) { klass.endpoint(project_id) }
18
- end
19
-
20
- def endpoint(project_id, snapshot_id = nil)
21
- path_from projects: project_id,
22
- snapshots: snapshot_id
23
- end
24
- end
9
+ delegate_call :restore, :restore_snapshot
25
10
  end
26
11
  end
27
12
  end
@@ -3,7 +3,8 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class SystemLanguage < Base
6
- DATA_KEY = 'Language'
6
+ MAIN_PARAMS = [].freeze
7
+ no_support_for %i[update destroy reload_data]
7
8
  end
8
9
  end
9
10
  end
@@ -3,15 +3,7 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class Task < Base
6
- ID_KEY = 'task_id'
7
- supports :update, :destroy, [:reload_data, '', :find]
8
-
9
- class << self
10
- def endpoint(project_id, task_id = nil)
11
- path_from projects: project_id,
12
- tasks: task_id
13
- end
14
- end
6
+ MAIN_PARAMS = %i[project_id task_id].freeze
15
7
  end
16
8
  end
17
9
  end
@@ -3,6 +3,8 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class Team < Base
6
+ MAIN_PARAMS = [].freeze
7
+ no_support_for %i[update destroy reload_data]
6
8
  end
7
9
  end
8
10
  end
@@ -3,15 +3,7 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class TeamUser < Base
6
- ID_KEY = 'user_id'
7
- supports :update, :destroy, [:reload_data, '', :find]
8
-
9
- class << self
10
- def endpoint(team_id, team_user_id = nil)
11
- path_from teams: team_id,
12
- users: team_user_id
13
- end
14
- end
6
+ MAIN_PARAMS = %i[team_id user_id].freeze
15
7
  end
16
8
  end
17
9
  end
@@ -3,11 +3,16 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class TeamUserBillingDetails < Base
6
- class << self
7
- def endpoint(team_id)
8
- path_from teams: team_id,
9
- billing_details: ''
10
- end
6
+ MAIN_PARAMS = %i[team_id].freeze
7
+ no_support_for %i[destroy]
8
+
9
+ def update(params)
10
+ response = reinit_endpoint(params).do_put
11
+
12
+ # We must patch content because the API does not return team_id and it's mandatory to build resource URL
13
+ response.patch_content_with 'team_id', @team_id
14
+
15
+ self.class.new response
11
16
  end
12
17
  end
13
18
  end
@@ -3,21 +3,13 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class TeamUserGroup < Base
6
- DATA_KEY = 'Group'
7
- ID_KEY = 'group_id'
8
- supports :update, :destroy,
9
- [:add_projects, '/projects/add', :update],
10
- [:remove_projects, '/projects/remove', :update],
11
- [:add_users, '/members/add', :update],
12
- [:remove_users, '/members/remove', :update],
13
- [:reload_data, '', :find]
6
+ MAIN_PARAMS = %i[team_id group_id].freeze
7
+ DATA_KEY = 'group'
14
8
 
15
- class << self
16
- def endpoint(team_id, team_user_group_id = nil, *actions)
17
- path_from teams: team_id,
18
- groups: [team_user_group_id, *actions]
19
- end
20
- end
9
+ delegate_call :add_projects, :add_projects_to_group
10
+ delegate_call :remove_projects, :remove_projects_from_group
11
+ delegate_call :add_members, :add_members_to_group
12
+ delegate_call :remove_members, :remove_members_from_group
21
13
  end
22
14
  end
23
15
  end
@@ -3,15 +3,8 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class Translation < Base
6
- ID_KEY = 'translation_id'
7
- supports :update, [:reload_data, '', :find]
8
-
9
- class << self
10
- def endpoint(project_id, translation_id = nil)
11
- path_from projects: project_id,
12
- translations: translation_id
13
- end
14
- end
6
+ MAIN_PARAMS = %i[project_id translation_id].freeze
7
+ no_support_for %i[destroy]
15
8
  end
16
9
  end
17
10
  end
@@ -3,15 +3,8 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class TranslationProvider < Base
6
- supports [:reload_data, '', :find]
7
- ID_KEY = 'provider_id'
8
-
9
- class << self
10
- def endpoint(team_id, provider_id = nil)
11
- path_from teams: team_id,
12
- translation_providers: provider_id
13
- end
14
- end
6
+ MAIN_PARAMS = %i[team_id provider_id].freeze
7
+ no_support_for %i[update destroy]
15
8
  end
16
9
  end
17
10
  end
@@ -3,23 +3,9 @@
3
3
  module RubyLokaliseApi
4
4
  module Resources
5
5
  class Webhook < Base
6
- ID_KEY = 'webhook_id'
7
- supports :update, :destroy, [:reload_data, '', :find]
6
+ MAIN_PARAMS = %i[project_id webhook_id].freeze
8
7
 
9
- def regenerate_secret
10
- self.class.regenerate_secret @client, "#{@path}/secret/regenerate"
11
- end
12
-
13
- class << self
14
- def regenerate_secret(client, path, *_args)
15
- patch(path, client)['content']
16
- end
17
-
18
- def endpoint(project_id, webhook_id = nil, *actions)
19
- path_from projects: project_id,
20
- webhooks: [webhook_id, *actions]
21
- end
22
- end
8
+ delegate_call :regenerate_secret, :regenerate_webhook_secret
23
9
  end
24
10
  end
25
11
  end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ # This class is utilized to prepare Lokalise API response
5
+ class Response
6
+ # Lokalise returns pagination info in special headers
7
+ PAGINATION_HEADERS = %w[x-pagination-total-count x-pagination-page-count x-pagination-limit
8
+ x-pagination-page].freeze
9
+
10
+ attr_reader :content, :endpoint, :headers
11
+
12
+ def initialize(body, endpoint, raw_headers = {})
13
+ @content = body
14
+ @endpoint = endpoint
15
+ @headers = extract_headers_from raw_headers
16
+ end
17
+
18
+ # Adds attribute to the raw content returned by the API.
19
+ # Sometimes this is required to store important data like team_id or project_id
20
+ # that is not returned in the response but required to properly build resources URIs
21
+ def patch_content_with(attribute, value)
22
+ @content[attribute] = value
23
+ end
24
+
25
+ # Sets endpoint to a new value.
26
+ # This is required in rare cases when the response contains a resource of different kind.
27
+ # For example, when restoring a snapshot, it returns a new project which means that
28
+ # initially we were working with a snapshots endpoint but the response should contain
29
+ # the projects endpoint to properly preserve method chaining
30
+ def patch_endpoint_with(new_endpoint)
31
+ @endpoint = new_endpoint
32
+ end
33
+
34
+ # Returns an array of pagination headers
35
+ def pagination_headers
36
+ self.class.const_get(:PAGINATION_HEADERS)
37
+ end
38
+
39
+ private
40
+
41
+ # Keep only pagination headers
42
+ def extract_headers_from(raw_headers)
43
+ raw_headers.
44
+ to_h.
45
+ keep_if { |header, _value| pagination_headers.include?(header) }.
46
+ transform_keys(&:to_sym).
47
+ transform_values(&:to_i)
48
+ end
49
+ end
50
+ end
@@ -3,66 +3,91 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module Branches
6
- # Returns all branches for the given project
6
+ # Returns project branches
7
7
  #
8
8
  # @see https://developers.lokalise.com/reference/list-all-branches
9
- # @return [RubyLokaliseApi::Collection::Branch<RubyLokaliseApi::Resources::Branch>]
9
+ # @return [RubyLokaliseApi::Collections::Branches]
10
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
11
+ # @param req_params [Hash]
12
+ def branches(project_id, req_params = {})
13
+ name = 'Branches'
14
+ params = { query: project_id, req: req_params }
15
+
16
+ data = endpoint(name: name, params: params).do_get
17
+
18
+ collection name, data
14
19
  end
15
20
 
16
- # Creates a new branch inside the given project
21
+ # Returns a single branch
17
22
  #
18
- # @see https://developers.lokalise.com/reference/create-a-branch
23
+ # @see https://developers.lokalise.com/reference/retrieve-a-branch
19
24
  # @return [RubyLokaliseApi::Resources::Branch]
20
25
  # @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
26
+ # @param branch_id [String, Integer]
27
+ def branch(project_id, branch_id)
28
+ params = { query: [project_id, branch_id] }
29
+
30
+ data = endpoint(name: 'Branches', params: params).do_get
31
+
32
+ resource 'Branch', data
24
33
  end
25
34
 
26
- # Returns a single branch for the given project
35
+ # Creates a branch
27
36
  #
28
- # @see https://developers.lokalise.com/reference/retrieve-a-branch
37
+ # @see https://developers.lokalise.com/reference/create-a-branch
29
38
  # @return [RubyLokaliseApi::Resources::Branch]
30
39
  # @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]
40
+ # @param req_params [Hash]
41
+ def create_branch(project_id, req_params)
42
+ params = { query: project_id, req: req_params }
43
+
44
+ data = endpoint(name: 'Branches', params: params).do_post
45
+
46
+ resource 'Branch', data
34
47
  end
35
48
 
36
- # Updates the given branch inside the given project
49
+ # Updates a branch
37
50
  #
38
51
  # @see https://developers.lokalise.com/reference/update-a-branch
39
52
  # @return [RubyLokaliseApi::Resources::Branch]
40
53
  # @param project_id [String]
41
54
  # @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
55
+ # @param req_params [Hash]
56
+ def update_branch(project_id, branch_id, req_params = {})
57
+ params = { query: [project_id, branch_id], req: req_params }
58
+
59
+ data = endpoint(name: 'Branches', params: params).do_put
60
+
61
+ resource 'Branch', data
45
62
  end
46
63
 
47
- # Deletes branch inside the given project
64
+ # Deletes a branch
48
65
  #
49
66
  # @see https://developers.lokalise.com/reference/delete-a-branch
50
- # @return [Hash]
67
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
51
68
  # @param project_id [String]
52
69
  # @param branch_id [String, Integer]
53
70
  def destroy_branch(project_id, branch_id)
54
- c_r RubyLokaliseApi::Resources::Branch, :destroy, [project_id, branch_id]
71
+ params = { query: [project_id, branch_id] }
72
+
73
+ data = endpoint(name: 'Branches', params: params).do_delete
74
+
75
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
55
76
  end
56
77
 
57
- # Merges a branch in the project
78
+ # Merges two branches
58
79
  #
59
80
  # @see https://developers.lokalise.com/reference/merge-a-branch
60
- # @return [Hash]
81
+ # @return [RubyLokaliseApi::Generics::MergedBranches]
61
82
  # @param project_id [String]
62
83
  # @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
84
+ # @param req_params [Hash]
85
+ def merge_branch(project_id, branch_id, req_params)
86
+ params = { query: [project_id, branch_id, :merge], req: req_params }
87
+
88
+ data = endpoint(name: 'Branches', params: params).do_post
89
+
90
+ RubyLokaliseApi::Generics::MergedBranches.new data.content
66
91
  end
67
92
  end
68
93
  end
@@ -3,7 +3,9 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module Comments
6
- # Returns a single comment for the given key
6
+ using RubyLokaliseApi::Utils::Classes
7
+
8
+ # Returns a single key comment
7
9
  #
8
10
  # @see https://developers.lokalise.com/reference/retrieve-a-comment
9
11
  # @return [RubyLokaliseApi::Resources::Comment]
@@ -11,50 +13,73 @@ module RubyLokaliseApi
11
13
  # @param key_id [String, Integer]
12
14
  # @param comment_id [String, Integer]
13
15
  def comment(project_id, key_id, comment_id)
14
- c_r RubyLokaliseApi::Resources::KeyComment, :find, [project_id, key_id, comment_id]
16
+ params = { query: [project_id, key_id, comment_id] }
17
+
18
+ data = endpoint(name: 'KeyComments', params: params).do_get
19
+
20
+ resource 'Comment', data
15
21
  end
16
22
 
17
- # Returns all comments for all keys inside the given project
23
+ # Returns all comments for a key
18
24
  #
19
- # @see https://developers.lokalise.com/reference/list-project-comments
20
- # @return [RubyLokaliseApi::Collection::Comment<RubyLokaliseApi::Resources::Comment>]
25
+ # @see https://developers.lokalise.com/reference/list-key-comments
26
+ # @return [RubyLokaliseApi::Collections::KeyComments]
21
27
  # @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
28
+ # @param key_id [String, Integer]
29
+ # @param req_params [Hash]
30
+ def comments(project_id, key_id, req_params = {})
31
+ name = 'KeyComments'
32
+ params = { query: [project_id, key_id], req: req_params }
33
+
34
+ data = endpoint(name: name, params: params).do_get
35
+
36
+ collection name, data
25
37
  end
26
38
 
27
- # Returns all comments for the given key inside the given project
39
+ # Returns all comments for a project
28
40
  #
29
- # @see https://developers.lokalise.com/reference/list-key-comments
30
- # @return [RubyLokaliseApi::Collection::Comment<RubyLokaliseApi::Resources::Comment>]
41
+ # @see https://developers.lokalise.com/reference/list-project-comments
42
+ # @return [RubyLokaliseApi::Collections::ProjectComments]
31
43
  # @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
44
+ # @param req_params [Hash]
45
+ def project_comments(project_id, req_params = {})
46
+ name = 'ProjectComments'
47
+ params = { query: project_id, req: req_params }
48
+
49
+ data = endpoint(name: name, params: params).do_get
50
+
51
+ collection name, data
36
52
  end
37
53
 
38
- # Creates one or more comments for the given key inside the given project
54
+ # Creates one or multiple comments for a key
39
55
  #
40
56
  # @see https://developers.lokalise.com/reference/create-comments
41
- # @return [RubyLokaliseApi::Collection::Comment<RubyLokaliseApi::Resources::Comment>]
57
+ # @return [RubyLokaliseApi::Collections::KeyComments]
42
58
  # @param project_id [String]
43
59
  # @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
60
+ # @param req_params [Hash, Array]
61
+ def create_comments(project_id, key_id, req_params)
62
+ name = 'KeyComments'
63
+ params = { query: [project_id, key_id], req: req_params.to_array_obj(:comments) }
64
+
65
+ data = endpoint(name: name, params: params).do_post
66
+
67
+ collection name, data
47
68
  end
48
69
 
49
- # Deletes comment for the given key inside the given project
70
+ # Deletes a single key comment
50
71
  #
51
72
  # @see https://developers.lokalise.com/reference/delete-a-comment
52
- # @return [Hash]
73
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
53
74
  # @param project_id [String]
54
75
  # @param key_id [String, Integer]
55
76
  # @param comment_id [String, Integer]
56
77
  def destroy_comment(project_id, key_id, comment_id)
57
- c_r RubyLokaliseApi::Resources::KeyComment, :destroy, [project_id, key_id, comment_id]
78
+ params = { query: [project_id, key_id, comment_id] }
79
+
80
+ data = endpoint(name: 'KeyComments', params: params).do_delete
81
+
82
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
58
83
  end
59
84
  end
60
85
  end
@@ -3,55 +3,79 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module Contributors
6
- # Returns all contributors for the given project
7
- #
8
- # @see https://developers.lokalise.com/reference/list-all-contributors
9
- # @return [RubyLokaliseApi::Collection::Contributor<RubyLokaliseApi::Resources::Contributor>]
10
- # @param project_id [String]
11
- # @param params [Hash]
12
- def contributors(project_id, params = {})
13
- c_r RubyLokaliseApi::Collections::Contributor, :all, project_id, params
14
- end
6
+ using RubyLokaliseApi::Utils::Classes
15
7
 
16
- # Returns a single contributor for the given project
8
+ # Returns a single contributor
17
9
  #
18
10
  # @see https://developers.lokalise.com/reference/retrieve-a-contributor
19
11
  # @return [RubyLokaliseApi::Resources::Contributor]
20
12
  # @param project_id [String]
21
13
  # @param contributor_id [String, Integer]
22
14
  def contributor(project_id, contributor_id)
23
- c_r RubyLokaliseApi::Resources::Contributor, :find, [project_id, contributor_id]
15
+ params = { query: [project_id, contributor_id] }
16
+
17
+ data = endpoint(name: 'Contributors', params: params).do_get
18
+
19
+ resource 'Contributor', data
24
20
  end
25
21
 
26
- # Creates one or more contributors inside the given project
22
+ # Returns project contributors
23
+ #
24
+ # @see https://developers.lokalise.com/reference/list-all-contributors
25
+ # @return [RubyLokaliseApi::Collections::Contributors]
26
+ # @param project_id [String]
27
+ # @param req_params [Hash]
28
+ def contributors(project_id, req_params = {})
29
+ name = 'Contributors'
30
+ params = { query: project_id, req: req_params }
31
+
32
+ data = endpoint(name: name, params: params).do_get
33
+
34
+ collection name, data
35
+ end
36
+
37
+ # Creates one or multiple contributors for a project
27
38
  #
28
39
  # @see https://developers.lokalise.com/reference/create-contributors
29
- # @return [RubyLokaliseApi::Collection::Contributor<RubyLokaliseApi::Resources::Contributor>]
40
+ # @return [RubyLokaliseApi::Collections::Contributors]
30
41
  # @param project_id [String]
31
- # @param params [Hash, Array<Hash>]
32
- def create_contributors(project_id, params)
33
- c_r RubyLokaliseApi::Resources::Contributor, :create, project_id, params, :contributors
42
+ # @param req_params [Hash, Array]
43
+ def create_contributors(project_id, req_params)
44
+ name = 'Contributors'
45
+ params = { query: project_id, req: req_params.to_array_obj(:contributors) }
46
+
47
+ data = endpoint(name: name, params: params).do_post
48
+
49
+ collection name, data
34
50
  end
35
51
 
36
- # Updates the given contributor inside the given project
52
+ # Updates a contributor for a project
37
53
  #
38
54
  # @see https://developers.lokalise.com/reference/update-a-contributor
39
55
  # @return [RubyLokaliseApi::Resources::Contributor]
40
56
  # @param project_id [String]
41
57
  # @param contributor_id [String, Integer]
42
- # @param params [Hash]
43
- def update_contributor(project_id, contributor_id, params)
44
- c_r RubyLokaliseApi::Resources::Contributor, :update, [project_id, contributor_id], params
58
+ # @param req_params [Hash]
59
+ def update_contributor(project_id, contributor_id, req_params)
60
+ params = { query: [project_id, contributor_id], req: req_params }
61
+
62
+ data = endpoint(name: 'Contributors', params: params).do_put
63
+
64
+ resource 'Contributor', data
45
65
  end
46
66
 
47
- # Deletes contributor inside the given project
67
+ # Deletes a single contributor from the project
48
68
  #
49
69
  # @see https://developers.lokalise.com/reference/delete-a-contributor
50
- # @return [Hash]
70
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
51
71
  # @param project_id [String]
52
72
  # @param contributor_id [String, Integer]
53
73
  def destroy_contributor(project_id, contributor_id)
54
- c_r RubyLokaliseApi::Resources::Contributor, :destroy, [project_id, contributor_id]
74
+ params = { query: [project_id, contributor_id] }
75
+
76
+ data = endpoint(name: 'Contributors', params: params).do_delete
77
+
78
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
55
79
  end
56
80
  end
57
81
  end