ruby-lokalise-api 4.5.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -3
  3. data/lib/ruby_lokalise_api/base_request.rb +24 -0
  4. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/client.rb +25 -26
  5. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/base.rb +10 -10
  6. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/branch.rb +1 -1
  7. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/contributor.rb +1 -1
  8. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/custom_translation_status.rb +1 -1
  9. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/file.rb +1 -1
  10. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key.rb +2 -2
  11. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/key_comment.rb +1 -1
  12. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/order.rb +1 -1
  13. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/payment_card.rb +1 -1
  14. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project.rb +1 -1
  15. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_comment.rb +1 -1
  16. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/project_language.rb +1 -1
  17. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/queued_process.rb +1 -1
  18. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/screenshot.rb +1 -1
  19. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/segment.rb +1 -1
  20. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/snapshot.rb +1 -1
  21. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/system_language.rb +1 -1
  22. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/task.rb +1 -1
  23. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team.rb +1 -1
  24. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user.rb +1 -1
  25. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/team_user_group.rb +1 -1
  26. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation.rb +1 -1
  27. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/translation_provider.rb +1 -1
  28. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/collections/webhook.rb +1 -1
  29. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/connection.rb +4 -3
  30. data/lib/ruby_lokalise_api/data/attributes.yml +235 -0
  31. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/error.rb +15 -15
  32. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/json_handler.rb +1 -1
  33. data/lib/ruby_lokalise_api/oauth2/auth.rb +62 -0
  34. data/lib/ruby_lokalise_api/oauth2/connection.rb +25 -0
  35. data/lib/ruby_lokalise_api/oauth2/request.rb +23 -0
  36. data/lib/{ruby-lokalise-api/oauth_client.rb → ruby_lokalise_api/oauth2_client.rb} +2 -2
  37. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/request.rb +5 -16
  38. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/base.rb +8 -8
  39. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/branch.rb +1 -1
  40. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/contributor.rb +1 -1
  41. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/custom_translation_status.rb +1 -1
  42. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/file.rb +2 -2
  43. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key.rb +1 -1
  44. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/key_comment.rb +1 -1
  45. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/order.rb +1 -1
  46. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/payment_card.rb +1 -1
  47. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project.rb +1 -1
  48. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_comment.rb +1 -1
  49. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/project_language.rb +1 -1
  50. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/queued_process.rb +1 -1
  51. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/screenshot.rb +1 -1
  52. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/segment.rb +1 -1
  53. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/snapshot.rb +2 -2
  54. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/system_language.rb +1 -1
  55. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/task.rb +1 -1
  56. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team.rb +1 -1
  57. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user.rb +1 -1
  58. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_billing_details.rb +1 -1
  59. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/team_user_group.rb +1 -1
  60. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation.rb +1 -1
  61. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/translation_provider.rb +1 -1
  62. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/resources/webhook.rb +1 -1
  63. data/lib/ruby_lokalise_api/rest/branches.rb +69 -0
  64. data/lib/ruby_lokalise_api/rest/comments.rb +61 -0
  65. data/lib/ruby_lokalise_api/rest/contributors.rb +58 -0
  66. data/lib/ruby_lokalise_api/rest/custom_translation_statuses.rb +67 -0
  67. data/lib/ruby_lokalise_api/rest/files.rb +38 -0
  68. data/lib/ruby_lokalise_api/rest/keys.rb +79 -0
  69. data/lib/ruby_lokalise_api/rest/languages.rb +67 -0
  70. data/lib/ruby_lokalise_api/rest/orders.rb +37 -0
  71. data/lib/ruby_lokalise_api/rest/payment_cards.rb +43 -0
  72. data/lib/ruby_lokalise_api/rest/projects.rb +62 -0
  73. data/lib/ruby_lokalise_api/rest/queued_processes.rb +28 -0
  74. data/lib/ruby_lokalise_api/rest/screenshots.rb +58 -0
  75. data/lib/ruby_lokalise_api/rest/segments.rb +45 -0
  76. data/lib/ruby_lokalise_api/rest/snapshots.rb +47 -0
  77. data/lib/ruby_lokalise_api/rest/tasks.rb +58 -0
  78. data/lib/ruby_lokalise_api/rest/team_user_billing_details.rb +36 -0
  79. data/lib/ruby_lokalise_api/rest/team_user_groups.rb +109 -0
  80. data/lib/ruby_lokalise_api/rest/team_users.rb +48 -0
  81. data/lib/ruby_lokalise_api/rest/teams.rb +16 -0
  82. data/lib/ruby_lokalise_api/rest/translation_providers.rb +27 -0
  83. data/lib/ruby_lokalise_api/rest/translations.rb +39 -0
  84. data/lib/ruby_lokalise_api/rest/webhooks.rb +69 -0
  85. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/attribute_helpers.rb +7 -7
  86. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/endpoint_helpers.rb +1 -1
  87. data/lib/{ruby-lokalise-api → ruby_lokalise_api}/utils/string_utils.rb +1 -1
  88. data/lib/ruby_lokalise_api/version.rb +5 -0
  89. data/lib/ruby_lokalise_api.rb +50 -0
  90. data/ruby-lokalise-api.gemspec +8 -7
  91. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/branches_spec.rb +13 -13
  92. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/comments_spec.rb +7 -7
  93. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/contributors_spec.rb +11 -11
  94. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/custom_translation_statuses_spec.rb +7 -7
  95. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/files_spec.rb +2 -2
  96. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/keys_spec.rb +15 -15
  97. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/languages_spec.rb +6 -6
  98. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/orders_spec.rb +1 -1
  99. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/payment_cards_spec.rb +7 -7
  100. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/projects_spec.rb +24 -11
  101. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/queued_processes_spec.rb +1 -1
  102. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/screenshots_spec.rb +5 -5
  103. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/segments_spec.rb +4 -4
  104. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/snapshots_spec.rb +9 -9
  105. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/tasks_spec.rb +14 -14
  106. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/team_user_billing_details_spec.rb +1 -1
  107. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/team_user_groups_spec.rb +7 -7
  108. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/team_users_spec.rb +4 -4
  109. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/teams_spec.rb +1 -1
  110. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/translation_providers_spec.rb +2 -2
  111. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/translations_spec.rb +11 -11
  112. data/spec/lib/{ruby-lokalise-api/rest → ruby_lokalise_api/client}/webhooks_spec.rb +2 -2
  113. data/spec/lib/ruby_lokalise_api/connection_spec.rb +68 -0
  114. data/spec/lib/{ruby-lokalise-api → ruby_lokalise_api}/custom_json_parser_spec.rb +3 -3
  115. data/spec/lib/{ruby-lokalise-api → ruby_lokalise_api}/error_spec.rb +10 -10
  116. data/spec/lib/ruby_lokalise_api/oauth2/auth_spec.rb +73 -0
  117. data/spec/lib/ruby_lokalise_api_spec.rb +47 -0
  118. data/spec/spec_helper.rb +1 -1
  119. data/spec/support/test_client.rb +7 -3
  120. data/spec/support/vcr.rb +5 -0
  121. metadata +168 -148
  122. data/lib/ruby-lokalise-api/data/attributes.json +0 -259
  123. data/lib/ruby-lokalise-api/rest/branches.rb +0 -67
  124. data/lib/ruby-lokalise-api/rest/comments.rb +0 -59
  125. data/lib/ruby-lokalise-api/rest/contributors.rb +0 -56
  126. data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +0 -65
  127. data/lib/ruby-lokalise-api/rest/files.rb +0 -36
  128. data/lib/ruby-lokalise-api/rest/keys.rb +0 -77
  129. data/lib/ruby-lokalise-api/rest/languages.rb +0 -65
  130. data/lib/ruby-lokalise-api/rest/orders.rb +0 -35
  131. data/lib/ruby-lokalise-api/rest/payment_cards.rb +0 -41
  132. data/lib/ruby-lokalise-api/rest/projects.rb +0 -60
  133. data/lib/ruby-lokalise-api/rest/queued_processes.rb +0 -26
  134. data/lib/ruby-lokalise-api/rest/screenshots.rb +0 -56
  135. data/lib/ruby-lokalise-api/rest/segments.rb +0 -43
  136. data/lib/ruby-lokalise-api/rest/snapshots.rb +0 -45
  137. data/lib/ruby-lokalise-api/rest/tasks.rb +0 -56
  138. data/lib/ruby-lokalise-api/rest/team_user_billing_details.rb +0 -34
  139. data/lib/ruby-lokalise-api/rest/team_user_group.rb +0 -107
  140. data/lib/ruby-lokalise-api/rest/team_users.rb +0 -46
  141. data/lib/ruby-lokalise-api/rest/teams.rb +0 -14
  142. data/lib/ruby-lokalise-api/rest/translation_providers.rb +0 -25
  143. data/lib/ruby-lokalise-api/rest/translations.rb +0 -37
  144. data/lib/ruby-lokalise-api/rest/webhooks.rb +0 -67
  145. data/lib/ruby-lokalise-api/version.rb +0 -5
  146. data/lib/ruby-lokalise-api.rb +0 -101
  147. data/spec/lib/ruby-lokalise-api/connection_spec.rb +0 -89
  148. data/spec/lib/ruby-lokalise-api_spec.rb +0 -54
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module Tasks
6
+ # Returns all tasks for the given project
7
+ #
8
+ # @see https://app.lokalise.com/api2docs/curl/#transition-list-all-tasks-get
9
+ # @return [RubyLokaliseApi::Collection::Task<RubyLokaliseApi::Resources::Task>]
10
+ # @param project_id [String]
11
+ # @param params [Hash]
12
+ def tasks(project_id, params = {})
13
+ c_r RubyLokaliseApi::Collections::Task, :all, project_id, params
14
+ end
15
+
16
+ # Returns a single task for the given project
17
+ #
18
+ # @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-task-get
19
+ # @return [RubyLokaliseApi::Resources::Task]
20
+ # @param project_id [String]
21
+ # @param task_id [String, Integer]
22
+ def task(project_id, task_id)
23
+ c_r RubyLokaliseApi::Resources::Task, :find, [project_id, task_id]
24
+ end
25
+
26
+ # Creates task for the given project
27
+ #
28
+ # @see https://app.lokalise.com/api2docs/curl/#transition-create-a-task-post
29
+ # @return [RubyLokaliseApi::Resources::Task]
30
+ # @param project_id [String]
31
+ # @param params [Hash]
32
+ def create_task(project_id, params)
33
+ c_r RubyLokaliseApi::Resources::Task, :create, project_id, params
34
+ end
35
+
36
+ # Updates task for the given project
37
+ #
38
+ # @see https://app.lokalise.com/api2docs/curl/#transition-update-a-task-put
39
+ # @return [RubyLokaliseApi::Resources::Task]
40
+ # @param project_id [String]
41
+ # @param task_id [String, Integer]
42
+ # @param params [Hash]
43
+ def update_task(project_id, task_id, params = {})
44
+ c_r RubyLokaliseApi::Resources::Task, :update, [project_id, task_id], params
45
+ end
46
+
47
+ # Deletes task for the given project
48
+ #
49
+ # @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-task-delete
50
+ # @return [Hash]
51
+ # @param project_id [String]
52
+ # @param task_id [String, Integer]
53
+ def destroy_task(project_id, task_id)
54
+ c_r RubyLokaliseApi::Resources::Task, :destroy, [project_id, task_id]
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module TeamUserBillingDetails
6
+ # Returns team user billing details
7
+ #
8
+ # @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-team-user-billing-details-get
9
+ # @return [RubyLokaliseApi::Resources::TeamUserBillingDetails]
10
+ # @param team_id [String]
11
+ def team_user_billing_details(team_id)
12
+ c_r RubyLokaliseApi::Resources::TeamUserBillingDetails, :find, team_id
13
+ end
14
+
15
+ # Creates team user billing details
16
+ #
17
+ # @see https://app.lokalise.com/api2docs/curl/#transition-create-team-user-billing-details-post
18
+ # @return [RubyLokaliseApi::Resources::TeamUserBillingDetails]
19
+ # @param team_id [String]
20
+ # @param params [Hash]
21
+ def create_team_user_billing_details(team_id, params)
22
+ c_r RubyLokaliseApi::Resources::TeamUserBillingDetails, :create, team_id, params
23
+ end
24
+
25
+ # Updates team user billing details
26
+ #
27
+ # @see https://app.lokalise.com/api2docs/curl/#transition-create-team-user-billing-details-post
28
+ # @return [RubyLokaliseApi::Resources::TeamUserBillingDetails]
29
+ # @param team_id [String]
30
+ # @param params [Hash]
31
+ def update_team_user_billing_details(team_id, params)
32
+ c_r RubyLokaliseApi::Resources::TeamUserBillingDetails, :update, team_id, params
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module TeamUserGroups
6
+ # Returns all team user groups for the given team
7
+ #
8
+ # @see https://lokalise.co/api2docs/curl/#transition-list-all-groups-get
9
+ # @return [RubyLokaliseApi::Collection::TeamUserGroup<RubyLokaliseApi::Resources::TeamUserGroup>]
10
+ # @param team_id [String]
11
+ # @param params [Hash]
12
+ def team_user_groups(team_id, params = {})
13
+ c_r RubyLokaliseApi::Collections::TeamUserGroup, :all, team_id, params
14
+ end
15
+
16
+ # Returns team user from the given team
17
+ #
18
+ # @see https://lokalise.co/api2docs/curl/#transition-retrieve-a-group-get
19
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
20
+ # @param team_id [String]
21
+ # @param group_id [String, Integer]
22
+ def team_user_group(team_id, group_id)
23
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :find, [team_id, group_id]
24
+ end
25
+
26
+ # Creates team user group
27
+ #
28
+ # @see https://lokalise.co/api2docs/curl/#resource-team-user-groups
29
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
30
+ # @param params [Hash]
31
+ def create_team_user_group(team_id, params)
32
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :create, team_id, params
33
+ end
34
+
35
+ # Updates team user group for the given team
36
+ #
37
+ # @see https://lokalise.co/api2docs/curl/#transition-update-a-group-put
38
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
39
+ # @param team_id [String]
40
+ # @param group_id [String, Integer]
41
+ # @param params [Hash]
42
+ def update_team_user_group(team_id, group_id, params)
43
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :update, [team_id, group_id], params
44
+ end
45
+
46
+ # Deletes team user group from the given team
47
+ #
48
+ # @see https://lokalise.co/api2docs/curl/#transition-delete-a-group-delete
49
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
50
+ # @param team_id [String]
51
+ # @param group_id [String, Integer]
52
+ def destroy_team_user_group(team_id, group_id)
53
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :destroy, [team_id, group_id]
54
+ end
55
+
56
+ # Adds projects to the given group
57
+ #
58
+ # @see https://lokalise.co/api2docs/curl/#transition-add-projects-to-group-put
59
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
60
+ # @param team_id [String]
61
+ # @param group_id [String, Integer]
62
+ # @param project_ids [String, Integer, Array<String>, Array<Integer>]
63
+ def add_projects_to_group(team_id, group_id, project_ids)
64
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :update,
65
+ [team_id, group_id, 'projects', 'add'],
66
+ project_ids, :projects, [team_id, group_id]
67
+ end
68
+
69
+ # Removes projects from the given group
70
+ #
71
+ # @see https://lokalise.co/api2docs/curl/#transition-remove-projects-from-group-put
72
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
73
+ # @param team_id [String]
74
+ # @param group_id [String, Integer]
75
+ # @param project_ids [String, Integer, Array<String>, Array<Integer>]
76
+ def remove_projects_from_group(team_id, group_id, project_ids)
77
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :update,
78
+ [team_id, group_id, 'projects', 'remove'],
79
+ project_ids, :projects, [team_id, group_id]
80
+ end
81
+
82
+ # Adds users to the given group
83
+ #
84
+ # @see https://lokalise.co/api2docs/curl/#transition-add-members-to-group-put
85
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
86
+ # @param team_id [String]
87
+ # @param group_id [String, Integer]
88
+ # @param users_ids [String, Integer, Array<String>, Array<Integer>]
89
+ def add_users_to_group(team_id, group_id, users_ids)
90
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :update,
91
+ [team_id, group_id, 'members', 'add'],
92
+ users_ids, :users, [team_id, group_id]
93
+ end
94
+
95
+ # Removes users from the given group
96
+ #
97
+ # @see https://lokalise.co/api2docs/curl/#transition-remove-members-from-group-put
98
+ # @return [RubyLokaliseApi::Resources::TeamUserGroup]
99
+ # @param team_id [String]
100
+ # @param group_id [String, Integer]
101
+ # @param users_ids [String, Integer, Array<String>, Array<Integer>]
102
+ def remove_users_from_group(team_id, group_id, users_ids)
103
+ c_r RubyLokaliseApi::Resources::TeamUserGroup, :update,
104
+ [team_id, group_id, 'members', 'remove'],
105
+ users_ids, :users, [team_id, group_id]
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module TeamUsers
6
+ # Returns all team users for the given team
7
+ #
8
+ # @see https://app.lokalise.com/api2docs/curl/#transition-list-all-team-users-get
9
+ # @return [RubyLokaliseApi::Collection::TeamUser<RubyLokaliseApi::Resources::TeamUser>]
10
+ # @param team_id [String]
11
+ # @param params [Hash]
12
+ def team_users(team_id, params = {})
13
+ c_r RubyLokaliseApi::Collections::TeamUser, :all, team_id, params
14
+ end
15
+
16
+ # Returns team user from the given team
17
+ #
18
+ # @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-team-user-get
19
+ # @return [RubyLokaliseApi::Resources::TeamUser]
20
+ # @param team_id [String]
21
+ # @param user_id [String, Integer]
22
+ def team_user(team_id, user_id)
23
+ c_r RubyLokaliseApi::Resources::TeamUser, :find, [team_id, user_id]
24
+ end
25
+
26
+ # Updates team user for the given team
27
+ #
28
+ # @see https://app.lokalise.com/api2docs/curl/#transition-update-a-team-user-put
29
+ # @return [RubyLokaliseApi::Resources::TeamUser]
30
+ # @param team_id [String]
31
+ # @param user_id [String, Integer]
32
+ # @param params [Hash]
33
+ def update_team_user(team_id, user_id, params)
34
+ c_r RubyLokaliseApi::Resources::TeamUser, :update, [team_id, user_id], params
35
+ end
36
+
37
+ # Deletes team user from the given team
38
+ #
39
+ # @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-team-user-delete
40
+ # @return [RubyLokaliseApi::Resources::TeamUser]
41
+ # @param team_id [String]
42
+ # @param user_id [String, Integer]
43
+ def destroy_team_user(team_id, user_id)
44
+ c_r RubyLokaliseApi::Resources::TeamUser, :destroy, [team_id, user_id]
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module Teams
6
+ # Returns all teams available to the user
7
+ #
8
+ # @see https://app.lokalise.com/api2docs/curl/#transition-list-all-teams-get
9
+ # @return [RubyLokaliseApi::Collection::Team<RubyLokaliseApi::Resources::Team>]
10
+ # @param params [Hash]
11
+ def teams(params = {})
12
+ c_r RubyLokaliseApi::Collections::Team, :all, nil, params
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module TranslationProviders
6
+ # Returns all translation providers for the given team
7
+ #
8
+ # @see https://app.lokalise.com/api2docs/curl/#transition-list-all-providers-get
9
+ # @return [RubyLokaliseApi::Collection::TranslationProvider<RubyLokaliseApi::Resources::TranslationProvider>]
10
+ # @param team_id [String]
11
+ # @param params [Hash]
12
+ def translation_providers(team_id, params = {})
13
+ c_r RubyLokaliseApi::Collections::TranslationProvider, :all, team_id, params
14
+ end
15
+
16
+ # Returns a single translation provider for the given team
17
+ #
18
+ # @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-provider-get
19
+ # @return [RubyLokaliseApi::Resources::TranslationProvider]
20
+ # @param team_id [String]
21
+ # @param provider_id [String, Integer]
22
+ def translation_provider(team_id, provider_id)
23
+ c_r RubyLokaliseApi::Resources::TranslationProvider, :find, [team_id, provider_id]
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module Translations
6
+ # Returns all translations for the given project (ungrouped)
7
+ #
8
+ # @see https://app.lokalise.com/api2docs/curl/#transition-list-all-translations-get
9
+ # @return [RubyLokaliseApi::Collection::Translation<RubyLokaliseApi::Resources::Translation>]
10
+ # @param project_id [String]
11
+ # @param params [Hash]
12
+ def translations(project_id, params = {})
13
+ c_r RubyLokaliseApi::Collections::Translation, :all, project_id, params
14
+ end
15
+
16
+ # Returns translation of the given project
17
+ #
18
+ # @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-translation-get
19
+ # @return [RubyLokaliseApi::Resources::Translation]
20
+ # @param project_id [String]
21
+ # @param translation_id [String, Integer]
22
+ # @param params [Hash]
23
+ def translation(project_id, translation_id, params = {})
24
+ c_r RubyLokaliseApi::Resources::Translation, :find, [project_id, translation_id], params
25
+ end
26
+
27
+ # Updates translation of the given project
28
+ #
29
+ # @see https://app.lokalise.com/api2docs/curl/#transition-update-a-translation-put
30
+ # @return [RubyLokaliseApi::Resources::Translation]
31
+ # @param project_id [String]
32
+ # @param translation_id [String, Integer]
33
+ # @param params [Hash]
34
+ def update_translation(project_id, translation_id, params)
35
+ c_r RubyLokaliseApi::Resources::Translation, :update, [project_id, translation_id], params
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ module Rest
5
+ module Webhooks
6
+ # Returns all webhooks for the given project
7
+ #
8
+ # @see https://app.lokalise.com/api2docs/curl/#transition-list-all-webhooks-get
9
+ # @return [RubyLokaliseApi::Collection::Webhook<RubyLokaliseApi::Resources::Webhook>]
10
+ # @param project_id [String]
11
+ # @param params [Hash]
12
+ def webhooks(project_id, params = {})
13
+ c_r RubyLokaliseApi::Collections::Webhook, :all, project_id, params
14
+ end
15
+
16
+ # Returns a single webhook for the given project
17
+ #
18
+ # @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-webhook-get
19
+ # @return [RubyLokaliseApi::Resources::Webhook]
20
+ # @param project_id [String]
21
+ # @param webhook_id [String, Integer]
22
+ def webhook(project_id, webhook_id)
23
+ c_r RubyLokaliseApi::Resources::Webhook, :find, [project_id, webhook_id]
24
+ end
25
+
26
+ # Creates webhook for the given project
27
+ #
28
+ # @see https://app.lokalise.com/api2docs/curl/#transition-create-a-webhook-post
29
+ # @return [RubyLokaliseApi::Resources::Webhook]
30
+ # @param project_id [String]
31
+ # @param params [Hash]
32
+ def create_webhook(project_id, params)
33
+ c_r RubyLokaliseApi::Resources::Webhook, :create, project_id, params
34
+ end
35
+
36
+ # Updates webhook for the given project
37
+ #
38
+ # @see https://app.lokalise.com/api2docs/curl/#transition-update-a-webhook-put
39
+ # @return [RubyLokaliseApi::Resources::Webhook]
40
+ # @param project_id [String]
41
+ # @param webhook_id [String, Integer]
42
+ # @param params [Hash]
43
+ def update_webhook(project_id, webhook_id, params = {})
44
+ c_r RubyLokaliseApi::Resources::Webhook, :update, [project_id, webhook_id], params
45
+ end
46
+
47
+ # Deletes webhook for the given project
48
+ #
49
+ # @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-webhook-delete
50
+ # @return [Hash]
51
+ # @param project_id [String]
52
+ # @param webhook_id [String, Integer]
53
+ def destroy_webhook(project_id, webhook_id)
54
+ c_r RubyLokaliseApi::Resources::Webhook, :destroy, [project_id, webhook_id]
55
+ end
56
+
57
+ # Regenerates secret for the given webhook
58
+ #
59
+ # @see https://lokalise.com/api2docs/curl/#transition-regenerate-a-webhook-secret-patch
60
+ # @return [Hash]
61
+ # @param project_id [String]
62
+ # @param webhook_id [String, Integer]
63
+ def regenerate_webhook_secret(project_id, webhook_id)
64
+ c_r RubyLokaliseApi::Resources::Webhook, :regenerate_secret,
65
+ [project_id, webhook_id, 'secret', 'regenerate']
66
+ end
67
+ end
68
+ end
69
+ end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Lokalise
3
+ module RubyLokaliseApi
4
4
  module Utils
