@@ -29,7 +29,7 @@ abstract class AbstractApi implements ApiContract
29
29
*/
30
30
protected array $ cachedEndpoints = [];
31
31
32
- private readonly SendRequestAction $ sendRequestAction ;
32
+ private ? SendRequestAction $ sendRequestAction = null ;
33
33
34
34
/**
35
35
* @var array<class-string<AbstractEndpoint>, class-string<AbstractEndpoint>>
@@ -48,9 +48,6 @@ public function __construct(
48
48
$ overrideEndpoints ,
49
49
$ environment instanceof EnvironmentOverrideEndpointsContract ? $ environment ->endpoints () : []
50
50
);
51
- $ this ->sendRequestAction = $ this ->factory ()
52
- ->container ()
53
- ->make (SendRequestAction::class);
54
51
}
55
52
56
53
public function environment (): AbstractEnvironment
@@ -88,7 +85,7 @@ public function get(
88
85
->request ()
89
86
->createRequest ('GET ' , $ uri ->toString ());
90
87
91
- return $ this ->sendRequestAction
88
+ return $ this ->sendRequestAction ()
92
89
->execute (
93
90
api: $ this ,
94
91
request: $ request ,
@@ -119,7 +116,7 @@ public function post(
119
116
->request ()
120
117
->createRequest ('POST ' , $ uri ->toString ());
121
118
122
- return $ this ->sendRequestAction
119
+ return $ this ->sendRequestAction ()
123
120
->execute (
124
121
api: $ this ,
125
122
request: $ request ,
@@ -151,7 +148,7 @@ public function put(
151
148
->request ()
152
149
->createRequest ('PUT ' , $ uri ->toString ());
153
150
154
- return $ this ->sendRequestAction
151
+ return $ this ->sendRequestAction ()
155
152
->execute (
156
153
api: $ this ,
157
154
request: $ request ,
@@ -183,7 +180,7 @@ public function delete(
183
180
->request ()
184
181
->createRequest ('DELETE ' , $ uri ->toString ());
185
182
186
- return $ this ->sendRequestAction
183
+ return $ this ->sendRequestAction ()
187
184
->execute ($ this , $ request , $ responseClass , $ body , $ headers , $ expectedResponseStatusCode );
188
185
}
189
186
@@ -207,7 +204,7 @@ public function fake(
207
204
array $ headers = [],
208
205
?int $ expectedResponseStatusCode = null
209
206
): AbstractResponse {
210
- return $ this ->sendRequestAction
207
+ return $ this ->sendRequestAction ()
211
208
->execute (
212
209
api: $ this ,
213
210
request: $ this ->factory ()
@@ -283,4 +280,15 @@ private function getOverrideEndpointClassIfCan(string $endpoint): string
283
280
284
281
return $ endpoint ;
285
282
}
283
+
284
+ private function sendRequestAction (): SendRequestAction
285
+ {
286
+ if ($ this ->sendRequestAction instanceof SendRequestAction === false ) {
287
+ $ this ->sendRequestAction = $ this ->factory ()
288
+ ->container ()
289
+ ->make (SendRequestAction::class);
290
+ }
291
+
292
+ return $ this ->sendRequestAction ;
293
+ }
286
294
}
0 commit comments