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,65 +3,89 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module CustomTranslationStatuses
6
- # Returns all translation statuses for the given project
6
+ # Returns a custom translation status
7
7
  #
8
- # @see https://developers.lokalise.com/reference/list-all-custom-translation-statuses
9
- # @return [RubyLokaliseApi::Collection::CustomTranslationStatus
10
- # <RubyLokaliseApi::Resources::CustomTranslationStatus>]
8
+ # @see https://developers.lokalise.com/reference/retrieve-a-status
9
+ # @return [RubyLokaliseApi::Resources::CustomTranslationStatus]
11
10
  # @param project_id [String]
12
- # @param params [Hash]
13
- def translation_statuses(project_id, params = {})
14
- c_r RubyLokaliseApi::Collections::CustomTranslationStatus, :all, project_id, params
11
+ # @param status_id [String, Integer]
12
+ def custom_translation_status(project_id, status_id)
13
+ params = { query: [project_id, status_id] }
14
+
15
+ data = endpoint(name: 'CustomTranslationStatuses', params: params).do_get
16
+
17
+ resource 'CustomTranslationStatus', data
15
18
  end
16
19
 
17
- # Returns a single translation status for the given project
20
+ # Returns custom translation statuses for the project
18
21
  #
19
- # @see https://developers.lokalise.com/reference/retrieve-a-custom-translation-status
20
- # @return [RubyLokaliseApi::Resources::CustomTranslationStatus]
22
+ # @see https://developers.lokalise.com/reference/list-all-statuses
23
+ # @return [RubyLokaliseApi::Collections::CustomTranslationStatuses]
21
24
  # @param project_id [String]
22
- # @param status_id [String, Integer]
23
- def translation_status(project_id, status_id)
24
- c_r RubyLokaliseApi::Resources::CustomTranslationStatus, :find, [project_id, status_id]
25
+ # @param req_params [Hash]
26
+ def custom_translation_statuses(project_id, req_params = {})
27
+ name = 'CustomTranslationStatuses'
28
+ params = { query: project_id, req: req_params }
29
+
30
+ data = endpoint(name: name, params: params).do_get
31
+
32
+ collection name, data
25
33
  end
26
34
 
27
- # Creates translation status inside the given project
35
+ # Creates a custom translation status
28
36
  #
29
- # @see https://developers.lokalise.com/reference/create-a-custom-translation-status
30
- # @return RubyLokaliseApi::Resources::CustomTranslationStatus
37
+ # @see https://developers.lokalise.com/reference/create-a-status
38
+ # @return [RubyLokaliseApi::Resources::CustomTranslationStatus]
31
39
  # @param project_id [String]
32
- # @param params Hash
33
- def create_translation_status(project_id, params)
34
- c_r RubyLokaliseApi::Resources::CustomTranslationStatus, :create, project_id, params
40
+ # @param req_params [Hash]
41
+ def create_custom_translation_status(project_id, req_params)
42
+ params = { query: project_id, req: req_params }
43
+
44
+ data = endpoint(name: 'CustomTranslationStatuses', params: params).do_post
45
+
46
+ resource 'CustomTranslationStatus', data
35
47
  end
36
48
 
37
- # Updates the given translation status inside the given project
49
+ # Updates a custom translation status
38
50
  #
39
- # @see https://developers.lokalise.com/reference/update-a-custom-translation-status
51
+ # @see https://developers.lokalise.com/reference/update-a-status
40
52
  # @return [RubyLokaliseApi::Resources::CustomTranslationStatus]
41
53
  # @param project_id [String]
42
- # @param status_id [String, Integer]
43
- # @param params [Hash]
44
- def update_translation_status(project_id, status_id, params)
45
- c_r RubyLokaliseApi::Resources::CustomTranslationStatus, :update, [project_id, status_id], params
54
+ # @param status_id [Integer, String]
55
+ # @param req_params [Hash]
56
+ def update_custom_translation_status(project_id, status_id, req_params = {})
57
+ params = { query: [project_id, status_id], req: req_params }
58
+
59
+ data = endpoint(name: 'CustomTranslationStatuses', params: params).do_put
60
+
61
+ resource 'CustomTranslationStatus', data
46
62
  end
