ruby-lokalise-api 7.2.0 → 8.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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 +31 -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 +18 -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 +33 -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 +24 -0
  122. data/lib/ruby_lokalise_api/utils/keys.rb +29 -0
  123. data/lib/ruby_lokalise_api/utils/loaders.rb +24 -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 +2 -2
  128. metadata +76 -41
  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