committee 2.0.0.pre7 → 2.0.0.pre8
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a52179d89e7de15a76b440454d27fc478ca2e75b
|
4
|
+
data.tar.gz: 5a98b675cffcefd898612e6806dc466d58fa9d64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59cab2ff0859d8ae77a734f3bdfe5103c9b52c70c2cbca18846739e9afff0280a900910479c72697e743bfc92b833864ce34529fd33a8ff45dec84bb03d6d2a0
|
7
|
+
data.tar.gz: 4034113794bb7f991542919a7f8f0b22bb8b4c5c52a1c9e5be03dba15ece0a3cb8d0fcaa451cd716e6c935d28f6d3185d200b06f0e3640e653c5d62179b09f5d
|
@@ -64,12 +64,8 @@ module Committee::Middleware
|
|
64
64
|
validator = Committee::RequestValidator.new(link, check_content_type: @check_content_type)
|
65
65
|
validator.call(request, request.env[@params_key])
|
66
66
|
|
67
|
-
request
|
68
|
-
|
69
|
-
.new(request.env["rack.request.query_hash"], link.schema,
|
70
|
-
coerce_date_times: @coerce_date_times)
|
71
|
-
.call
|
72
|
-
)
|
67
|
+
parameter_coerce(request, link, @params_key)
|
68
|
+
parameter_coerce(request, link, "rack.request.query_hash") if !request.GET.nil? && !link.schema.nil?
|
73
69
|
|
74
70
|
@app.call(request.env)
|
75
71
|
elsif @strict
|
@@ -91,5 +87,16 @@ module Committee::Middleware
|
|
91
87
|
raise Committee::InvalidRequest if @raise
|
92
88
|
@error_class.new(400, :bad_request, "Request body wasn't valid JSON.").render
|
93
89
|
end
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
def parameter_coerce(request, link, coerce_key)
|
94
|
+
request.env[coerce_key].merge!(
|
95
|
+
Committee::ParameterCoercer
|
96
|
+
.new(request.env[coerce_key], link.schema,
|
97
|
+
coerce_date_times: @coerce_date_times)
|
98
|
+
.call
|
99
|
+
)
|
100
|
+
end
|
94
101
|
end
|
95
102
|
end
|
@@ -17,11 +17,37 @@ describe Committee::Middleware::RequestValidation do
|
|
17
17
|
assert_equal 200, last_response.status
|
18
18
|
end
|
19
19
|
|
20
|
-
it "passes given a datetime and with coerce_date_times enabled" do
|
21
|
-
|
20
|
+
it "passes given a datetime and with coerce_date_times enabled on GET endpoint" do
|
21
|
+
key_name = "update_time"
|
22
22
|
params = {
|
23
|
-
|
23
|
+
key_name => "2016-04-01T16:00:00.000+09:00",
|
24
|
+
"query" => "cloudnasium"
|
25
|
+
}
|
26
|
+
|
27
|
+
check_parameter = lambda { |env|
|
28
|
+
assert_equal DateTime, env['rack.request.query_hash'][key_name].class
|
29
|
+
[200, {}, []]
|
24
30
|
}
|
31
|
+
|
32
|
+
@app = new_rack_app_with_lambda(check_parameter, coerce_date_times: true, schema: hyper_schema)
|
33
|
+
|
34
|
+
get "/search/apps", params
|
35
|
+
assert_equal 200, last_response.status
|
36
|
+
end
|
37
|
+
|
38
|
+
it "passes given a datetime and with coerce_date_times enabled on POST endpoint" do
|
39
|
+
key_name = "update_time"
|
40
|
+
params = {
|
41
|
+
key_name => "2016-04-01T16:00:00.000+09:00"
|
42
|
+
}
|
43
|
+
|
44
|
+
check_parameter = lambda { |env|
|
45
|
+
assert_equal DateTime, env['committee.params'][key_name].class
|
46
|
+
[200, {}, []]
|
47
|
+
}
|
48
|
+
|
49
|
+
@app = new_rack_app_with_lambda(check_parameter, coerce_date_times: true, schema: hyper_schema)
|
50
|
+
|
25
51
|
header "Content-Type", "application/json"
|
26
52
|
post "/apps", JSON.generate(params)
|
27
53
|
assert_equal 200, last_response.status
|
@@ -157,11 +183,16 @@ describe Committee::Middleware::RequestValidation do
|
|
157
183
|
private
|
158
184
|
|
159
185
|
def new_rack_app(options = {})
|
186
|
+
new_rack_app_with_lambda(lambda { |_|
|
187
|
+
[200, {}, []]
|
188
|
+
}, options)
|
189
|
+
end
|
190
|
+
|
191
|
+
|
192
|
+
def new_rack_app_with_lambda(check_lambda, options = {})
|
160
193
|
Rack::Builder.new {
|
161
194
|
use Committee::Middleware::RequestValidation, options
|
162
|
-
run
|
163
|
-
[200, {}, []]
|
164
|
-
}
|
195
|
+
run check_lambda
|
165
196
|
}
|
166
197
|
end
|
167
198
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: committee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.pre8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandur
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-05-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json_schema
|