diff --git a/app/Http/Controllers/Api/GeneralController.php b/app/Http/Controllers/Api/GeneralController.php index fc89b409..2fd7331e 100644 --- a/app/Http/Controllers/Api/GeneralController.php +++ b/app/Http/Controllers/Api/GeneralController.php @@ -11,6 +11,13 @@ namespace CachetHQ\Cachet\Http\Controllers\Api; +use CachetHQ\Cachet\Integrations\Releases; + +/** + * This is the general api controller. + * + * @author James Brooks + */ class GeneralController extends AbstractApiController { /** @@ -30,6 +37,11 @@ class GeneralController extends AbstractApiController */ public function version() { - return $this->item(CACHET_VERSION); + $latest = app(Releases::class)->latest(); + + return $this->setMetaData([ + 'on_latest' => version_compare(CACHET_VERSION, $latest['tag_name']) === 1, + 'latest' => $latest, + ])->item(CACHET_VERSION); } } diff --git a/app/Http/Controllers/Dashboard/ApiController.php b/app/Http/Controllers/Dashboard/ApiController.php index 8cea8f8a..16ac2610 100644 --- a/app/Http/Controllers/Dashboard/ApiController.php +++ b/app/Http/Controllers/Dashboard/ApiController.php @@ -91,20 +91,4 @@ class ApiController extends Controller throw new ModelNotFoundException("Incident template for $templateSlug could not be found."); } - - /** - * Checks if Cachet is up to date. - * - * @return \Illuminate\Http\JsonResponse - */ - public function checkVersion() - { - $latest = app(Releases::class)->latest(); - - return Response::json([ - 'cachet_version' => CACHET_VERSION, - 'latest_version' => $latest, - 'is_latest' => version_compare(CACHET_VERSION, $latest) === 1, - ]); - } } diff --git a/app/Http/Routes/DashboardRoutes.php b/app/Http/Routes/DashboardRoutes.php index 293d27cc..e091e37a 100644 --- a/app/Http/Routes/DashboardRoutes.php +++ b/app/Http/Routes/DashboardRoutes.php @@ -232,7 +232,6 @@ class DashboardRoutes $router->post('components/groups/order', 'ApiController@postUpdateComponentGroupOrder'); $router->post('components/order', 'ApiController@postUpdateComponentOrder'); $router->post('components/{component}', 'ApiController@postUpdateComponent'); - $router->get('system/version', 'ApiController@checkVersion'); }); }); } diff --git a/app/Integrations/Releases.php b/app/Integrations/Releases.php index 65cb67b7..bbb3bf9d 100644 --- a/app/Integrations/Releases.php +++ b/app/Integrations/Releases.php @@ -74,7 +74,7 @@ class Releases */ public function latest() { - $release = $this->cache->remember('version', 720, function () { + $release = $this->cache->remember('release.latest', 720, function () { $headers = ['Accept' => 'application/vnd.github.v3+json', 'User-Agent' => defined('CACHET_VERSION') ? 'cachet/'.constant('CACHET_VERSION') : 'cachet']; if ($this->token) { @@ -86,6 +86,10 @@ class Releases ])->getBody(), true); }); - return $release['tag_name']; + return [ + 'tag_name' => $release['tag_name'], + 'prelease' => $release['prerelease'], + 'draft' => $release['draft'], + ]; } } diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index c82a55c2..bc890c5a 100755 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -370,9 +370,9 @@ $(function() { $.ajax({ async: true, dataType: 'json', - url: '/dashboard/api/system/version', + url: '/api/v1/version', }).done(function (result) { - if (result.is_latest == false) { + if (result.meta.on_latest === false) { $('#update-alert').removeClass('hidden'); } });