47
63
 
48
- # Deletes translation status inside the given project
64
+ # Deletes a custom translation status
49
65
  #
50
- # @see https://developers.lokalise.com/reference/delete-a-custom-translation-status
51
- # @return [Hash]
66
+ # @see https://developers.lokalise.com/reference/delete-a-status
67
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
52
68
  # @param project_id [String]
53
- # @param status_id [String, Integer]
54
- def destroy_translation_status(project_id, status_id)
55
- c_r RubyLokaliseApi::Resources::CustomTranslationStatus, :destroy, [project_id, status_id]
69
+ # @param status_id [Integer, String]
70
+ def destroy_custom_translation_status(project_id, status_id)
71
+ params = { query: [project_id, status_id] }
72
+
73
+ data = endpoint(name: 'CustomTranslationStatuses', params: params).do_delete
74
+
75
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
56
76
  end
57
77
 
58
- # Returns an array of available colors that can be assigned to custom translation statuses
78
+ # Retrieves an array of available colors that can be assigned to custom translation statuses
59
79
  #
60
- # @see https://developers.lokalise.com/reference/retrieve-available-colors-for-custom-translation-statuses
61
- # @return [Array]
80
+ # @see https://developers.lokalise.com/reference/retrieve-available-colors
81
+ # @return [RubyLokaliseApi::Generics::CustomStatusAvailableColors]
62
82
  # @param project_id [String]
63
- def translation_status_colors(project_id)
64
- c_r RubyLokaliseApi::Resources::CustomTranslationStatus, :colors, [project_id, 'colors']
83
+ def custom_translation_status_colors(project_id)
84
+ params = { query: [project_id, :colors] }
85
+
86
+ data = endpoint(name: 'CustomTranslationStatuses', params: params).do_get
87
+
88
+ RubyLokaliseApi::Generics::CustomStatusAvailableColors.new data.content
65
89
  end
66
90
  end
67
91
  end
@@ -3,47 +3,66 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module Files
6
- # Returns all translation files for the given project
6
+ # Returns project files
7
7
  #
8
8
  # @see https://developers.lokalise.com/reference/list-all-files
9
- # @return [RubyLokaliseApi::Collection::File<RubyLokaliseApi::Resources::File>]
9
+ # @return [RubyLokaliseApi::Collections::Files]
10
10
  # @param project_id [String]
11
- # @param params [Hash]
12
- def files(project_id, params = {})
13
- c_r RubyLokaliseApi::Collections::File, :all, project_id, params
11
+ # @param req_params [Hash]
12
+ def files(project_id, req_params = {})
13
+ name = 'Files'
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
- # Exports translation files as .zip bundle, uploads them to Amazon S3 and
17
- # returns a URL to the generated bundle. The URL is valid for a year
21
+ # Uploads translation file to the project in the background
18
22
  #
19
- # @see https://developers.lokalise.com/reference/download-files
20
- # @return [Hash]
23
+ # @see https://developers.lokalise.com/reference/upload-a-file
24
+ # @return [RubyLokaliseApi::Resources::QueuedProcess]
21
25
  # @param project_id [String]
22
- # @param params [Hash]
23
- def download_files(project_id, params)
24
- c_r RubyLokaliseApi::Resources::File, :download, [project_id, 'download'], params
26
+ # @param req_params [Hash]
27
+ def upload_file(project_id, req_params)
28
+ params = { query: [project_id, :upload], req: req_params }
29
+
30
+ response = endpoint(name: 'Files', params: params).do_post
31
+
32
+ process_id = response.content.dig('process', 'process_id')
33
+
34
+ response.patch_endpoint_with endpoint(name: 'QueuedProcesses', params: { query: [project_id, process_id] })
35
+
36
+ resource 'QueuedProcess', response
25
37
  end
