diff --git a/app/Events/UpdateFinished.php b/app/Events/UpdateFinished.php index 65949f76..ec7451a3 100644 --- a/app/Events/UpdateFinished.php +++ b/app/Events/UpdateFinished.php @@ -14,8 +14,6 @@ class UpdateFinished { use Dispatchable; - public $alias; - public $new; public $old; @@ -25,9 +23,8 @@ class UpdateFinished * * @return void */ - public function __construct($alias, $old, $new) + public function __construct($old, $new) { - $this->alias = $alias; $this->old = $old; $this->new = $new; } diff --git a/app/Http/Controllers/UpdateController.php b/app/Http/Controllers/UpdateController.php index db8a3a55..2b1049d9 100644 --- a/app/Http/Controllers/UpdateController.php +++ b/app/Http/Controllers/UpdateController.php @@ -4,6 +4,7 @@ namespace Laraspace\Http\Controllers; use Illuminate\Http\Request; use Laraspace\Space\Updater; +use Laraspace\Space\SiteApi; class UpdateController extends Controller { @@ -11,7 +12,16 @@ class UpdateController extends Controller { set_time_limit(600); // 10 minutes - $json = Updater::update($request->alias, $request->installed, $request->version); + $json = Updater::update($request->installed, $request->version); + + return response()->json($json); + } + + public function checkLatestVersion(Request $request) + { + set_time_limit(600); // 10 minutes + + $json = Updater::checkForUpdate(); return response()->json($json); } diff --git a/app/Listeners/Updates/Listener.php b/app/Listeners/Updates/Listener.php index 703ebce6..6dab62a8 100644 --- a/app/Listeners/Updates/Listener.php +++ b/app/Listeners/Updates/Listener.php @@ -4,8 +4,6 @@ namespace Laraspace\Listeners\Updates; class Listener { - const ALIAS = ''; - const VERSION = ''; /** @@ -16,11 +14,6 @@ class Listener */ protected function check($event) { - // Apply only to the specified alias - // if ($event->alias != static::ALIAS) { - // return false; - // } - // Do not apply to the same or newer versions // if (version_compare($event->old, static::VERSION, '>=')) { // return false; diff --git a/app/Listeners/Updates/V10/Version101.php b/app/Listeners/Updates/V10/Version101.php index 6ba1b9b1..03de4a34 100644 --- a/app/Listeners/Updates/V10/Version101.php +++ b/app/Listeners/Updates/V10/Version101.php @@ -11,8 +11,6 @@ use Laraspace\Setting; class Version101 extends Listener { - const ALIAS = 'core'; - const VERSION = '1.0.1'; /** diff --git a/app/Space/SiteApi.php b/app/Space/SiteApi.php index 35f5f6ab..2b04f178 100644 --- a/app/Space/SiteApi.php +++ b/app/Space/SiteApi.php @@ -11,7 +11,7 @@ trait SiteApi protected static function getRemote($url, $data = array()) { - $base = 'http://download-test.test/'; + $base = 'http://crater-main.test/'; $client = new Client(['verify' => false, 'base_uri' => $base]); diff --git a/app/Space/Updater.php b/app/Space/Updater.php index bd0dad3f..b5d8b369 100644 --- a/app/Space/Updater.php +++ b/app/Space/Updater.php @@ -7,17 +7,18 @@ use Artisan; use GuzzleHttp\Exception\RequestException; use Laraspace\Space\SiteApi; use Laraspace\Events\UpdateFinished; +use Laraspace\Setting; class Updater { use SiteApi; - public static function update($alias, $installed, $version) + public static function update($installed, $version) { $data = null; $path = null; - $url = '/api/download'; + $url = '/download/'.$version; $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]); @@ -68,7 +69,7 @@ class Updater // Delete zip file File::delete($file); - if (!File::copyDirectory($temp_path2, base_path())) { + if (!File::copyDirectory($temp_path2.'/crater', base_path())) { return false; } @@ -77,7 +78,7 @@ class Updater File::deleteDirectory($temp_path2); try { - event(new UpdateFinished($alias, $installed, $version)); + event(new UpdateFinished($installed, $version)); return [ 'success' => true, @@ -92,4 +93,18 @@ class Updater ]; } } + + public static function checkForUpdate() + { + $data = null; + $url = '/check/latest/download/'.Setting::getSetting('version'); + + $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]); + + if ($response && ($response->getStatusCode() == 200)) { + $data = $response->getBody()->getContents(); + } + + return json_decode($data); + } } diff --git a/routes/api.php b/routes/api.php index 2d1cc49b..2a7b8c0b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -129,6 +129,11 @@ Route::group(['middleware' => 'api'], function () { 'uses' => 'UpdateController@update' ]); + Route::get('/check/update', [ + 'as' => 'check.update', + 'uses' => 'UpdateController@checkLatestVersion' + ]); + Route::get('/bootstrap', [ 'as' => 'bootstrap', 'uses' => 'UsersController@getBootstrap'