5
5
  module AttributeHelpers
6
- using Lokalise::Utils::StringUtils
6
+ using RubyLokaliseApi::Utils::StringUtils
7
7
 
8
8
  UNIFIED_RESOURCES = %w[comment language].freeze
9
9
 
@@ -49,7 +49,7 @@ module Lokalise
49
49
  #
50
50
  # @return [Array<String>]
51
51
  def attributes_for(klass)
52
- @attributes ||= YAML.load_file(File.expand_path('../data/attributes.json', __dir__)).freeze
52
+ @attributes ||= YAML.load_file(File.expand_path('../data/attributes.yml', __dir__)).freeze
53
53
 
54
54
  name = unify klass.name.snakecase
55
55
  @attributes[name]
@@ -58,10 +58,10 @@ module Lokalise
58
58
  private
59
59
 
60
60
  def get_key(name:, model_class:, collection: false, strict: false)
61
- key = if collection && Module.const_defined?("Lokalise::Collections::#{model_class}::#{name}")
62
- Module.const_get "Lokalise::Collections::#{model_class}::#{name}"
63
- elsif Module.const_defined? "Lokalise::Resources::#{model_class}::#{name}"
64
- Module.const_get "Lokalise::Resources::#{model_class}::#{name}"
61
+ key = if collection && Module.const_defined?("RubyLokaliseApi::Collections::#{model_class}::#{name}")
62
+ Module.const_get "RubyLokaliseApi::Collections::#{model_class}::#{name}"
63
+ elsif Module.const_defined? "RubyLokaliseApi::Resources::#{model_class}::#{name}"
64
+ Module.const_get "RubyLokaliseApi::Resources::#{model_class}::#{name}"
65
65
  else