26
38
 
27
- # Imports translation file to the given project. File data must base64-encoded.
28
- # To encode your data in Base64, use `Base64.strict_encode64()` method.
39
+ # Downloads translation files from the project
29
40
  #
30
- # @see https://developers.lokalise.com/reference/upload-a-file
31
- # @return [Hash]
41
+ # @see https://developers.lokalise.com/reference/download-files
42
+ # @return [RubyLokaliseApi::Generics::DownloadBundle]
32
43
  # @param project_id [String]
33
- # @param params [Hash]
34
- def upload_file(project_id, params)
35
- c_r RubyLokaliseApi::Resources::File, :upload, [project_id, 'upload'], params
44
+ # @param req_params [Hash]
45
+ def download_files(project_id, req_params)
46
+ params = { query: [project_id, :download], req: req_params }
47
+
48
+ data = endpoint(name: 'Files', params: params).do_post
49
+
50
+ RubyLokaliseApi::Generics::DownloadBundle.new data.content
36
51
  end
37
52
 
38
- # Deletes a file and it's associated keys from the project.
39
- # File __unassigned__ cannot be deleted.
53
+ # Deletes a single file from the project.
54
+ # Only the "Documents" projects are supported
40
55
  #
41
56
  # @see https://developers.lokalise.com/reference/delete-a-file
42
- # @return [Hash]
57
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
43
58
  # @param project_id [String]
44
- # @param params [Hash]
59
+ # @param file_id [String, Integer]
45
60
  def destroy_file(project_id, file_id)
46
- c_r RubyLokaliseApi::Resources::File, :destroy, [project_id, file_id]
61
+ params = { query: [project_id, file_id] }
62
+
63
+ data = endpoint(name: 'Files', params: params).do_delete
64
+
65
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
47
66
  end
48
67
  end
49
68
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module Jwts
6
+ # Creates a service JWT
7
+ #
8
+ # @see https://developers.lokalise.com/reference/create-service-jwt
9
+ # @return [RubyLokaliseApi::Resources::Jwt]
10
+ # @param project_id [String]
11
+ # @param req_params [Hash]
12
+ def create_jwt(project_id, req_params)
13
+ params = { query: project_id, req: req_params }
14
+
15
+ data = endpoint(name: 'Jwts', params: params).do_post
16
+
17
+ resource 'Jwt', data
18
+ end
19
+ end
20
+ end
21
+ end
@@ -3,76 +3,109 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module Keys
6
- # Returns all translation keys for the given project
7
- #
8
- # @see https://developers.lokalise.com/reference/list-all-keys
9
- # @return [RubyLokaliseApi::Collection::Key<RubyLokaliseApi::Resources::Key>]
10
- # @param project_id [String]
11
- # @param params [Hash]
12
- def keys(project_id, params = {})
13
- c_r RubyLokaliseApi::Collections::Key, :all, project_id, params
14
- end
6
+ using RubyLokaliseApi::Utils::Classes
15
7
 
16
- # Returns a single translation key for the given project
8
+ # Returns a single translation key
17
9
  #
18
10
  # @see https://developers.lokalise.com/reference/retrieve-a-key
19
11
  # @return [RubyLokaliseApi::Resources::Key]
20
12
  # @param project_id [String]
21
13
  # @param key_id [String, Integer]
22
- # @param params [Hash]
23
- def key(project_id, key_id, params = {})
24
- c_r RubyLokaliseApi::Resources::Key, :find, [project_id, key_id], params
14
+ # @param req_params[Hash]
15
+ def key(project_id, key_id, req_params = {})
16
+ params = { query: [project_id, key_id], req: req_params }
17
+
18
+ data = endpoint(name: 'Keys', params: params).do_get
19
+
20
+ resource 'Key', data
25
21
  end
26
22
 
