phpldapadmin/app/Http/Middleware/CheckUpdate.php

61 lines
1.4 KiB
PHP
Raw Permalink Normal View History

<?php
namespace App\Http\Middleware;
use Closure;
2023-03-03 05:07:11 +00:00
use GuzzleHttp\Client;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Log;
class CheckUpdate
{
2023-03-03 05:07:11 +00:00
private const UPDATE_SERVER = 'https://version.phpldapadmin.org';
private const UPDATE_TIME = 60*60*6;
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
2023-03-03 05:07:11 +00:00
\Config::set('update_available',Cache::get('upstream_version'));
return $next($request);
}
/**
* Handle tasks after the response has been sent to the browser.
*
* @return void
*/
2023-03-03 05:07:11 +00:00
public function terminate()
{
2023-03-03 05:07:11 +00:00
Cache::remember('upstream_version',self::UPDATE_TIME,function() {
// CURL call to URL to see if there is a new version
2023-03-03 05:07:11 +00:00
Log::debug(sprintf('CU_:Checking for updates for [%s]',config('app.version')));
$client = new Client;
try {
2023-03-03 05:07:11 +00:00
$response = $client->request('POST',sprintf('%s/%s',self::UPDATE_SERVER,strtolower(config('app.version'))));
2023-03-03 05:07:11 +00:00
if ($response->getStatusCode() === 200) {
$result = json_decode($response->getBody());
2023-03-03 05:07:11 +00:00
Log::debug(sprintf('CU_:- Update server returned...'),['update'=>$result]);
return $result;
}
} catch (\Exception $e) {
Log::debug(sprintf('CU_:- Exception connecting to update server'),['e'=>get_class($e)]);
2023-03-03 05:07:11 +00:00
}
2023-03-03 05:07:11 +00:00
return NULL;
});
}
}