66
66
  strict ? nil : model_class
67
67
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Lokalise
3
+ module RubyLokaliseApi
4
4
  module Utils
5
5
  module EndpointHelpers
6
6
  def path_from(raw_mapping)
@@ -3,7 +3,7 @@
3
3
  # Initial code taken from Facets gem by Rubyworks
4
4
  # https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/snakecase.rb
5
5
 
6
- module Lokalise
6
+ module RubyLokaliseApi
7
7
  module Utils
8
8
  module StringUtils
9
9
  refine String do
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyLokaliseApi
4
+ VERSION = '6.0.0'
5
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'zeitwerk'
4
+ require 'faraday'
5
+ require 'faraday/gzip'
6
+ require 'yaml'
7
+ require 'addressable'
8
+
9
+ loader = Zeitwerk::Loader.for_gem
10
+ loader.inflector.inflect(
11
+ 'oauth2' => 'OAuth2',
12
+ 'oauth2_client' => 'OAuth2Client'
13
+ )
14
+ loader.setup
15
+
16
+ module RubyLokaliseApi
17
+ class << self
18
+ # Initializes a new Client object
19
+ #
20
+ # @return [RubyLokaliseApi::Client]
21
+ # @param token [String]
22
+ # @param params [Hash]
23
+ def client(token, params = {})
24
+ @client = RubyLokaliseApi::Client.new token, params
25
+ end
26
+
27
+ # Reset the currently set client
28
+ def reset_client!
29
+ @client = nil
30
+ end
31
+
32
+ # Initializes a new OAuth2Client object
33
+ #
34
+ # @return [RubyLokaliseApi::OAuth2Client]
35
+ # @param token [String]
36
+ # @param params [Hash]
37
+ def oauth2_client(token, params = {})
38
+ @oauth2_client = RubyLokaliseApi::OAuth2Client.new token, params
39
+ end
40
+
41
+ # Reset the currently set OAuth2 client
42
+ def reset_oauth2_client!
43
+ @oauth2_client = nil
44
+ end
45
+
46
+ def auth_client(client_id, client_secret)
47
+ RubyLokaliseApi::OAuth2::Auth.new client_id, client_secret
48
+ end
49
+ end
50
+ end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require File.expand_path('lib/ruby-lokalise-api/version', __dir__)
3
+ require File.expand_path('lib/ruby_lokalise_api/version', __dir__)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = 'ruby-lokalise-api'
7
- spec.version = Lokalise::VERSION
7
+ spec.version = RubyLokaliseApi::VERSION
8
8
  spec.authors = ['Ilya Bodrov-Krukowski']
