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: 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