From 947aa27e404fbf43c35e19b22740e5365cc168b3 Mon Sep 17 00:00:00 2001 From: James Brooks Date: Fri, 10 Jun 2016 17:27:21 +0100 Subject: [PATCH] Move dashboard version check into version api endpoint --- app/Http/Controllers/Api/GeneralController.php | 14 +++++++++++++- app/Http/Controllers/Dashboard/ApiController.php | 16 ---------------- app/Http/Routes/DashboardRoutes.php | 1 - app/Integrations/Releases.php | 8 ++++++-- resources/assets/js/app.js | 4 ++-- 5 files changed, 21 insertions(+), 22 deletions(-) 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'); } });