9
9
  spec.email = ['golosizpru@gmail.com']
10
10
  spec.summary = 'Ruby interface to the Lokalise API'
@@ -12,10 +12,10 @@ Gem::Specification.new do |spec|
12
12
  spec.homepage = 'https://github.com/lokalise/ruby-lokalise-api'
13
13
  spec.license = 'BSD-3-Clause'
14
14
  spec.platform = Gem::Platform::RUBY
15
- spec.required_ruby_version = '>= 2.5.0'
15
+ spec.required_ruby_version = '>= 2.7'
16
16
 
17
17
  spec.files = Dir['README.md', 'LICENSE',
18
- 'CHANGELOG.md', 'lib/**/*.rb', 'lib/ruby-lokalise-api/data/attributes.json',
18
+ 'CHANGELOG.md', 'lib/**/*.rb', 'lib/ruby_lokalise_api/data/attributes.yml',
19
19
  'ruby-lokalise-api.gemspec', '.github/*.md',
20
20
  'Gemfile', 'Rakefile']
21
21
  spec.test_files = Dir['spec/**/*.rb']
@@ -23,9 +23,10 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ['lib']
24
24
 
25
25
  spec.add_dependency 'addressable', '~> 2.5'
26
- spec.add_dependency 'faraday', '~> 1.0'
27
- spec.add_dependency 'faraday_middleware', '~> 1.0'
28
- spec.add_dependency 'json', '>= 1.8.0'
26
+ spec.add_dependency 'faraday', '~> 2.0'
27
+ spec.add_dependency 'faraday-gzip', '~> 0.1'
28
+ spec.add_dependency 'json', '~> 2'
29
+ spec.add_dependency 'zeitwerk', '~> 2.4'
29
30
 