27
- # Creates one or more translation keys for the given project
23
+ # Returns project translation keys
24
+ #
25
+ # @see https://developers.lokalise.com/reference/list-all-keys
26
+ # @return [RubyLokaliseApi::Collections::Keys]
27
+ # @param project_id [String]
28
+ # @param req_params [Hash]
29
+ def keys(project_id, req_params = {})
30
+ name = 'Keys'
31
+ params = { query: project_id, req: req_params }
32
+
33
+ data = endpoint(name: name, params: params).do_get
34
+
35
+ collection name, data
36
+ end
37
+
38
+ # Creates one or multiple keys in the project
28
39
  #
29
40
  # @see https://developers.lokalise.com/reference/create-keys
30
- # @return [RubyLokaliseApi::Collection::Key<RubyLokaliseApi::Resources::Key>]
41
+ # @return [RubyLokaliseApi::Collections::Keys]
31
42
  # @param project_id [String]
32
- # @param params [Hash, Array<Hash>]
33
- def create_keys(project_id, params = {})
34
- c_r RubyLokaliseApi::Resources::Key, :create, project_id, params, :keys
43
+ # @param req_params [Hash, Array]
44
+ def create_keys(project_id, req_params)
45
+ name = 'Keys'
46
+ params = { query: project_id, req: req_params.to_array_obj(:keys) }
47
+
48
+ data = endpoint(name: name, params: params).do_post
49
+
50
+ collection name, data
35
51
  end
36
52
 
37
- # Updates translation key for the given project
53
+ # Updates a single translation key
38
54
  #
39
55
  # @see https://developers.lokalise.com/reference/update-a-key
40
56
  # @return [RubyLokaliseApi::Resources::Key]
41
57
  # @param project_id [String]
42
58
  # @param key_id [String, Integer]
43
- # @param params [Hash]
44
- def update_key(project_id, key_id, params = {})
45
- c_r RubyLokaliseApi::Resources::Key, :update, [project_id, key_id], params
59
+ # @param req_params[Hash]
60
+ def update_key(project_id, key_id, req_params = {})
61
+ params = { query: [project_id, key_id], req: req_params }
62
+
63
+ data = endpoint(name: 'Keys', params: params).do_put
64
+
65
+ resource 'Key', data
46
66
  end
47
67
 
48
- # Updates one or multiple translation keys for the given project
68
+ # Updates multiple keys in the project
49
69
  #
50
70
  # @see https://developers.lokalise.com/reference/bulk-update
51
- # @return [RubyLokaliseApi::Collection::Key<RubyLokaliseApi::Resources::Key>]
71
+ # @return [RubyLokaliseApi::Collections::Keys]
52
72
  # @param project_id [String]
53
- # @param params [Hash, Array<Hash>]
54
- def update_keys(project_id, params)
55
- c_r RubyLokaliseApi::Resources::Key, :update, project_id, params, :keys
73
+ # @param req_params [Hash, Array]
74
+ def update_keys(project_id, req_params)
75
+ name = 'Keys'
76
+ params = { query: project_id, req: req_params.to_array_obj(:keys) }
77
+
78
+ data = endpoint(name: name, params: params).do_put
79
+
80
+ collection name, data
56
81
  end
57
82
 
58
- # Deletes translation key for the given project
83
+ # Deletes a single key from the project
59
84
  #
60
85
  # @see https://developers.lokalise.com/reference/delete-a-key
61
- # @return [Hash]
86
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
62
87
  # @param project_id [String]
63
88
  # @param key_id [String, Integer]
64
89
  def destroy_key(project_id, key_id)
65
- c_r RubyLokaliseApi::Resources::Key, :destroy, [project_id, key_id]
90
+ params = { query: [project_id, key_id] }
91
+
92
+ data = endpoint(name: 'Keys', params: params).do_delete
93
+
94
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
66
95
  end
67
96
 
68
- # Deletes one or multiple translation keys for the given project
97
+ # Deletes multiple keys from the project
69
98
  #
