@@ -68,28 +68,10 @@ private function validateQueryParams(): void
6868 $ queryRules = $ this ->queryParamRules ();
6969
7070 if (count ($ queryRules ) > 0 ) {
71- $ queryKeys = array_keys ($ this ->query ());
72-
73- $ queryRulesKeys = array_keys ($ queryRules );
74-
75- $ invalidQueryKeys = array_values (array_diff ($ queryKeys , $ queryRulesKeys ));
76-
77- if (count ($ invalidQueryKeys ) > 0 ) {
78- $ message = count ($ invalidQueryKeys ) > 1
79- ? sprintf (
80- 'Received unknown parameters: %s ' ,
81- implode (', ' , $ invalidQueryKeys ),
82- )
83- : sprintf (
84- 'Received unknown parameter: %s ' ,
85- $ invalidQueryKeys [0 ],
86- );
87-
88- throw new HttpException (
89- statusCode: Response::HTTP_BAD_REQUEST ,
90- message: $ message ,
91- );
92- }
71+ $ this ->rejectUnknownKeys (
72+ array_keys ($ this ->query ()),
73+ array_keys ($ queryRules ),
74+ );
9375
9476 /** @var ValidationFactory $factory */
9577 $ factory = $ this ->container ->make (ValidationFactory::class);
@@ -112,28 +94,29 @@ private function validateFormData(): void
11294 $ inputKeys = array_keys (array_diff_key ($ this ->input (), $ this ->query ()));
11395
11496 if (count ($ inputKeys ) > 0 ) {
115- $ rules = $ this ->rules ();
116-
117- $ rulesKeys = array_keys ($ rules );
118-
119- $ invalidInputKeys = array_values (array_diff ($ inputKeys , $ rulesKeys ));
120-
121- if (count ($ invalidInputKeys ) > 0 ) {
122- $ message = count ($ invalidInputKeys ) > 1
123- ? sprintf (
124- 'Received unknown parameters: %s ' ,
125- implode (', ' , $ invalidInputKeys ),
126- )
127- : sprintf (
128- 'Received unknown parameter: %s ' ,
129- $ invalidInputKeys [0 ],
130- );
131-
132- throw new HttpException (
133- statusCode: Response::HTTP_BAD_REQUEST ,
134- message: $ message ,
135- );
136- }
97+ $ this ->rejectUnknownKeys ($ inputKeys , array_keys ($ this ->rules ()));
98+ }
99+ }
100+
101+ /**
102+ * @param list<string> $submitted
103+ * @param list<string> $allowed
104+ */
105+ private function rejectUnknownKeys (array $ submitted , array $ allowed ): void
106+ {
107+ $ unknown = array_values (array_diff ($ submitted , $ allowed ));
108+
109+ if ($ unknown === []) {
110+ return ;
137111 }
112+
113+ $ message = count ($ unknown ) > 1
114+ ? sprintf ('Received unknown parameters: %s ' , implode (', ' , $ unknown ))
115+ : sprintf ('Received unknown parameter: %s ' , $ unknown [0 ]);
116+
117+ throw new HttpException (
118+ statusCode: Response::HTTP_BAD_REQUEST ,
119+ message: $ message ,
120+ );
138121 }
139122}
0 commit comments