30
31
  spec.add_development_dependency 'codecov', '~> 0.1'
31
32
  spec.add_development_dependency 'dotenv', '~> 2.5'
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Lokalise::Client do
3
+ RSpec.describe RubyLokaliseApi::Client do
4
4
  let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
5
  let(:branch_id) { 41_302 }
6
6
 
@@ -10,20 +10,20 @@ RSpec.describe Lokalise::Client do
10
10
  test_client.branches project_id
11
11
  end.collection
12
12
 
13
- expect(branches.count).to eq(1)
13
+ expect(branches.count).to eq(4)
14
14
  end
15
15
 
16
16
  it 'supports pagination' do
17
17
  branches = VCR.use_cassette('all_branches_pagination') do
18
- test_client.branches project_id, limit: 1, page: 1
18
+ test_client.branches project_id, limit: 2, page: 2
19
19
  end
20
20
 
21
- expect(branches.collection.count).to eq(1)
22
- expect(branches.total_results).to eq(1)
23
- expect(branches.total_pages).to eq(1)
24
- expect(branches.results_per_page).to eq(1)
25
- expect(branches.current_page).to eq(1)
26
- expect(branches.collection.first.name).to eq('ruby-branch')
21
+ expect(branches.collection.count).to eq(2)
22
+ expect(branches.total_results).to eq(4)
23
+ expect(branches.total_pages).to eq(2)
24
+ expect(branches.results_per_page).to eq(2)
25
+ expect(branches.current_page).to eq(2)
26
+ expect(branches.collection.first.name).to eq('merge-me')
27
27
  end
