koel/app/Services/ApplicationInformationService.php
2024-07-06 17:44:58 +02:00

26 lines
725 B
PHP

<?php
namespace App\Services;
use GuzzleHttp\Client;
use Illuminate\Contracts\Cache\Repository as Cache;
class ApplicationInformationService
{
public function __construct(private readonly Client $client, private readonly Cache $cache)
{
}
/**
* Get the latest version number of Koel from GitHub.
*/
public function getLatestVersionNumber(): string
{
return attempt(function () {
return $this->cache->remember('latestKoelVersion', now()->addDay(), function (): string {
return json_decode($this->client->get('https://api.github.com/repos/koel/koel/tags')->getBody())[0]
->name;
});
}) ?? koel_version();
}
}