70
99
  # @see https://developers.lokalise.com/reference/delete-multiple-keys
71
- # @return [Hash]
100
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
72
101
  # @param project_id [String]
73
- # @param key_ids [String, Integer, Array<String>, Array<Integer>]
102
+ # @param key_ids [Array, String]
74
103
  def destroy_keys(project_id, key_ids)
75
- c_r RubyLokaliseApi::Resources::Key, :destroy, project_id, key_ids, :keys
104
+ params = { query: project_id, req: key_ids.to_array_obj(:keys) }
105
+
106
+ data = endpoint(name: 'Keys', params: params).do_delete
107
+
108
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
76
109
  end
77
110
  end
78
111
  end
@@ -3,64 +3,93 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module Languages
6
- # Returns all languages supported by Lokalise
6
+ using RubyLokaliseApi::Utils::Classes
7
+
8
+ # Returns Lokalise system languages
7
9
  #
8
10
  # @see https://developers.lokalise.com/reference/list-system-languages
9
- # @return [RubyLokaliseApi::Collection::SystemLanguage<RubyLokaliseApi::Resources::SystemLanguage>]
10
- # @param params [Hash]
11
- def system_languages(params = {})
12
- c_r RubyLokaliseApi::Collections::SystemLanguage, :all, nil, params
11
+ # @return [RubyLokaliseApi::Collections::SystemLanguages]
12
+ # @param req_params [Hash]
13
+ def system_languages(req_params = {})
14
+ name = 'SystemLanguages'
15
+ params = { req: req_params }
16
+
17
+ data = endpoint(name: name, params: params).do_get
18
+
19
+ collection name, data
13
20
  end
14
21
 
15
- # Returns all languages for the given project
22
+ # Returns project languages
16
23
  #
17
24
  # @see https://developers.lokalise.com/reference/list-project-languages
18
- # @return [RubyLokaliseApi::Collection::ProjectLanguage<RubyLokaliseApi::Resources::ProjectLanguage>]
19
- # @param project_id [String, Integer]
20
- # @param params [Hash]
21
- def project_languages(project_id, params = {})
22
- c_r RubyLokaliseApi::Collections::ProjectLanguage, :all, project_id, params
25
+ # @return [RubyLokaliseApi::Collections::ProjectLanguages]
26
+ # @param project_id [String]
27
+ # @param req_params [Hash]
28
+ def project_languages(project_id, req_params = {})
29
+ name = 'ProjectLanguages'
30
+ params = { query: project_id, req: req_params }
31
+
32
+ data = endpoint(name: name, params: params).do_get
33
+
34
+ collection name, data
23
35
  end
24
36
 
25
- # Returns a single language for the given project
37
+ # Returns a single project language
26
38
  #
27
39
  # @see https://developers.lokalise.com/reference/retrieve-a-language
28
40
  # @return [RubyLokaliseApi::Resources::ProjectLanguage]
29
41
  # @param project_id [String]
30
42
  # @param language_id [String, Integer]
31
- def language(project_id, language_id)
32
- c_r RubyLokaliseApi::Resources::ProjectLanguage, :find, [project_id, language_id]
43
+ def project_language(project_id, language_id)
44
+ params = { query: [project_id, language_id] }
45
+
46
+ data = endpoint(name: 'ProjectLanguages', params: params).do_get
47
+
48
+ resource 'ProjectLanguage', data
33
49
  end
34
50
 
35
- # Creates one or more language for the given project
51
+ # Creates one or multiple languages for a project
36
52
  #
37
- # @see https://developers.lokalise.com/reference/retrieve-a-language
38
- # @return [RubyLokaliseApi::Collection::ProjectLanguage<RubyLokaliseApi::Resources::ProjectLanguage>]
53
+ # @see https://developers.lokalise.com/reference/create-languages
54
+ # @return [RubyLokaliseApi::Collections::ProjectLanguages]
39
55
  # @param project_id [String]