28
28
  end
29
29
 
@@ -74,7 +74,7 @@ RSpec.describe Lokalise::Client do
74
74
  end
75
75
 
76
76
  expect(response['project_id']).to eq(project_id)
77
- expect(response['branch_deleted']).to eq(true)
77
+ expect(response['branch_deleted']).to be(true)
78
78
  end
79
79
 
80
80
  specify '#merge_branch' do
@@ -91,7 +91,7 @@ RSpec.describe Lokalise::Client do
91
91
  end
92
92
 
93
93
  expect(response['project_id']).to eq(project_id)
94
- expect(response['branch_merged']).to eq(true)
94
+ expect(response['branch_merged']).to be(true)
95
95
  expect(response['branch']['branch_id']).to eq(branch_id)
96
96
  expect(response['branch']['name']).to eq(branch.name)
97
97
  end
@@ -111,7 +111,7 @@ RSpec.describe Lokalise::Client do
111
111
  end
112
112
 
113
113
  expect(response['project_id']).to eq(project_id)
114
- expect(response['branch_merged']).to eq(true)
114
+ expect(response['branch_merged']).to be(true)
115
115
  expect(response['branch']['branch_id']).to eq(branch_id)
116
116
  expect(response['branch']['name']).to eq(branch.name)
117
117
  end
