haveapi 0.22.1 → 0.23.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/haveapi.gemspec +1 -1
- data/lib/haveapi/authentication/token/provider.rb +5 -5
- data/lib/haveapi/client_examples/php_client.rb +6 -9
- data/lib/haveapi/resource.rb +2 -2
- data/lib/haveapi/resources/action_state.rb +2 -5
- data/lib/haveapi/server.rb +18 -0
- data/lib/haveapi/spec/mock_action.rb +2 -2
- data/lib/haveapi/spec/spec_methods.rb +2 -2
- data/lib/haveapi/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 54cc880c99b9714c7fd4661be4f8c7b4ff333e6bcbfa896a6d508f53791797a9
|
4
|
+
data.tar.gz: 6c69f7cc21150d4de0bcb3124c03dc50a3c134a945d32c72c2fb7fcca28291e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 516218e4d6fdcfd4fe09114a2bc4ef4b979a0874e7a50db2bd6ce0535f3dcb5240d5ff4ee31e17dd98dd3c7e700d1f7960b4ceda49531d5d05ec4d33e8d4429b
|
7
|
+
data.tar.gz: 932a6f8690fb1378a4ba689f256d51c3b695ed0464d662970ee8e017d7b5f3c09467abcecfbd24e0c17bd7368a56c3c9edfad153a1793db1e32cfe709bcf0144
|
data/haveapi.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
|
17
17
|
s.add_runtime_dependency 'activesupport', '>= 7.1'
|
18
18
|
s.add_runtime_dependency 'github-markdown'
|
19
|
-
s.add_runtime_dependency 'haveapi-client', '~> 0.
|
19
|
+
s.add_runtime_dependency 'haveapi-client', '~> 0.23.1'
|
20
20
|
s.add_runtime_dependency 'json'
|
21
21
|
s.add_runtime_dependency 'mail'
|
22
22
|
s.add_runtime_dependency 'nesty', '~> 1.0'
|
@@ -281,11 +281,11 @@ module HaveAPI::Authentication
|
|
281
281
|
|
282
282
|
def exec
|
283
283
|
provider = self.class.resource.token_instance
|
284
|
-
result = provider.config.
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
284
|
+
result = provider.config.renew.handle.call(ActionRequest.new(
|
285
|
+
request:,
|
286
|
+
user: current_user,
|
287
|
+
token: provider.token(request)
|
288
|
+
), ActionResult.new)
|
289
289
|
|
290
290
|
if result.ok?
|
291
291
|
{ valid_to: result.valid_to }
|
@@ -147,15 +147,12 @@ module HaveAPI::ClientExamples
|
|
147
147
|
end
|
148
148
|
|
149
149
|
def format_parameters(dir, params, prefix = '')
|
150
|
-
ret =
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
else
|
157
|
-
"#{prefix} \"#{k}\" => #{value(v)}"
|
158
|
-
end
|
150
|
+
ret = params.map do |k, v|
|
151
|
+
if action[dir][:parameters][k][:type] == 'Custom'
|
152
|
+
"#{prefix} \"#{k}\" => custom type}"
|
153
|
+
else
|
154
|
+
"#{prefix} \"#{k}\" => #{value(v)}"
|
155
|
+
end
|
159
156
|
end
|
160
157
|
|
161
158
|
"#{prefix}[\n#{ret.join(",\n")}\n#{prefix}]"
|
data/lib/haveapi/resource.rb
CHANGED
@@ -116,7 +116,7 @@ module HaveAPI
|
|
116
116
|
cls
|
117
117
|
end
|
118
118
|
|
119
|
-
def self.define_action(name, superclass: Action, &
|
119
|
+
def self.define_action(name, superclass: Action, &)
|
120
120
|
return false if const_defined?(name)
|
121
121
|
|
122
122
|
cls = Class.new(superclass)
|
@@ -124,7 +124,7 @@ module HaveAPI
|
|
124
124
|
cls.resource = self
|
125
125
|
cls.action_name = name
|
126
126
|
superclass.delayed_inherited(cls)
|
127
|
-
cls.class_exec(&
|
127
|
+
cls.class_exec(&)
|
128
128
|
end
|
129
129
|
end
|
130
130
|
end
|
@@ -61,7 +61,6 @@ module HaveAPI::Resources
|
|
61
61
|
authorize { allow }
|
62
62
|
|
63
63
|
def exec
|
64
|
-
ret = []
|
65
64
|
actions = @context.server.action_state.list_pending(
|
66
65
|
current_user,
|
67
66
|
input[:offset],
|
@@ -69,11 +68,9 @@ module HaveAPI::Resources
|
|
69
68
|
input[:order].to_sym
|
70
69
|
)
|
71
70
|
|
72
|
-
actions.
|
73
|
-
|
71
|
+
actions.map do |state|
|
72
|
+
state_to_hash(state)
|
74
73
|
end
|
75
|
-
|
76
|
-
ret
|
77
74
|
end
|
78
75
|
end
|
79
76
|
|
data/lib/haveapi/server.rb
CHANGED
@@ -11,6 +11,20 @@ module HaveAPI
|
|
11
11
|
|
12
12
|
include Hookable
|
13
13
|
|
14
|
+
has_hook :pre_mount,
|
15
|
+
desc: 'Called before API actions are mounted in sinatra',
|
16
|
+
args: {
|
17
|
+
server: 'HaveAPI::Server',
|
18
|
+
sinatra: 'Sinatra::Base'
|
19
|
+
}
|
20
|
+
|
21
|
+
has_hook :post_mount,
|
22
|
+
desc: 'Called after API actions are mounted in sinatra',
|
23
|
+
args: {
|
24
|
+
server: 'HaveAPI::Server',
|
25
|
+
sinatra: 'Sinatra::Base'
|
26
|
+
}
|
27
|
+
|
14
28
|
# Called after the user was authenticated (or not). The block is passed
|
15
29
|
# current user object or nil as an argument.
|
16
30
|
has_hook :post_authenticated,
|
@@ -339,12 +353,16 @@ module HaveAPI
|
|
339
353
|
|
340
354
|
@extensions.each { |e| e.enabled(self) }
|
341
355
|
|
356
|
+
call_hooks_for(:pre_mount, args: [self, @sinatra])
|
357
|
+
|
342
358
|
# Mount default version first
|
343
359
|
mount_version(@root, @default_version)
|
344
360
|
|
345
361
|
@versions.each do |v|
|
346
362
|
mount_version(version_prefix(v), v)
|
347
363
|
end
|
364
|
+
|
365
|
+
call_hooks_for(:post_mount, args: [self, @sinatra])
|
348
366
|
end
|
349
367
|
|
350
368
|
def mount_version(prefix, v)
|
@@ -8,7 +8,7 @@ module HaveAPI::Spec
|
|
8
8
|
@v = v
|
9
9
|
end
|
10
10
|
|
11
|
-
def call(input, user: nil, &
|
11
|
+
def call(input, user: nil, &)
|
12
12
|
action = @action.new(nil, @v, input, nil, HaveAPI::Context.new(
|
13
13
|
@server,
|
14
14
|
version: @v,
|
@@ -26,7 +26,7 @@ module HaveAPI::Spec
|
|
26
26
|
status, data, errors = action.safe_exec
|
27
27
|
raise(data || 'action failed') unless status
|
28
28
|
|
29
|
-
action.instance_exec(@test, &
|
29
|
+
action.instance_exec(@test, &)
|
30
30
|
data
|
31
31
|
end
|
32
32
|
end
|
@@ -74,12 +74,12 @@ module HaveAPI::Spec
|
|
74
74
|
# @param version [any] API version, if not specified, the default version is used
|
75
75
|
# @param user [any] object representing authenticated user
|
76
76
|
# @yield [self] the block is executed in the action instance
|
77
|
-
def mock_action(r_name, a_name, params, version: nil, user: nil, &
|
77
|
+
def mock_action(r_name, a_name, params, version: nil, user: nil, &)
|
78
78
|
app
|
79
79
|
v = version || @api.default_version
|
80
80
|
action, path = find_action(v, r_name, a_name)
|
81
81
|
m = MockAction.new(self, @api, action, path, v)
|
82
|
-
m.call(params, user:, &
|
82
|
+
m.call(params, user:, &)
|
83
83
|
end
|
84
84
|
|
85
85
|
# Return parsed API response.
|
data/lib/haveapi/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: haveapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Skokan
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.
|
47
|
+
version: 0.23.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.23.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: json
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|