40
- # @param params [Hash]
41
- def create_languages(project_id, params)
42
- c_r RubyLokaliseApi::Resources::ProjectLanguage, :create, project_id, params, :languages
56
+ # @param req_params [Hash, Array]
57
+ def create_project_languages(project_id, req_params)
58
+ name = 'ProjectLanguages'
59
+ params = { query: project_id, req: req_params.to_array_obj(:languages) }
60
+
61
+ data = endpoint(name: name, params: params).do_post
62
+
63
+ collection name, data
43
64
  end
44
65
 
45
- # Updates language for the given project
66
+ # Updates a language for a project
46
67
  #
47
68
  # @see https://developers.lokalise.com/reference/update-a-language
48
69
  # @return [RubyLokaliseApi::Resources::ProjectLanguage]
49
70
  # @param project_id [String]
50
71
  # @param language_id [String, Integer]
51
- # @param params [Hash]
52
- def update_language(project_id, language_id, params)
53
- c_r RubyLokaliseApi::Resources::ProjectLanguage, :update, [project_id, language_id], params
72
+ # @param req_params [Hash]
73
+ def update_project_language(project_id, language_id, req_params = {})
74
+ params = { query: [project_id, language_id], req: req_params }
75
+
76
+ data = endpoint(name: 'ProjectLanguages', params: params).do_put
77
+
78
+ resource 'ProjectLanguage', data
54
79
  end
55
80
 
56
- # Deletes language for the given project
81
+ # Deletes a single language from the project
57
82
  #
58
83
  # @see https://developers.lokalise.com/reference/delete-a-language
59
- # @return [Hash]
84
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
60
85
  # @param project_id [String]
61
86
  # @param language_id [String, Integer]
62
- def destroy_language(project_id, language_id)
63
- c_r RubyLokaliseApi::Resources::ProjectLanguage, :destroy, [project_id, language_id]
87
+ def destroy_project_language(project_id, language_id)
88
+ params = { query: [project_id, language_id] }
89
+
90
+ data = endpoint(name: 'ProjectLanguages', params: params).do_delete
91
+
92
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
64
93
  end
65
94
  end
66
95
  end
@@ -3,34 +3,56 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module Orders
6
- # Returns all orders for the given team
6
+ # Returns orders for the given team
7
7
  #
8
8
  # @see https://developers.lokalise.com/reference/list-all-orders
9
- # @return [RubyLokaliseApi::Collection::Order<RubyLokaliseApi::Resources::Order>]
10
- # @param team_id [String]
11
- # @param params [Hash]
12
- def orders(team_id, params = {})
13
- c_r RubyLokaliseApi::Collections::Order, :all, team_id, params
9
+ # @return [RubyLokaliseApi::Collections::Orders]
10
+ # @param team_id [String, Integer]
11
+ # @param req_params [Hash]
12
+ def orders(team_id, req_params = {})
13
+ name = 'Orders'
14
+ params = { query: team_id, req: req_params }
15
+
16
+ response = endpoint(name: name, params: params).do_get
17
+
18
+ # We must patch content because the API does not return team_id and it's mandatory to build resource URLs
19
+ response.patch_content_with 'team_id', team_id
20
+
21
+ collection name, response
14
22
  end
15
23
 
16
- # Returns a single order for the given team
24
+ # Returns a single order
17
25
  #
18
26
  # @see https://developers.lokalise.com/reference/retrieve-an-order
19
27
  # @return [RubyLokaliseApi::Resources::Order]
20
- # @param team_id [String]
21
- # @param order_id [String, Integer]
28
+ # @param team_id [String, Integer]
29
+ # @param order_id [String]
22
30
  def order(team_id, order_id)
23
- c_r RubyLokaliseApi::Resources::Order, :find, [team_id, order_id]
31
+ params = { query: [team_id, order_id] }
32
+
33
+ response = endpoint(name: 'Orders', params: params).do_get
34
+
35
+ # We must patch content because the API does not return team_id and it's mandatory to build resource URL
36
+ response.patch_content_with 'team_id', team_id
37
+
38
+ resource 'Order', response
24
39
  end
