1212 */
1313class ResponseCallStrategy
1414{
15+ /**
16+ * @param Route $route
17+ * @param array $tags
18+ * @param array $routeProps
19+ *
20+ * @return array|null
21+ */
1522 public function __invoke (Route $ route , array $ tags , array $ routeProps )
1623 {
1724 $ rulesToApply = $ routeProps ['rules ' ]['response_calls ' ] ?? [];
1825 if (! $ this ->shouldMakeApiCall ($ route , $ rulesToApply )) {
19- return ;
26+ return null ;
2027 }
2128
2229 $ this ->configureEnvironment ($ rulesToApply );
2330 $ request = $ this ->prepareRequest ($ route , $ rulesToApply , $ routeProps ['body ' ], $ routeProps ['query ' ]);
31+
2432 try {
25- $ response = $ this ->makeApiCall ($ request );
33+ $ response = [ $ this ->makeApiCall ($ request )] ;
2634 } catch (\Exception $ e ) {
2735 $ response = null ;
2836 } finally {
@@ -32,12 +40,25 @@ public function __invoke(Route $route, array $tags, array $routeProps)
3240 return $ response ;
3341 }
3442
43+ /**
44+ * @param array $rulesToApply
45+ *
46+ * @return void
47+ */
3548 private function configureEnvironment (array $ rulesToApply )
3649 {
3750 $ this ->startDbTransaction ();
3851 $ this ->setEnvironmentVariables ($ rulesToApply ['env ' ] ?? []);
3952 }
4053
54+ /**
55+ * @param Route $route
56+ * @param array $rulesToApply
57+ * @param array $bodyParams
58+ * @param array $queryParams
59+ *
60+ * @return Request
61+ */
4162 private function prepareRequest (Route $ route , array $ rulesToApply , array $ bodyParams , array $ queryParams )
4263 {
4364 $ uri = $ this ->replaceUrlParameterBindings ($ route , $ rulesToApply ['bindings ' ] ?? []);
@@ -77,6 +98,11 @@ protected function replaceUrlParameterBindings(Route $route, $bindings)
7798 return $ uri ;
7899 }
79100
101+ /**
102+ * @param array $env
103+ *
104+ * @return void
105+ */
80106 private function setEnvironmentVariables (array $ env )
81107 {
82108 foreach ($ env as $ name => $ value ) {
@@ -87,6 +113,9 @@ private function setEnvironmentVariables(array $env)
87113 }
88114 }
89115
116+ /**
117+ * @return void
118+ */
90119 private function startDbTransaction ()
91120 {
92121 try {
@@ -95,6 +124,9 @@ private function startDbTransaction()
95124 }
96125 }
97126
127+ /**
128+ * @return void
129+ */
98130 private function endDbTransaction ()
99131 {
100132 try {
@@ -103,11 +135,19 @@ private function endDbTransaction()
103135 }
104136 }
105137
138+ /**
139+ * @return void
140+ */
106141 private function finish ()
107142 {
108143 $ this ->endDbTransaction ();
109144 }
110145
146+ /**
147+ * @param Request $request
148+ *
149+ * @return \Illuminate\Http\JsonResponse|mixed
150+ */
111151 public function callDingoRoute (Request $ request )
112152 {
113153 /** @var Dispatcher $dispatcher */
@@ -138,11 +178,23 @@ public function callDingoRoute(Request $request)
138178 return $ response ;
139179 }
140180
181+ /**
182+ * @param Route $route
183+ *
184+ * @return array
185+ */
141186 public function getMethods (Route $ route )
142187 {
143188 return array_diff ($ route ->methods (), ['HEAD ' ]);
144189 }
145190
191+ /**
192+ * @param Request $request
193+ * @param Route $route
194+ * @param array|null $headers
195+ *
196+ * @return Request
197+ */
146198 private function addHeaders (Request $ request , Route $ route , $ headers )
147199 {
148200 // set the proper domain
@@ -162,6 +214,12 @@ private function addHeaders(Request $request, Route $route, $headers)
162214 return $ request ;
163215 }
164216
217+ /**
218+ * @param Request $request
219+ * @param array $query
220+ *
221+ * @return Request
222+ */
165223 private function addQueryParameters (Request $ request , array $ query )
166224 {
167225 $ request ->query ->add ($ query );
@@ -170,13 +228,25 @@ private function addQueryParameters(Request $request, array $query)
170228 return $ request ;
171229 }
172230
231+ /**
232+ * @param Request $request
233+ * @param array $body
234+ *
235+ * @return Request
236+ */
173237 private function addBodyParameters (Request $ request , array $ body )
174238 {
175239 $ request ->request ->add ($ body );
176240
177241 return $ request ;
178242 }
179243
244+ /**
245+ * @param Request $request
246+ *
247+ * @return \Illuminate\Http\JsonResponse|mixed|\Symfony\Component\HttpFoundation\Response
248+ * @throws \Exception
249+ */
180250 private function makeApiCall (Request $ request )
181251 {
182252 if (config ('apidoc.router ' ) == 'dingo ' ) {
@@ -189,9 +259,10 @@ private function makeApiCall(Request $request)
189259 }
190260
191261 /**
192- * @param $request
262+ * @param Request $request
193263 *
194264 * @return \Symfony\Component\HttpFoundation\Response
265+ * @throws \Exception
195266 */
196267 private function callLaravelRoute (Request $ request ): \Symfony \Component \HttpFoundation \Response
197268 {
@@ -202,6 +273,12 @@ private function callLaravelRoute(Request $request): \Symfony\Component\HttpFoun
202273 return $ response ;
203274 }
204275
276+ /**
277+ * @param Route $route
278+ * @param array $rulesToApply
279+ *
280+ * @return bool
281+ */
205282 private function shouldMakeApiCall (Route $ route , array $ rulesToApply ): bool
206283 {
207284 $ allowedMethods = $ rulesToApply ['methods ' ] ?? [];
0 commit comments