1212 */
1313class ResponseCallStrategy
1414{
15- public function __invoke (Route $ route , array $ tags , array $ rulesToApply )
15+ public function __invoke (Route $ route , array $ tags , array $ routeProps )
1616 {
17- $ rulesToApply = $ rulesToApply ['response_calls ' ] ?? [];
17+ $ rulesToApply = $ routeProps [ ' rules ' ] ['response_calls ' ] ?? [];
1818 if (! $ this ->shouldMakeApiCall ($ route , $ rulesToApply )) {
1919 return ;
2020 }
2121
2222 $ this ->configureEnvironment ($ rulesToApply );
23- $ request = $ this ->prepareRequest ($ route , $ rulesToApply );
23+ $ request = $ this ->prepareRequest ($ route , $ rulesToApply, $ routeProps [ ' body ' ], $ routeProps [ ' query ' ] );
2424 try {
2525 $ response = $ this ->makeApiCall ($ request );
2626 } catch (\Exception $ e ) {
@@ -38,15 +38,20 @@ private function configureEnvironment(array $rulesToApply)
3838 $ this ->setEnvironmentVariables ($ rulesToApply ['env ' ] ?? []);
3939 }
4040
41- private function prepareRequest (Route $ route , array $ rulesToApply )
41+ private function prepareRequest (Route $ route , array $ rulesToApply, array $ bodyParams , array $ queryParams )
4242 {
4343 $ uri = $ this ->replaceUrlParameterBindings ($ route , $ rulesToApply ['bindings ' ] ?? []);
4444 $ routeMethods = $ this ->getMethods ($ route );
4545 $ method = array_shift ($ routeMethods );
4646 $ request = Request::create ($ uri , $ method , [], [], [], $ this ->transformHeadersToServerVars ($ rulesToApply ['headers ' ] ?? []));
4747 $ request = $ this ->addHeaders ($ request , $ route , $ rulesToApply ['headers ' ] ?? []);
48- $ request = $ this ->addQueryParameters ($ request , $ rulesToApply ['query ' ] ?? []);
49- $ request = $ this ->addBodyParameters ($ request , $ rulesToApply ['body ' ] ?? []);
48+
49+ // Mix in parsed parameters with manually specified parameters.
50+ $ queryParams = collect ($ queryParams )->map ->value ->merge ($ rulesToApply ['query ' ] ?? [])->toArray ();
51+ $ bodyParams = collect ($ bodyParams )->map ->value ->merge ($ rulesToApply ['body ' ] ?? [])->toArray ();
52+
53+ $ request = $ this ->addQueryParameters ($ request , $ queryParams );
54+ $ request = $ this ->addBodyParameters ($ request , $ bodyParams );
5055
5156 return $ request ;
5257 }
@@ -188,7 +193,7 @@ private function makeApiCall(Request $request)
188193 *
189194 * @return \Symfony\Component\HttpFoundation\Response
190195 */
191- private function callLaravelRoute ($ request ): \Symfony \Component \HttpFoundation \Response
196+ private function callLaravelRoute (Request $ request ): \Symfony \Component \HttpFoundation \Response
192197 {
193198 $ kernel = app (\Illuminate \Contracts \Http \Kernel::class);
194199 $ response = $ kernel ->handle ($ request );
0 commit comments