committee 2.0.0.pre7 → 2.0.0.pre8
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
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
|