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,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class Base
|
|
@@ -6,25 +8,27 @@ module Lokalise
|
|
|
6
8
|
include Lokalise::Utils::AttributeHelpers
|
|
7
9
|
extend Lokalise::Utils::EndpointHelpers
|
|
8
10
|
|
|
9
|
-
attr_reader :raw_data, :project_id, :client, :path
|
|
11
|
+
attr_reader :raw_data, :project_id, :client, :path, :branch, :user_id, :team_id
|
|
10
12
|
|
|
11
|
-
# Initializes a new resource based on the response
|
|
13
|
+
# Initializes a new resource based on the response.
|
|
14
|
+
# `endpoint_generator` is used in cases when a new instance is generated
|
|
15
|
+
# from a different resource. For example, restoring from a snapshot
|
|
16
|
+
# creates a totally different project which should have a new path.
|
|
12
17
|
#
|
|
13
18
|
# @param response [Hash]
|
|
19
|
+
# @param endpoint_generator [Proc] Generate proper paths for certain resources
|
|
14
20
|
# @return [Lokalise::Resources::Base]
|
|
15
|
-
def initialize(response)
|
|
21
|
+
def initialize(response, endpoint_generator = nil)
|
|
16
22
|
populate_attributes_for response['content']
|
|
17
|
-
|
|
18
|
-
@raw_data = response['content']
|
|
19
|
-
@project_id = response['content']['project_id']
|
|
23
|
+
extract_common_attributes_for response['content']
|
|
20
24
|
@client = response['client']
|
|
21
|
-
@path = infer_path_from response
|
|
25
|
+
@path = infer_path_from response, endpoint_generator
|
|
22
26
|
end
|
|
23
27
|
|
|
24
28
|
class << self
|
|
25
|
-
# Dynamically
|
|
29
|
+
# Dynamically adds attribute readers for each inherited class.
|
|
26
30
|
# Attributes are defined in the `data/attributes.json` file.
|
|
27
|
-
# Also
|
|
31
|
+
# Also sets the `ATTRIBUTES` constant to assign values to each attribute later when
|
|
28
32
|
# the response arrives from the API
|
|
29
33
|
def inherited(subclass)
|
|
30
34
|
klass_attributes = attributes_for subclass
|
|
@@ -41,10 +45,16 @@ module Lokalise
|
|
|
41
45
|
# Usage: `supports :update, :destroy, [:complex_method, '/sub/path', :update]`
|
|
42
46
|
def supports(*methods)
|
|
43
47
|
methods.each do |m_data|
|
|
44
|
-
method_name
|
|
48
|
+
# `method_name` - the method that the resource should support
|
|
49
|
+
# `sub_path` - a string that has to be appended to a base path
|
|
50
|
+
# `c_method` - method name to delegate the work to
|
|
51
|
+
method_name, sub_path, c_method =
|
|
52
|
+
m_data.is_a?(Array) ? m_data : [m_data, '', m_data]
|
|
53
|
+
|
|
45
54
|
define_method method_name do |params = {}|
|
|
46
55
|
path = instance_variable_get(:@path)
|
|
47
|
-
# If there's a sub_path
|
|
56
|
+
# If there's a sub_path which is a string,
|
|
57
|
+
# preserve the initial path to allow further chaining
|
|
48
58
|
params = params.merge(_initial_path: path) if sub_path
|
|
49
59
|
self.class.send c_method, instance_variable_get(:@client),
|
|
50
60
|
path + sub_path, params
|
|
@@ -54,30 +64,34 @@ module Lokalise
|
|
|
54
64
|
|
|
55
65
|
# Fetches a single record
|
|
56
66
|
def find(client, path, params = {})
|
|
57
|
-
new get(path, client, params)
|
|
67
|
+
new get(path, client, prepare_params(params))
|
|
58
68
|
end
|
|
59
69
|
|
|
60
70
|
# Creates one or multiple records
|
|
61
71
|
def create(client, path, params)
|
|
62
|
-
response = post path, client, params
|
|
63
|
-
|
|
72
|
+
response = post path, client, prepare_params(params)
|
|
64
73
|
object_from response, params
|
|
65
74
|
end
|
|
66
75
|
|
|
67
76
|
# Updates one or multiple records
|
|
68
77
|
def update(client, path, params)
|
|
69
|
-
response = put path, client, params
|
|
70
|
-
|
|
78
|
+
response = put path, client, prepare_params(params)
|
|
71
79
|
object_from response, params
|
|
72
80
|
end
|
|
73
81
|
|
|
74
82
|
# Destroys records by given ids
|
|
75
83
|
def destroy(client, path, params = {})
|
|
76
|
-
delete(path, client, params)['content']
|
|
84
|
+
delete(path, client, prepare_params(params))['content']
|
|
77
85
|
end
|
|
78
86
|
|
|
79
87
|
private
|
|
80
88
|
|
|
89
|
+
# Filters out internal attributes that should not be sent to Lokalise
|
|
90
|
+
def prepare_params(params)
|
|
91
|
+
filter_attrs = %i[_initial_path]
|
|
92
|
+
params.reject { |key, _v| filter_attrs.include?(key) }
|
|
93
|
+
end
|
|
94
|
+
|
|
81
95
|
# Instantiates a new resource or collection based on the given response
|
|
82
96
|
def object_from(response, params)
|
|
83
97
|
model_class = name.base_class_name
|
|
@@ -94,7 +108,6 @@ module Lokalise
|
|
|
94
108
|
|
|
95
109
|
def produce_resource(model_class, response)
|
|
96
110
|
data_key_singular = data_key_for model_class
|
|
97
|
-
|
|
98
111
|
if response['content'].key? data_key_singular
|
|
99
112
|
data = response['content'].delete data_key_singular
|
|
100
113
|
response['content'].merge! data
|
|
@@ -109,20 +122,27 @@ module Lokalise
|
|
|
109
122
|
end
|
|
110
123
|
|
|
111
124
|
# Generates path for the individual resource based on the path for the collection
|
|
112
|
-
def infer_path_from(response)
|
|
125
|
+
def infer_path_from(response, endpoint_generator = nil)
|
|
113
126
|
id_key = id_key_for self.class.name.base_class_name
|
|
114
127
|
data_key = data_key_for self.class.name.base_class_name
|
|
115
128
|
|
|
116
|
-
path_with_id response, id_key, data_key
|
|
129
|
+
path_with_id response, id_key, data_key, endpoint_generator
|
|
117
130
|
end
|
|
118
131
|
|
|
119
|
-
def path_with_id(response, id_key, data_key)
|
|
132
|
+
def path_with_id(response, id_key, data_key, endpoint_generator = nil)
|
|
120
133
|
# Some resources do not have ids at all
|
|
121
134
|
return nil unless response['content'].key?(id_key) || response['content'].key?(data_key)
|
|
122
135
|
|
|
123
136
|
# ID of the resource
|
|
124
137
|
id = id_from response, id_key, data_key
|
|
125
138
|
|
|
139
|
+
# If `endpoint_generator` is present, generate a new path
|
|
140
|
+
# based on the fetched id
|
|
141
|
+
if endpoint_generator
|
|
142
|
+
path = endpoint_generator.call project_id, id
|
|
143
|
+
return path.remove_trailing_slash
|
|
144
|
+
end
|
|
145
|
+
|
|
126
146
|
path = response['path'] || response['base_path']
|
|
127
147
|
# If path already has id - just return it
|
|
128
148
|
return path if path.match?(/#{id}\z/)
|
|
@@ -156,6 +176,18 @@ module Lokalise
|
|
|
156
176
|
instance_variable_set "@#{attr}", value
|
|
157
177
|
end
|
|
158
178
|
end
|
|
179
|
+
|
|
180
|
+
# Extracts all common attributes that resources have.
|
|
181
|
+
# Some of them may be absent in certain cases.
|
|
182
|
+
# rubocop:disable Naming/MemoizedInstanceVariableName
|
|
183
|
+
def extract_common_attributes_for(content)
|
|
184
|
+
@raw_data = content
|
|
185
|
+
@project_id ||= content['project_id']
|
|
186
|
+
@user_id ||= content['user_id']
|
|
187
|
+
@team_id ||= content['team_id']
|
|
188
|
+
@branch ||= content['branch']
|
|
189
|
+
end
|
|
190
|
+
# rubocop:enable Naming/MemoizedInstanceVariableName
|
|
159
191
|
end
|
|
160
192
|
end
|
|
161
193
|
end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class Branch < Base
|
|
4
|
-
supports :update, :destroy
|
|
6
|
+
supports :update, :destroy, [:reload_data, '', :find]
|
|
5
7
|
|
|
6
8
|
def merge(params = {})
|
|
7
9
|
self.class.merge @client, self.class.endpoint(project_id, branch_id, :merge), params
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class Contributor < Base
|
|
4
|
-
ID_KEY = 'user'
|
|
5
|
-
supports :update, :destroy
|
|
6
|
+
ID_KEY = 'user'
|
|
7
|
+
supports :update, :destroy, [:reload_data, '', :find]
|
|
6
8
|
|
|
7
9
|
class << self
|
|
8
10
|
def endpoint(project_id, contributor_id = nil)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class CustomTranslationStatus < Base
|
|
4
|
-
ID_KEY = 'status'
|
|
5
|
-
supports :update, :destroy
|
|
6
|
+
ID_KEY = 'status'
|
|
7
|
+
supports :update, :destroy, [:reload_data, '', :find]
|
|
6
8
|
|
|
7
9
|
class << self
|
|
8
10
|
def colors(client, path, *_args)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class File < Base
|
|
@@ -7,7 +9,9 @@ module Lokalise
|
|
|
7
9
|
end
|
|
8
10
|
|
|
9
11
|
def upload(client, path, params)
|
|
10
|
-
|
|
12
|
+
klass = Lokalise::Resources::QueuedProcess
|
|
13
|
+
klass.new post(path, client, params),
|
|
14
|
+
->(project_id, id) { klass.endpoint(project_id, id) }
|
|
11
15
|
end
|
|
12
16
|
|
|
13
17
|
def endpoint(project_id, action = '')
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class KeyComment < Base
|
|
4
|
-
DATA_KEY = 'Comment'
|
|
5
|
-
ID_KEY = 'comment'
|
|
6
|
-
supports :destroy
|
|
6
|
+
DATA_KEY = 'Comment'
|
|
7
|
+
ID_KEY = 'comment'
|
|
8
|
+
supports :destroy, [:reload_data, '', :find]
|
|
7
9
|
|
|
8
10
|
class << self
|
|
9
11
|
def endpoint(project_id, key_id, comment_id = nil)
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class ProjectLanguage < Base
|
|
4
|
-
DATA_KEY = 'Language'
|
|
5
|
-
ID_KEY = 'lang'
|
|
6
|
-
supports :update, :destroy
|
|
6
|
+
DATA_KEY = 'Language'
|
|
7
|
+
ID_KEY = 'lang'
|
|
8
|
+
supports :update, :destroy, [:reload_data, '', :find]
|
|
7
9
|
|
|
8
10
|
class << self
|
|
9
11
|
def endpoint(project_id, language_id = nil)
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lokalise
|
|
4
|
+
module Resources
|
|
5
|
+
class QueuedProcess < Base
|
|
6
|
+
DATA_KEY = 'Process'
|
|
7
|
+
ID_KEY = 'process'
|
|
8
|
+
supports [:reload_data, '', :find]
|
|
9
|
+
|
|
10
|
+
class << self
|
|
11
|
+
def endpoint(project_id, process_id = nil)
|
|
12
|
+
path_from projects: project_id,
|
|
13
|
+
processes: process_id
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class Snapshot < Base
|
|
@@ -9,7 +11,9 @@ module Lokalise
|
|
|
9
11
|
|
|
10
12
|
class << self
|
|
11
13
|
def restore(client, path, *_args)
|
|
12
|
-
Lokalise::Resources::Project
|
|
14
|
+
klass = Lokalise::Resources::Project
|
|
15
|
+
klass.new post(path, client),
|
|
16
|
+
->(project_id, *_ids) { klass.endpoint(project_id) }
|
|
13
17
|
end
|
|
14
18
|
|
|
15
19
|
def endpoint(project_id, snapshot_id = nil)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class TeamUser < Base
|
|
4
|
-
ID_KEY = 'user'
|
|
5
|
-
supports :update, :destroy
|
|
6
|
+
ID_KEY = 'user'
|
|
7
|
+
supports :update, :destroy, [:reload_data, '', :find]
|
|
6
8
|
|
|
7
9
|
class << self
|
|
8
10
|
def endpoint(team_id, team_user_id = nil)
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class TeamUserGroup < Base
|
|
4
|
-
DATA_KEY = 'Group'
|
|
5
|
-
ID_KEY = 'group'
|
|
6
|
+
DATA_KEY = 'Group'
|
|
7
|
+
ID_KEY = 'group'
|
|
6
8
|
supports :update, :destroy,
|
|
7
9
|
[:add_projects, '/projects/add', :update],
|
|
8
10
|
[:remove_projects, '/projects/remove', :update],
|
|
9
11
|
[:add_users, '/members/add', :update],
|
|
10
|
-
[:remove_users, '/members/remove', :update]
|
|
12
|
+
[:remove_users, '/members/remove', :update],
|
|
13
|
+
[:reload_data, '', :find]
|
|
11
14
|
|
|
12
15
|
class << self
|
|
13
16
|
def endpoint(team_id, team_user_group_id = nil, *actions)
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Lokalise
|
|
2
4
|
module Resources
|
|
3
5
|
class Webhook < Base
|
|
4
|
-
supports :update, :destroy
|
|
6
|
+
supports :update, :destroy, [:reload_data, '', :find]
|
|
7
|
+
|
|
8
|
+
def regenerate_secret
|
|
9
|
+
self.class.regenerate_secret @client, @path + '/secret/regenerate'
|
|
10
|
+
end
|
|
5
11
|
|
|
6
12
|
class << self
|
|
7
|
-
def
|
|
13
|
+
def regenerate_secret(client, path, *_args)
|
|
14
|
+
patch(path, client)['content']
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def endpoint(project_id, webhook_id = nil, *actions)
|
|
8
18
|
path_from projects: project_id,
|
|
9
|
-
webhooks: webhook_id
|
|
19
|
+
webhooks: [webhook_id, *actions]
|
|
10
20
|
end
|
|
11
21
|
end
|
|
12
22
|
end
|