25
40
 
26
- # Creates an order for the given team
41
+ # Creates a new order
27
42
  #
28
43
  # @see https://developers.lokalise.com/reference/create-an-order
29
44
  # @return [RubyLokaliseApi::Resources::Order]
30
45
  # @param team_id [String]
31
- # @param params [Hash]
32
- def create_order(team_id, params)
33
- c_r RubyLokaliseApi::Resources::Order, :create, team_id, params
46
+ # @param req_params [Hash]
47
+ def create_order(team_id, req_params)
48
+ params = { query: team_id, req: req_params }
49
+
50
+ response = endpoint(name: 'Orders', params: params).do_post
51
+
52
+ # We must patch content because the API does not return team_id and it's mandatory to build resource URL
53
+ response.patch_content_with 'team_id', team_id
54
+
55
+ resource 'Order', response
34
56
  end
35
57
  end
36
58
  end
@@ -3,13 +3,18 @@
3
3
  module RubyLokaliseApi
4
4
  module Rest
5
5
  module PaymentCards
6
- # Returns all payment cards available to the user authorized with the API token
6
+ # Returns payment cards
7
7
  #
8
8
  # @see https://developers.lokalise.com/reference/list-all-cards
9
- # @return [RubyLokaliseApi::Collection::PaymentCard<RubyLokaliseApi::Resources::PaymentCard>]
10
- # @param params [Hash]
11
- def payment_cards(params = {})
12
- c_r RubyLokaliseApi::Collections::PaymentCard, :all, nil, params
9
+ # @return [RubyLokaliseApi::Collections::PaymentCards]
10
+ # @param req_params [Hash]
11
+ def payment_cards(req_params = {})
12
+ name = 'PaymentCards'
13
+ params = { req: req_params }
14
+
15
+ data = endpoint(name: name, params: params).do_get
16
+
17
+ collection name, data
13
18
  end
14
19
 
15
20
  # Returns a single payment card
@@ -18,25 +23,37 @@ module RubyLokaliseApi
18
23
  # @return [RubyLokaliseApi::Resources::PaymentCard]
19
24
  # @param card_id [String, Integer]
20
25
  def payment_card(card_id)
21
- c_r RubyLokaliseApi::Resources::PaymentCard, :find, card_id
26
+ params = { query: card_id }
27
+
28
+ data = endpoint(name: 'PaymentCards', params: params).do_get
29
+
30
+ resource 'PaymentCard', data
22
31
  end
23
32
 
24
33
  # Creates a payment card
25
34
  #
26
35
  # @see https://developers.lokalise.com/reference/create-a-card
27
36
  # @return [RubyLokaliseApi::Resources::PaymentCard]
28
- # @param params [Hash]
29
- def create_payment_card(params)
30
- c_r RubyLokaliseApi::Resources::PaymentCard, :create, nil, params
37
+ # @param req_params [Hash]
38
+ def create_payment_card(req_params)
39
+ params = { req: req_params }
40
+
41
+ data = endpoint(name: 'PaymentCards', params: params).do_post
42
+
43
+ resource 'PaymentCard', data
31
44
  end
32
45
 
33
- # Deletes the payment card
46
+ # Deletes a payment card
34
47
  #
35
48
  # @see https://developers.lokalise.com/reference/delete-a-card
36
- # @return [Hash]
49
+ # @return [RubyLokaliseApi::Generics::DeletedResource]
37
50
  # @param card_id [String, Integer]
38
51
  def destroy_payment_card(card_id)
39
- c_r RubyLokaliseApi::Resources::PaymentCard, :destroy, card_id
52
+ params = { query: card_id }
53
+
54
+ data = endpoint(name: 'PaymentCards', params: params).do_delete
55
+
56
+ RubyLokaliseApi::Generics::DeletedResource.new data.content
40
57
  end
41
58
  end
42
59
  end