@@ -134,7 +134,7 @@ RSpec.describe Lokalise::Client do
134
134
  end
135
135
 
136
136
  expect(response['project_id']).to eq(project_id)
137
- expect(response['branch_deleted']).to eq(true)
137
+ expect(response['branch_deleted']).to be(true)
138
138
  end
139
139
  end
140
140
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- RSpec.describe Lokalise::Client do
3
+ RSpec.describe RubyLokaliseApi::Client do
4
4
  let(:project_id) { '803826145ba90b42d5d860.46800099' }
5
5
  let(:key_id) { 15_305_182 }
6
6
  let(:another_key_id) { 15_519_786 }
@@ -26,10 +26,10 @@ RSpec.describe Lokalise::Client do
26
26
  expect(comments.current_page).to eq(2)
27
27
  expect(comments.collection.first.comment).to eq('demo comment')
28
28
 
29
- expect(comments.next_page?).to eq(true)
30
- expect(comments.last_page?).to eq(false)
31
- expect(comments.prev_page?).to eq(true)
32
- expect(comments.first_page?).to eq(false)
29
+ expect(comments.next_page?).to be(true)
30
+ expect(comments.last_page?).to be(false)
31
+ expect(comments.prev_page?).to be(true)
32
+ expect(comments.first_page?).to be(false)
33
33
 
34
34
  expect(comments.client).to be_an_instance_of(described_class)
35
35
  end
@@ -96,7 +96,7 @@ RSpec.describe Lokalise::Client do
96
96
  test_client.destroy_comment project_id, key_id, 767_938
97
97
  end
98
98
  expect(response['project_id']).to eq(project_id)
99
- expect(response['comment_deleted']).to eq(true)
99
+ expect(response['comment_deleted']).to be(true)
100
100
  end
101
101
 
102
102
  context 'when comment methods are chained' do
@@ -112,7 +112,7 @@ RSpec.describe Lokalise::Client do
112
112
  end
113
113
 
114
114
  expect(delete_response['project_id']).to eq(project_id)
115
- expect(delete_response['comment_deleted']).to eq(true)
115
+ expect(delete_response['comment_deleted']).to be(true)
116
116
  end
117
117
  end
118
118
  end