Skip to content

Commit 96bf6c4

Browse files
authored
Merge pull request #4 from always-open/handle-nulls-bwt-results
Handle timeout error and nulls data
2 parents d36844b + 9636343 commit 96bf6c4

4 files changed

Lines changed: 22 additions & 12 deletions

File tree

config/bwt-api.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
return [
44
'base_url' => env('BWT_API_BASE_URL', 'https://bwt.com/api'),
55
'api_key' => env('BWT_API_KEY'),
6+
'timeout' => env('BWT_API_TIMEOUT', 120),
67
];

src/BwtApiClient.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@ class BwtApiClient
2020

2121
protected ?string $apiKey = null;
2222

23+
protected int $timeout = 60;
24+
2325
public function __construct(
2426
?string $baseUrl = null,
2527
?string $apiKey = null,
28+
?int $timeout = null,
2629
) {
2730
$this->baseUrl = $baseUrl ?? config('bwt-api.base_url', 'https://bwt.com/api');
2831
$this->apiKey = $apiKey ?? config('bwt-api.api_key') ?? '';
32+
$this->timeout = $timeout ?? config('bwt-api.timeout', 60);
2933
}
3034

3135
protected function getAuthHeader(): array
@@ -54,9 +58,11 @@ protected function makeRequest(
5458
return retry($retryCount ?? 0, function () use ($request, $method, $payload): PromiseInterface|Response {
5559
if (strtolower($method) === 'post') {
5660
return Http::withHeaders($request->getHeaders())
61+
->timeout($this->timeout)
5762
->post($request->getUri(), $payload);
5863
} else {
5964
return Http::withHeaders($request->getHeaders())
65+
->timeout($this->timeout)
6066
->get($request->getUri());
6167
}
6268
}, 2000);

src/BwtApiServiceProvider.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@ class BwtApiServiceProvider extends ServiceProvider
88
{
99
public function register()
1010
{
11+
$this->mergeConfigFrom(__DIR__.'/../config/bwt-api.php', 'bwt-api');
12+
1113
$this->app->singleton(BwtApiClient::class, function ($app) {
1214
return new BwtApiClient(
1315
config('bwt-api.base_url'),
1416
config('bwt-api.api_key'),
17+
config('bwt-api.timeout'),
1518
);
1619
});
1720
}

src/DTOs/Amazon/AmazonResult.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,20 @@ class AmazonResult extends Data
1313
public function __construct(
1414
public readonly int $id,
1515
public readonly int $scraping_mode,
16-
public readonly string $requested_asin,
16+
public readonly ?string $requested_asin,
1717
public readonly string|int|null $max_offers,
1818
public readonly string|int|null $max_offers_pages,
19-
public readonly string $postal_code,
20-
public readonly string $region,
21-
public readonly string $title,
22-
public readonly string $url,
23-
public readonly string $scraped_asin,
24-
public readonly string $description,
25-
public readonly array $additional_details,
26-
public readonly array $additional_information,
27-
public readonly array $additional_technical_details,
19+
public readonly ?string $postal_code,
20+
public readonly ?string $region,
21+
public readonly ?string $title,
22+
public readonly ?string $url,
23+
public readonly ?string $scraped_asin,
24+
public readonly ?string $description,
25+
public readonly ?array $additional_details,
26+
public readonly ?array $additional_information,
27+
public readonly ?array $additional_technical_details,
2828
public readonly ?string $manufacturer,
29-
public readonly array $best_sellers_rank,
29+
public readonly ?array $best_sellers_rank,
3030
public readonly ?array $category,
3131
public readonly string|int|null $variations,
3232
public readonly string|int|null $past_month_sales,
@@ -35,7 +35,7 @@ public function __construct(
3535
public readonly ?string $merchant_id,
3636
public readonly ?string $storefront_url,
3737
public readonly ?string $stock,
38-
public readonly string $condition,
38+
public readonly ?string $condition,
3939
public readonly string|int|float|null $price,
4040
public readonly string|int|float|null $sale_price,
4141
public readonly ?string $coupon,

0 commit comments

Comments
 (0)