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: 5e47c09e8ea8d73d5c06992555c2c02671be06ac
4
- data.tar.gz: c3671183b4ccbf5d6b69bcd89a74c8828a84e7f9
3
+ metadata.gz: a52179d89e7de15a76b440454d27fc478ca2e75b
4
+ data.tar.gz: 5a98b675cffcefd898612e6806dc466d58fa9d64
5
5
  SHA512:
6
- metadata.gz: c51f69cf118128c3bf0f8f3df13a89d282a8a997a3ebdedb84c579ebad3fbe773471e0f8e1ad025631774d229f854df3bd38863e32ea78a99daf9bb70f416559
7
- data.tar.gz: 50265b73bee7f7ef9f53e4b412ac2b9b85dae0733c7a5a4d30bafeee863e56d8a86a6f578e7154866c53d475a9d42afa6f393430461bfa22308a17cd427e2bcc
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.env["rack.request.query_hash"].merge!(
68
- Committee::ParameterCoercer
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
- @app = new_rack_app(coerce_date_times: true, schema: hyper_schema)
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
- "update_time" => "2016-04-01T16:00:00.000+09:00"
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 lambda { |_|
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.pre7
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-03-17 00:00:00.000000000 Z
12
+ date: 2017-05-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json_schema