@@ -65,22 +65,18 @@ def update_params(env, data, strict:)
6565 raise InvalidRequestBody unless parsed_request_body . is_a? ( Hash )
6666 raise InvalidRequestBody unless ParameterParsing . valid_encoding? ( parsed_request_body )
6767
68- query_params = parse_nested_query ( env [ QUERY_STRING ] . to_s )
68+ query_params = parse_nested_query ( env [ QUERY_STRING ] . to_s , strict : strict )
6969 unless compatible_parameter_shapes? ( query_params , parsed_request_body )
7070 raise InvalidRequestBody
7171 end
7272 end
7373
7474 env [ "parsed_request_body" . freeze ] = parsed_request_body
75- parsed_query_string = parse_query ( env [ QUERY_STRING ] . to_s )
75+ parsed_query_string = parse_query_string ( env [ QUERY_STRING ] . to_s , strict : strict )
7676 parsed_query_string . merge! ( parsed_request_body )
77- env [ QUERY_STRING ] = build_query ( parsed_query_string )
77+ env [ QUERY_STRING ] = build_query_string ( parsed_query_string , strict : strict )
7878 env . delete ( 'rack.request.query_hash' . freeze )
7979 env . delete ( 'rack.request.query_string' . freeze )
80- rescue *ParameterParsing . errors
81- raise InvalidRequestBody if strict
82-
83- raise
8480 end
8581
8682 def parse_json_body ( data , strict :)
@@ -91,8 +87,28 @@ def parse_json_body(data, strict:)
9187 raise
9288 end
9389
94- def parse_nested_query ( data )
90+ def parse_nested_query ( data , strict : )
9591 ParameterParsing . parse_nested_query ( data )
92+ rescue *ParameterParsing . errors
93+ raise InvalidRequestBody if strict
94+
95+ raise
96+ end
97+
98+ def parse_query_string ( data , strict :)
99+ parse_query ( data )
100+ rescue *ParameterParsing . errors
101+ raise InvalidRequestBody if strict
102+
103+ raise
104+ end
105+
106+ def build_query_string ( params , strict :)
107+ build_query ( params )
108+ rescue *ParameterParsing . errors
109+ raise InvalidRequestBody if strict
110+
111+ raise
96112 end
97113
98114 def compatible_parameter_shapes? ( left , right )
0 commit comments