@@ -79,8 +79,12 @@ protected function getAuthHeader(): array
7979 /**
8080 * @throws RuntimeException
8181 */
82- public function makePostRequest (string $ source , array $ payload , ?int $ allowedRetries = null ): PushPullJob
83- {
82+ public function makePostRequest (
83+ string $ source ,
84+ array $ payload ,
85+ ?int $ allowedRetries = null ,
86+ bool $ logResponseBody = true ,
87+ ): PushPullJob {
8488 try {
8589 $ response = $ this ->makeRequest (
8690 'post ' ,
@@ -90,6 +94,7 @@ public function makePostRequest(string $source, array $payload, ?int $allowedRet
9094 ...$ payload ,
9195 ],
9296 $ allowedRetries ?? 0 ,
97+ logResponseBody: $ logResponseBody ,
9398 );
9499
95100 if (! $ response ->successful ()) {
@@ -105,8 +110,13 @@ public function makePostRequest(string $source, array $payload, ?int $allowedRet
105110 /**
106111 * @throws GuzzleException|Throwable
107112 */
108- protected function makeRequest (string $ method , string $ uri , ?array $ payload = null , ?int $ retryCount = null ): Response
109- {
113+ protected function makeRequest (
114+ string $ method ,
115+ string $ uri ,
116+ ?array $ payload = null ,
117+ ?int $ retryCount = null ,
118+ bool $ logResponseBody = true ,
119+ ): Response {
110120 $ request = new Request (
111121 method: $ method ,
112122 uri: $ uri ,
@@ -135,7 +145,15 @@ protected function makeRequest(string $method, string $uri, ?array $payload = nu
135145 }, 2000 );
136146
137147 if (config ('oxylabs-api.request_logging_enabled ' , true )) {
138- $ logger ->updateFromResponse ($ response ->toPsrResponse ());
148+ if ($ logResponseBody ) {
149+ $ logger ->updateFromResponse ($ response ->toPsrResponse ());
150+ } else {
151+ $ logger ->response_code = $ response ->getStatusCode ();
152+ $ logger ->response_headers = $ response ->getHeaders ();
153+
154+ $ logger ->save ();
155+ }
156+
139157 }
140158
141159 return $ response ;
@@ -147,13 +165,15 @@ protected function makeRequest(string $method, string $uri, ?array $payload = nu
147165 public function getResult (
148166 string $ job_id ,
149167 ?string $ type = null ,
168+ bool $ logResponseBody = true ,
150169 ): ?array {
151170 try {
152171 $ response = $ this ->makeRequest (
153172 'get ' ,
154173 $ this ->baseUrl ."/queries/ $ job_id/results " .($ type ? "?type= $ type " : '' ),
155174 null ,
156- 3
175+ 3 ,
176+ logResponseBody: $ logResponseBody ,
157177 );
158178 } catch (Throwable $ e ) {
159179 throw new RuntimeException ('API request failed: ' .$ e ->getMessage (), $ e ->getCode (), $ e );
@@ -170,12 +190,15 @@ public function getResult(
170190 * @throws ConnectionException
171191 * @throws Throwable
172192 */
173- public function getPushPullJob (string $ job_id ): PushPullJob
174- {
193+ public function getPushPullJob (
194+ string $ job_id ,
195+ bool $ logResponseBody = true ,
196+ ): PushPullJob {
175197 $ response = $ this ->makeRequest (
176198 'get ' ,
177199 $ this ->baseUrl ."/queries/ $ job_id " ,
178200 retryCount: 3 ,
201+ logResponseBody: $ logResponseBody ,
179202 );
180203
181204 if (! $ response ->successful ()) {
@@ -196,6 +219,7 @@ public function getPushPullResults(
196219 int $ status_check_limit = 5 ,
197220 int $ status_wait_seconds = 3 ,
198221 ?string $ type = null ,
222+ bool $ logResponseBody = true ,
199223 ): ?array {
200224 if ($ check_status ) {
201225 $ attempts = 0 ;
@@ -204,7 +228,7 @@ public function getPushPullResults(
204228 } while ($ job ->isPending () && $ attempts ++ < $ status_check_limit && sleep ($ status_wait_seconds ) === 0 );
205229 }
206230
207- return $ this ->getResult ($ job_id , $ type );
231+ return $ this ->getResult ($ job_id , $ type, $ logResponseBody );
208232 }
209233
210234 /**
@@ -216,8 +240,9 @@ public function getAmazonProductResult(
216240 int $ status_check_limit = 5 ,
217241 int $ status_wait_seconds = 3 ,
218242 ?string $ type = 'parsed ' ,
243+ bool $ logResponseBody = true ,
219244 ): AmazonProductResponse {
220- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
245+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
221246
222247 return AmazonProductResponse::from ($ response );
223248 }
@@ -231,8 +256,9 @@ public function getAmazonResult(
231256 int $ status_check_limit = 5 ,
232257 int $ status_wait_seconds = 3 ,
233258 ?string $ type = 'parsed ' ,
259+ bool $ logResponseBody = true ,
234260 ): AmazonResponse {
235- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
261+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
236262
237263 return AmazonResponse::from ($ response );
238264 }
@@ -246,8 +272,9 @@ public function getUniversalResult(
246272 int $ status_check_limit = 5 ,
247273 int $ status_wait_seconds = 3 ,
248274 ?string $ type = 'raw ' ,
275+ bool $ logResponseBody = true ,
249276 ): UniversalResponse {
250- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
277+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
251278
252279 return UniversalResponse::from ($ response );
253280 }
@@ -261,8 +288,9 @@ public function getAmazonPricingResult(
261288 int $ status_check_limit = 5 ,
262289 int $ status_wait_seconds = 3 ,
263290 ?string $ type = 'parsed ' ,
291+ bool $ logResponseBody = true ,
264292 ): AmazonPricingResponse {
265- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
293+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
266294
267295 return AmazonPricingResponse::from ($ response );
268296 }
@@ -277,8 +305,9 @@ public function getAmazonSellerResult(
277305 int $ status_check_limit = 5 ,
278306 int $ status_wait_seconds = 3 ,
279307 ?string $ type = 'parsed ' ,
308+ bool $ logResponseBody = true ,
280309 ): AmazonSellerResponse {
281- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
310+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
282311
283312 return AmazonSellerResponse::from ($ response );
284313 }
@@ -287,13 +316,16 @@ public function getAmazonSellerResult(
287316 * @throws GuzzleException
288317 * @throws Throwable
289318 */
290- public function makeBatchRequest (BatchRequest $ payload ): PushPullBatchJobResponse
291- {
319+ public function makeBatchRequest (
320+ BatchRequest $ payload ,
321+ bool $ logResponseBody = true ,
322+ ): PushPullBatchJobResponse {
292323 $ response = $ this ->makeRequest (
293324 'post ' ,
294325 $ this ->baseUrl .'/queries/batch ' ,
295326 $ payload ->toArray (),
296- 3
327+ 3 ,
328+ $ logResponseBody ,
297329 );
298330
299331 if (! $ response ->successful ()) {
@@ -306,65 +338,68 @@ public function makeBatchRequest(BatchRequest $payload): PushPullBatchJobRespons
306338 /**
307339 * @throws RuntimeException
308340 */
309- public function amazon (AmazonRequest $ request , ?int $ allowedRetries = null ): PushPullJob
310- {
311- return $ this ->makePostRequest (OxylabsApi::TARGET_AMAZON , $ request ->toArray (), $ allowedRetries );
341+ public function amazon (
342+ AmazonRequest $ request ,
343+ ?int $ allowedRetries = null ,
344+ bool $ logResponseBody = true ,
345+ ): PushPullJob {
346+ return $ this ->makePostRequest (OxylabsApi::TARGET_AMAZON , $ request ->toArray (), $ allowedRetries , $ logResponseBody );
312347 }
313348
314349 /**
315350 * @throws RuntimeException
316351 */
317- public function amazonProduct (AmazonProductRequest $ request , ?int $ allowedRetries = null ): PushPullJob
352+ public function amazonProduct (AmazonProductRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
318353 {
319- return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_PRODUCT , $ request ->toArray (), $ allowedRetries );
354+ return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_PRODUCT , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
320355 }
321356
322357 /**
323358 * @throws RuntimeException
324359 */
325- public function amazonSearch (AmazonSearchRequest $ request , ?int $ allowedRetries = null ): PushPullJob
360+ public function amazonSearch (AmazonSearchRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
326361 {
327- return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_SEARCH , $ request ->toArray (), $ allowedRetries );
362+ return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_SEARCH , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
328363 }
329364
330365 /**
331366 * @throws RuntimeException
332367 */
333- public function amazonPricing (AmazonPricingRequest $ request , ?int $ allowedRetries = null ): PushPullJob
368+ public function amazonPricing (AmazonPricingRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
334369 {
335- return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_PRICING , $ request ->toArray (), $ allowedRetries );
370+ return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_PRICING , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
336371 }
337372
338373 /**
339374 * @throws RuntimeException
340375 */
341- public function amazonSellers (AmazonSellersRequest $ request , ?int $ allowedRetries = null ): PushPullJob
376+ public function amazonSellers (AmazonSellersRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
342377 {
343- return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_SELLERS , $ request ->toArray (), $ allowedRetries );
378+ return $ this ->makePostRequest (OxylabsApi::SOURCE_AMAZON_SELLERS , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
344379 }
345380
346381 /**
347382 * @throws RuntimeException
348383 */
349- public function googleSearch (GoogleSearchRequest $ request , ?int $ allowedRetries = null ): PushPullJob
384+ public function googleSearch (GoogleSearchRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
350385 {
351- return $ this ->makePostRequest (OxylabsApi::SOURCE_GOOGLE_SHOPPING_SEARCH , $ request ->toArray (), $ allowedRetries );
386+ return $ this ->makePostRequest (OxylabsApi::SOURCE_GOOGLE_SHOPPING_SEARCH , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
352387 }
353388
354389 /**
355390 * @throws RuntimeException
356391 */
357- public function universal (UniversalRequest $ request , ?int $ allowedRetries = null ): PushPullJob
392+ public function universal (UniversalRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
358393 {
359- return $ this ->makePostRequest ('universal ' , $ request ->toArray (), $ allowedRetries );
394+ return $ this ->makePostRequest ('universal ' , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
360395 }
361396
362397 /**
363398 * @throws RuntimeException
364399 */
365- public function googleShoppingProduct (GoogleShoppingProductRequest $ request , ?int $ allowedRetries = null ): PushPullJob
400+ public function googleShoppingProduct (GoogleShoppingProductRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
366401 {
367- return $ this ->makePostRequest (OxylabsApi::SOURCE_GOOGLE_SHOPPING_PRODUCT , $ request ->toArray (), $ allowedRetries );
402+ return $ this ->makePostRequest (OxylabsApi::SOURCE_GOOGLE_SHOPPING_PRODUCT , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
368403 }
369404
370405 /**
@@ -377,8 +412,9 @@ public function getGoogleShoppingProductResult(
377412 int $ status_check_limit = 5 ,
378413 int $ status_wait_seconds = 3 ,
379414 ?string $ type = 'parsed ' ,
415+ bool $ logResponseBody = true ,
380416 ): GoogleShoppingProductResponse {
381- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
417+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
382418
383419 return GoogleShoppingProductResponse::from ($ response );
384420 }
@@ -400,18 +436,19 @@ public function getGoogleShoppingPricingResult(
400436 int $ status_check_limit = 5 ,
401437 int $ status_wait_seconds = 3 ,
402438 ?string $ type = 'parsed ' ,
439+ bool $ logResponseBody = true ,
403440 ): GoogleShoppingPricingResponse {
404- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
441+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
405442
406443 return GoogleShoppingPricingResponse::from ($ response );
407444 }
408445
409446 /**
410447 * @throws RuntimeException
411448 */
412- public function walmartProduct (WalmartProductRequest $ request , ?int $ allowedRetries = null ): PushPullJob
449+ public function walmartProduct (WalmartProductRequest $ request , ?int $ allowedRetries = null , bool $ logResponseBody = true , ): PushPullJob
413450 {
414- return $ this ->makePostRequest (OxylabsApi::SOURCE_WALMART_PRODUCT , $ request ->toArray (), $ allowedRetries );
451+ return $ this ->makePostRequest (OxylabsApi::SOURCE_WALMART_PRODUCT , $ request ->toArray (), $ allowedRetries, $ logResponseBody );
415452 }
416453
417454 /**
@@ -424,8 +461,9 @@ public function getWalmartProductResult(
424461 int $ status_check_limit = 5 ,
425462 int $ status_wait_seconds = 3 ,
426463 ?string $ type = 'parsed ' ,
464+ bool $ logResponseBody = true ,
427465 ): WalmartProductResponse {
428- $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type );
466+ $ response = $ this ->getPushPullResults ($ job_id , $ check_status , $ status_check_limit , $ status_wait_seconds , $ type, $ logResponseBody );
429467
430468 return WalmartProductResponse::from ($ response );
431469 }
0 commit comments