Files
laralog/app/Blog/Services/MarketplaceClient.php
T

44 lines
969 B
PHP

<?php
namespace App\Blog\Services;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\File;
class MarketplaceClient
{
/**
* 拉取市场包列表。
*
* @return array<int, array<string, mixed>>
*/
public function items(): array
{
$url = config('market.url');
if (! $url) {
return [];
}
$response = Http::timeout(config('market.timeout', 15))
->withToken(config('market.token', ''))
->get(rtrim($url, '/').'/items');
$response->throw();
return $response->json('items', []);
}
public function download(string $url): string
{
$response = Http::timeout(60)->get($url);
$response->throw();
$tmp = storage_path('app/tmp/market-'.basename(parse_url($url, PHP_URL_PATH)));
File::ensureDirectoryExists(dirname($tmp));
File::put($tmp, $response->body());
return $tmp;
}
}