ruby-lokalise-api 2.8.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/CODE_OF_CONDUCT.md +1 -1
- data/.github/CONTRIBUTING.md +2 -2
- data/CHANGELOG.md +46 -0
- data/Gemfile +2 -0
- data/README.md +293 -178
- data/Rakefile +6 -1
- data/lib/ruby-lokalise-api.rb +4 -0
- data/lib/ruby-lokalise-api/client.rb +18 -4
- data/lib/ruby-lokalise-api/collections/base.rb +6 -2
- data/lib/ruby-lokalise-api/collections/branch.rb +3 -1
- data/lib/ruby-lokalise-api/collections/contributor.rb +2 -0
- data/lib/ruby-lokalise-api/collections/custom_translation_status.rb +3 -1
- data/lib/ruby-lokalise-api/collections/file.rb +2 -0
- data/lib/ruby-lokalise-api/collections/key.rb +2 -0
- data/lib/ruby-lokalise-api/collections/key_comment.rb +2 -0
- data/lib/ruby-lokalise-api/collections/order.rb +2 -0
- data/lib/ruby-lokalise-api/collections/payment_card.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project_comment.rb +2 -0
- data/lib/ruby-lokalise-api/collections/project_language.rb +2 -0
- data/lib/ruby-lokalise-api/collections/queued_process.rb +15 -0
- data/lib/ruby-lokalise-api/collections/screenshot.rb +2 -0
- data/lib/ruby-lokalise-api/collections/snapshot.rb +2 -0
- data/lib/ruby-lokalise-api/collections/system_language.rb +2 -0
- data/lib/ruby-lokalise-api/collections/task.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team_user.rb +2 -0
- data/lib/ruby-lokalise-api/collections/team_user_group.rb +3 -1
- data/lib/ruby-lokalise-api/collections/translation.rb +2 -0
- data/lib/ruby-lokalise-api/collections/translation_provider.rb +2 -0
- data/lib/ruby-lokalise-api/collections/webhook.rb +2 -0
- data/lib/ruby-lokalise-api/connection.rb +3 -1
- data/lib/ruby-lokalise-api/data/attributes.json +28 -13
- data/lib/ruby-lokalise-api/error.rb +2 -0
- data/lib/ruby-lokalise-api/json_handler.rb +4 -0
- data/lib/ruby-lokalise-api/request.rb +10 -1
- data/lib/ruby-lokalise-api/resources/base.rb +53 -21
- data/lib/ruby-lokalise-api/resources/branch.rb +3 -1
- data/lib/ruby-lokalise-api/resources/contributor.rb +4 -2
- data/lib/ruby-lokalise-api/resources/custom_translation_status.rb +4 -2
- data/lib/ruby-lokalise-api/resources/file.rb +5 -1
- data/lib/ruby-lokalise-api/resources/key.rb +3 -1
- data/lib/ruby-lokalise-api/resources/key_comment.rb +5 -3
- data/lib/ruby-lokalise-api/resources/order.rb +4 -0
- data/lib/ruby-lokalise-api/resources/payment_card.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project_comment.rb +3 -1
- data/lib/ruby-lokalise-api/resources/project_language.rb +5 -3
- data/lib/ruby-lokalise-api/resources/queued_process.rb +18 -0
- data/lib/ruby-lokalise-api/resources/screenshot.rb +3 -1
- data/lib/ruby-lokalise-api/resources/snapshot.rb +5 -1
- data/lib/ruby-lokalise-api/resources/system_language.rb +3 -1
- data/lib/ruby-lokalise-api/resources/task.rb +3 -1
- data/lib/ruby-lokalise-api/resources/team.rb +2 -0
- data/lib/ruby-lokalise-api/resources/team_user.rb +4 -2
- data/lib/ruby-lokalise-api/resources/team_user_group.rb +6 -3
- data/lib/ruby-lokalise-api/resources/translation.rb +3 -1
- data/lib/ruby-lokalise-api/resources/translation_provider.rb +5 -0
- data/lib/ruby-lokalise-api/resources/webhook.rb +13 -3
- data/lib/ruby-lokalise-api/rest/branches.rb +2 -0
- data/lib/ruby-lokalise-api/rest/comments.rb +7 -5
- data/lib/ruby-lokalise-api/rest/contributors.rb +7 -5
- data/lib/ruby-lokalise-api/rest/custom_translation_statuses.rb +8 -6
- data/lib/ruby-lokalise-api/rest/files.rb +5 -3
- data/lib/ruby-lokalise-api/rest/keys.rb +9 -7
- data/lib/ruby-lokalise-api/rest/languages.rb +8 -6
- data/lib/ruby-lokalise-api/rest/orders.rb +2 -0
- data/lib/ruby-lokalise-api/rest/payment_cards.rb +5 -3
- data/lib/ruby-lokalise-api/rest/projects.rb +8 -6
- data/lib/ruby-lokalise-api/rest/queued_processes.rb +26 -0
- data/lib/ruby-lokalise-api/rest/screenshots.rb +7 -5
- data/lib/ruby-lokalise-api/rest/snapshots.rb +6 -4
- data/lib/ruby-lokalise-api/rest/tasks.rb +7 -5
- data/lib/ruby-lokalise-api/rest/team_user_group.rb +6 -4
- data/lib/ruby-lokalise-api/rest/team_users.rb +6 -4
- data/lib/ruby-lokalise-api/rest/teams.rb +3 -1
- data/lib/ruby-lokalise-api/rest/translation_providers.rb +4 -2
- data/lib/ruby-lokalise-api/rest/translations.rb +5 -3
- data/lib/ruby-lokalise-api/rest/webhooks.rb +18 -5
- data/lib/ruby-lokalise-api/utils/attribute_helpers.rb +2 -0
- data/lib/ruby-lokalise-api/utils/endpoint_helpers.rb +2 -0
- data/lib/ruby-lokalise-api/utils/string_utils.rb +2 -0
- data/lib/ruby-lokalise-api/version.rb +3 -1
- data/ruby-lokalise-api.gemspec +9 -5
- data/spec/lib/ruby-lokalise-api/connection_spec.rb +10 -7
- data/spec/lib/ruby-lokalise-api/custom_json_parser_spec.rb +9 -5
- data/spec/lib/ruby-lokalise-api/error_spec.rb +15 -4
- data/spec/lib/ruby-lokalise-api/rest/branches_spec.rb +19 -5
- data/spec/lib/ruby-lokalise-api/rest/comments_spec.rb +19 -5
- data/spec/lib/ruby-lokalise-api/rest/contributors_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/custom_translation_statuses_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/files_spec.rb +21 -11
- data/spec/lib/ruby-lokalise-api/rest/keys_spec.rb +46 -26
- data/spec/lib/ruby-lokalise-api/rest/languages_spec.rb +20 -6
- data/spec/lib/ruby-lokalise-api/rest/orders_spec.rb +16 -2
- data/spec/lib/ruby-lokalise-api/rest/payment_cards_spec.rb +21 -5
- data/spec/lib/ruby-lokalise-api/rest/projects_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/queued_processes_spec.rb +57 -0
- data/spec/lib/ruby-lokalise-api/rest/screenshots_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/snapshots_spec.rb +31 -4
- data/spec/lib/ruby-lokalise-api/rest/tasks_spec.rb +18 -4
- data/spec/lib/ruby-lokalise-api/rest/team_user_groups_spec.rb +92 -6
- data/spec/lib/ruby-lokalise-api/rest/team_users_spec.rb +19 -4
- data/spec/lib/ruby-lokalise-api/rest/teams_spec.rb +2 -0
- data/spec/lib/ruby-lokalise-api/rest/translation_providers_spec.rb +9 -2
- data/spec/lib/ruby-lokalise-api/rest/translations_spec.rb +20 -6
- data/spec/lib/ruby-lokalise-api/rest/webhooks_spec.rb +54 -2
- data/spec/lib/ruby-lokalise-api/utils/snakecase_spec.rb +2 -0
- data/spec/lib/ruby-lokalise-api_spec.rb +12 -9
- data/spec/spec_helper.rb +8 -1
- data/spec/support/test_client.rb +2 -0
- data/spec/support/vcr.rb +2 -0
- metadata +59 -12
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all snapshots for the given project
|
|
4
6
|
#
|
|
5
|
-
# @see https://lokalise.
|
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-snapshots-get
|
|
6
8
|
# @return [Lokalise::Collection::Snapshot<Lokalise::Resources::Snapshot>]
|
|
7
9
|
# @param project_id [String]
|
|
8
10
|
# @param params [Hash]
|
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
|
12
14
|
|
|
13
15
|
# Creates snapshot for the given project
|
|
14
16
|
#
|
|
15
|
-
# @see https://lokalise.
|
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-a-snapshot-post
|
|
16
18
|
# @return [Lokalise::Resources::Snapshot]
|
|
17
19
|
# @param project_id [String]
|
|
18
20
|
# @param params [Hash]
|
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
|
22
24
|
|
|
23
25
|
# Restore project from the given snapshot by producing project's copy
|
|
24
26
|
#
|
|
25
|
-
# @see https://lokalise.
|
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-restore-a-snapshot-post
|
|
26
28
|
# @return [Lokalise::Resources::Project]
|
|
27
29
|
# @param project_id [String]
|
|
28
30
|
# @param snapshot_id [String, Integer]
|
|
@@ -32,7 +34,7 @@ module Lokalise
|
|
|
32
34
|
|
|
33
35
|
# Deletes snapshot
|
|
34
36
|
#
|
|
35
|
-
# @see https://lokalise.
|
|
37
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-snapshot-delete
|
|
36
38
|
# @return [Hash]
|
|
37
39
|
# @param project_id [String]
|
|
38
40
|
# @param snapshot_id [String, Integer]
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all tasks for the given project
|
|
4
6
|
#
|
|
5
|
-
# @see https://lokalise.
|
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-tasks-get
|
|
6
8
|
# @return [Lokalise::Collection::Task<Lokalise::Resources::Task>]
|
|
7
9
|
# @param project_id [String]
|
|
8
10
|
# @param params [Hash]
|
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
|
12
14
|
|
|
13
15
|
# Returns a single task for the given project
|
|
14
16
|
#
|
|
15
|
-
# @see https://lokalise.
|
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-task-get
|
|
16
18
|
# @return [Lokalise::Resources::Task]
|
|
17
19
|
# @param project_id [String]
|
|
18
20
|
# @param task_id [String, Integer]
|
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
|
22
24
|
|
|
23
25
|
# Creates task for the given project
|
|
24
26
|
#
|
|
25
|
-
# @see https://lokalise.
|
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-a-task-post
|
|
26
28
|
# @return [Lokalise::Resources::Task]
|
|
27
29
|
# @param project_id [String]
|
|
28
30
|
# @param params [Hash]
|
|
@@ -32,7 +34,7 @@ module Lokalise
|
|
|
32
34
|
|
|
33
35
|
# Updates task for the given project
|
|
34
36
|
#
|
|
35
|
-
# @see https://lokalise.
|
|
37
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-task-put
|
|
36
38
|
# @return [Lokalise::Resources::Task]
|
|
37
39
|
# @param project_id [String]
|
|
38
40
|
# @param task_id [String, Integer]
|
|
@@ -43,7 +45,7 @@ module Lokalise
|
|
|
43
45
|
|
|
44
46
|
# Deletes task for the given project
|
|
45
47
|
#
|
|
46
|
-
# @see https://lokalise.
|
|
48
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-task-delete
|
|
47
49
|
# @return [Hash]
|
|
48
50
|
# @param project_id [String]
|
|
49
51
|
# @param task_id [String, Integer]
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all team user groups for the given team
|
|
@@ -60,7 +62,7 @@ module Lokalise
|
|
|
60
62
|
def add_projects_to_group(team_id, group_id, project_ids)
|
|
61
63
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
|
62
64
|
[team_id, group_id, 'projects', 'add'],
|
|
63
|
-
project_ids, :projects
|
|
65
|
+
project_ids, :projects, [team_id, group_id]
|
|
64
66
|
end
|
|
65
67
|
|
|
66
68
|
# Removes projects from the given group
|
|
@@ -73,7 +75,7 @@ module Lokalise
|
|
|
73
75
|
def remove_projects_from_group(team_id, group_id, project_ids)
|
|
74
76
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
|
75
77
|
[team_id, group_id, 'projects', 'remove'],
|
|
76
|
-
project_ids, :projects
|
|
78
|
+
project_ids, :projects, [team_id, group_id]
|
|
77
79
|
end
|
|
78
80
|
|
|
79
81
|
# Adds users to the given group
|
|
@@ -86,7 +88,7 @@ module Lokalise
|
|
|
86
88
|
def add_users_to_group(team_id, group_id, users_ids)
|
|
87
89
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
|
88
90
|
[team_id, group_id, 'members', 'add'],
|
|
89
|
-
users_ids, :users
|
|
91
|
+
users_ids, :users, [team_id, group_id]
|
|
90
92
|
end
|
|
91
93
|
|
|
92
94
|
# Removes users from the given group
|
|
@@ -99,7 +101,7 @@ module Lokalise
|
|
|
99
101
|
def remove_users_from_group(team_id, group_id, users_ids)
|
|
100
102
|
c_r Lokalise::Resources::TeamUserGroup, :update,
|
|
101
103
|
[team_id, group_id, 'members', 'remove'],
|
|
102
|
-
users_ids, :users
|
|
104
|
+
users_ids, :users, [team_id, group_id]
|
|
103
105
|
end
|
|
104
106
|
end
|
|
105
107
|
end
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all team users for the given team
|
|
4
6
|
#
|
|
5
|
-
# @see https://lokalise.
|
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-team-users-get
|
|
6
8
|
# @return [Lokalise::Collection::TeamUser<Lokalise::Resources::TeamUser>]
|
|
7
9
|
# @param team_id [String]
|
|
8
10
|
# @param params [Hash]
|
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
|
12
14
|
|
|
13
15
|
# Returns team user from the given team
|
|
14
16
|
#
|
|
15
|
-
# @see https://lokalise.
|
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-team-user-get
|
|
16
18
|
# @return [Lokalise::Resources::TeamUser]
|
|
17
19
|
# @param team_id [String]
|
|
18
20
|
# @param user_id [String, Integer]
|
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
|
22
24
|
|
|
23
25
|
# Updates team user for the given team
|
|
24
26
|
#
|
|
25
|
-
# @see https://lokalise.
|
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-team-user-put
|
|
26
28
|
# @return [Lokalise::Resources::TeamUser]
|
|
27
29
|
# @param team_id [String]
|
|
28
30
|
# @param user_id [String, Integer]
|
|
@@ -33,7 +35,7 @@ module Lokalise
|
|
|
33
35
|
|
|
34
36
|
# Deletes team user from the given team
|
|
35
37
|
#
|
|
36
|
-
# @see https://lokalise.
|
|
38
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-team-user-delete
|
|
37
39
|
# @return [Lokalise::Resources::TeamUser]
|
|
38
40
|
# @param team_id [String]
|
|
39
41
|
# @param user_id [String, Integer]
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all teams available to the user
|
|
4
6
|
#
|
|
5
|
-
# @see https://lokalise.
|
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-teams-get
|
|
6
8
|
# @return [Lokalise::Collection::Team<Lokalise::Resources::Team>]
|
|
7
9
|
# @param params [Hash]
|
|
8
10
|
def teams(params = {})
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all translation providers for the given team
|
|
4
6
|
#
|
|
5
|
-
# @see https://lokalise.
|
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-providers-get
|
|
6
8
|
# @return [Lokalise::Collection::TranslationProvider<Lokalise::Resources::TranslationProvider>]
|
|
7
9
|
# @param team_id [String]
|
|
8
10
|
# @param params [Hash]
|
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
|
12
14
|
|
|
13
15
|
# Returns a single translation provider for the given team
|
|
14
16
|
#
|
|
15
|
-
# @see https://lokalise.
|
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-provider-get
|
|
16
18
|
# @return [Lokalise::Resources::TranslationProvider]
|
|
17
19
|
# @param team_id [String]
|
|
18
20
|
# @param provider_id [String, Integer]
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all translations for the given project (ungrouped)
|
|
4
6
|
#
|
|
5
|
-
# @see https://lokalise.
|
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-translations-get
|
|
6
8
|
# @return [Lokalise::Collection::Translation<Lokalise::Resources::Translation>]
|
|
7
9
|
# @param project_id [String]
|
|
8
10
|
# @param params [Hash]
|
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
|
12
14
|
|
|
13
15
|
# Returns translation of the given project
|
|
14
16
|
#
|
|
15
|
-
# @see https://lokalise.
|
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-translation-get
|
|
16
18
|
# @return [Lokalise::Resources::Translation]
|
|
17
19
|
# @param project_id [String]
|
|
18
20
|
# @param translation_id [String, Integer]
|
|
@@ -23,7 +25,7 @@ module Lokalise
|
|
|
23
25
|
|
|
24
26
|
# Updates translation of the given project
|
|
25
27
|
#
|
|
26
|
-
# @see https://lokalise.
|
|
28
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-translation-put
|
|
27
29
|
# @return [Lokalise::Resources::Translation]
|
|
28
30
|
# @param project_id [String]
|
|
29
31
|
# @param translation_id [String, Integer]
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
class Client
|
|
3
5
|
# Returns all webhooks for the given project
|
|
4
6
|
#
|
|
5
|
-
# @see https://lokalise.
|
|
7
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-list-all-webhooks-get
|
|
6
8
|
# @return [Lokalise::Collection::Webhook<Lokalise::Resources::Webhook>]
|
|
7
9
|
# @param project_id [String]
|
|
8
10
|
# @param params [Hash]
|
|
@@ -12,7 +14,7 @@ module Lokalise
|
|
|
12
14
|
|
|
13
15
|
# Returns a single webhook for the given project
|
|
14
16
|
#
|
|
15
|
-
# @see https://lokalise.
|
|
17
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-retrieve-a-webhook-get
|
|
16
18
|
# @return [Lokalise::Resources::Webhook]
|
|
17
19
|
# @param project_id [String]
|
|
18
20
|
# @param webhook_id [String, Integer]
|
|
@@ -22,7 +24,7 @@ module Lokalise
|
|
|
22
24
|
|
|
23
25
|
# Creates webhook for the given project
|
|
24
26
|
#
|
|
25
|
-
# @see https://lokalise.
|
|
27
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-create-a-webhook-post
|
|
26
28
|
# @return [Lokalise::Resources::Webhook]
|
|
27
29
|
# @param project_id [String]
|
|
28
30
|
# @param params [Hash]
|
|
@@ -32,7 +34,7 @@ module Lokalise
|
|
|
32
34
|
|
|
33
35
|
# Updates webhook for the given project
|
|
34
36
|
#
|
|
35
|
-
# @see https://lokalise.
|
|
37
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-update-a-webhook-put
|
|
36
38
|
# @return [Lokalise::Resources::Webhook]
|
|
37
39
|
# @param project_id [String]
|
|
38
40
|
# @param webhook_id [String, Integer]
|
|
@@ -43,12 +45,23 @@ module Lokalise
|
|
|
43
45
|
|
|
44
46
|
# Deletes webhook for the given project
|
|
45
47
|
#
|
|
46
|
-
# @see https://lokalise.
|
|
48
|
+
# @see https://app.lokalise.com/api2docs/curl/#transition-delete-a-webhook-delete
|
|
47
49
|
# @return [Hash]
|
|
48
50
|
# @param project_id [String]
|
|
49
51
|
# @param webhook_id [String, Integer]
|
|
50
52
|
def destroy_webhook(project_id, webhook_id)
|
|
51
53
|
c_r Lokalise::Resources::Webhook, :destroy, [project_id, webhook_id]
|
|
52
54
|
end
|
|
55
|
+
|
|
56
|
+
# Regenerates secret for the given webhook
|
|
57
|
+
#
|
|
58
|
+
# @see https://lokalise.com/api2docs/curl/#transition-regenerate-a-webhook-secret-patch
|
|
59
|
+
# @return [Hash]
|
|
60
|
+
# @param project_id [String]
|
|
61
|
+
# @param webhook_id [String, Integer]
|
|
62
|
+
def regenerate_webhook_secret(project_id, webhook_id)
|
|
63
|
+
c_r Lokalise::Resources::Webhook, :regenerate_secret,
|
|
64
|
+
[project_id, webhook_id, 'secret', 'regenerate']
|
|
65
|
+
end
|
|
53
66
|
end
|
|
54
67
|
end
|
data/ruby-lokalise-api.gemspec
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require File.expand_path('lib/ruby-lokalise-api/version', __dir__)
|
|
2
4
|
|
|
3
5
|
Gem::Specification.new do |spec|
|
|
@@ -10,7 +12,6 @@ Gem::Specification.new do |spec|
|
|
|
10
12
|
spec.homepage = 'https://github.com/lokalise/ruby-lokalise-api'
|
|
11
13
|
spec.license = 'MIT'
|
|
12
14
|
spec.platform = Gem::Platform::RUBY
|
|
13
|
-
spec.required_ruby_version = '>= 2.4.0'
|
|
14
15
|
|
|
15
16
|
spec.files = Dir['README.md', 'LICENSE',
|
|
16
17
|
'CHANGELOG.md', 'lib/**/*.rb', 'lib/ruby-lokalise-api/data/attributes.json',
|
|
@@ -21,14 +22,17 @@ Gem::Specification.new do |spec|
|
|
|
21
22
|
spec.require_paths = ['lib']
|
|
22
23
|
|
|
23
24
|
spec.add_dependency 'addressable', '~> 2.5'
|
|
24
|
-
spec.add_dependency 'faraday', '~> 0
|
|
25
|
+
spec.add_dependency 'faraday', '~> 1.0'
|
|
26
|
+
spec.add_dependency 'json', '>= 1.8.0'
|
|
25
27
|
|
|
28
|
+
spec.add_development_dependency 'codecov', '~> 0.1'
|
|
26
29
|
spec.add_development_dependency 'dotenv', '~> 2.5'
|
|
27
|
-
spec.add_development_dependency 'oj', '~> 3.
|
|
30
|
+
spec.add_development_dependency 'oj', '~> 3.10'
|
|
28
31
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
29
32
|
spec.add_development_dependency 'rspec', '~> 3.6'
|
|
30
33
|
spec.add_development_dependency 'rubocop', '~> 0.60'
|
|
31
|
-
spec.add_development_dependency 'rubocop-performance', '~> 1.
|
|
34
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.5'
|
|
35
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 1.37'
|
|
32
36
|
spec.add_development_dependency 'simplecov', '~> 0.16'
|
|
33
|
-
spec.add_development_dependency 'vcr', '~>
|
|
37
|
+
spec.add_development_dependency 'vcr', '~> 6.0'
|
|
34
38
|
end
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
RSpec.describe Lokalise::Connection do
|
|
2
4
|
include described_class
|
|
3
5
|
|
|
4
|
-
before
|
|
5
|
-
|
|
6
|
+
before { Lokalise.reset_client! }
|
|
7
|
+
|
|
8
|
+
after do
|
|
6
9
|
Lokalise.reset_client!
|
|
7
10
|
Faraday.default_adapter = :net_http
|
|
8
11
|
end
|
|
@@ -14,7 +17,7 @@ RSpec.describe Lokalise::Connection do
|
|
|
14
17
|
expect(conn.headers['X-api-token']).to eq(test_client.token)
|
|
15
18
|
end
|
|
16
19
|
|
|
17
|
-
it '
|
|
20
|
+
it 'allows to customize timeouts' do
|
|
18
21
|
custom_client = Lokalise.client(ENV['LOKALISE_API_TOKEN'],
|
|
19
22
|
open_timeout: 100, timeout: 500)
|
|
20
23
|
conn = connection custom_client
|
|
@@ -29,14 +32,14 @@ RSpec.describe Lokalise::Connection do
|
|
|
29
32
|
expect(another_conn.options.open_timeout).to eq(200)
|
|
30
33
|
end
|
|
31
34
|
|
|
32
|
-
it '
|
|
35
|
+
it 'is possible to customize adapter' do
|
|
33
36
|
conn = connection test_client
|
|
34
|
-
expect(conn.builder.
|
|
37
|
+
expect(conn.builder.adapter).to eq(Faraday::Adapter::NetHttp)
|
|
35
38
|
|
|
36
39
|
Faraday.default_adapter = :excon
|
|
37
40
|
|
|
38
41
|
another_conn = connection test_client
|
|
39
|
-
expect(another_conn.builder.
|
|
40
|
-
expect(conn.builder.
|
|
42
|
+
expect(another_conn.builder.adapter).to eq(Faraday::Adapter::Excon)
|
|
43
|
+
expect(conn.builder.adapter).to eq(Faraday::Adapter::NetHttp)
|
|
41
44
|
end
|
|
42
45
|
end
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'oj'
|
|
2
4
|
|
|
3
|
-
RSpec.describe
|
|
5
|
+
RSpec.describe Lokalise::JsonHandler do
|
|
4
6
|
let(:loaded_json) do
|
|
5
7
|
{'projects' => [{'project_id' => '547879415c01a0e6e0b855.29978928',
|
|
6
8
|
'name' => 'demo phoenix copy',
|
|
@@ -25,7 +27,8 @@ RSpec.describe 'Custom JSON parser' do
|
|
|
25
27
|
'{":name":"rspec proj",":description":"demo project for rspec"}'
|
|
26
28
|
end
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
# rubocop:disable RSpec/LeakyConstantDeclaration
|
|
31
|
+
before do
|
|
29
32
|
module Lokalise
|
|
30
33
|
module JsonHandler
|
|
31
34
|
def custom_dump(obj)
|
|
@@ -39,7 +42,7 @@ RSpec.describe 'Custom JSON parser' do
|
|
|
39
42
|
end
|
|
40
43
|
end
|
|
41
44
|
|
|
42
|
-
after
|
|
45
|
+
after do
|
|
43
46
|
module Lokalise
|
|
44
47
|
module JsonHandler
|
|
45
48
|
def custom_dump(obj)
|
|
@@ -52,8 +55,9 @@ RSpec.describe 'Custom JSON parser' do
|
|
|
52
55
|
end
|
|
53
56
|
end
|
|
54
57
|
end
|
|
58
|
+
# rubocop:enable RSpec/LeakyConstantDeclaration
|
|
55
59
|
|
|
56
|
-
it '
|
|
60
|
+
it 'allows to customize #load' do
|
|
57
61
|
expect(Oj).to receive(:load).and_return(loaded_json)
|
|
58
62
|
expect(JSON).not_to receive(:parse)
|
|
59
63
|
projects = VCR.use_cassette('all_projects_pagination') do
|
|
@@ -65,7 +69,7 @@ RSpec.describe 'Custom JSON parser' do
|
|
|
65
69
|
expect(projects.collection.first.name).to eq('demo phoenix copy')
|
|
66
70
|
end
|
|
67
71
|
|
|
68
|
-
it '
|
|
72
|
+
it 'allows to customize #dump' do
|
|
69
73
|
expect(Oj).to receive(:dump).and_return(dumped_json)
|
|
70
74
|
expect(JSON).not_to receive(:dump)
|
|
71
75
|
project = VCR.use_cassette('new_project') do
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
RSpec.describe Lokalise::Error do
|
|
2
4
|
include Lokalise::Request
|
|
3
5
|
|
|
4
|
-
before
|
|
5
|
-
|
|
6
|
+
before { Lokalise.reset_client! }
|
|
7
|
+
|
|
8
|
+
after { Lokalise.reset_client! }
|
|
9
|
+
|
|
10
|
+
it 'raises a generic error when the code is unknown' do
|
|
11
|
+
expect do
|
|
12
|
+
VCR.use_cassette('error_unknown_code') do
|
|
13
|
+
get 'projects', Lokalise.client('invalid')
|
|
14
|
+
end
|
|
15
|
+
end.to raise_error(described_class)
|
|
16
|
+
end
|
|
6
17
|
|
|
7
|
-
it '
|
|
18
|
+
it 'raises BadRequest when API token is invalid' do
|
|
8
19
|
expect do
|
|
9
20
|
VCR.use_cassette('error_invalid_token') do
|
|
10
21
|
get 'projects', Lokalise.client('invalid')
|
|
@@ -12,7 +23,7 @@ RSpec.describe Lokalise::Error do
|
|
|
12
23
|
end.to raise_error(Lokalise::Error::BadRequest)
|
|
13
24
|
end
|
|
14
25
|
|
|
15
|
-
it '
|
|
26
|
+
it 'raises NotFound when the provided path cannot be found' do
|
|
16
27
|
expect do
|
|
17
28
|
VCR.use_cassette('error_not_found') do
|
|
18
29
|
get 'invalid_path', test_client
|