resq/src/Controller/CustomerAppAPI/AppController.php
2023-08-02 16:39:30 +08:00

53 lines
1.6 KiB
PHP

<?php
namespace App\Controller\CustomerAppAPI;
use Symfony\Component\HttpFoundation\Request;
use Catalyst\ApiBundle\Component\Response as ApiResponse;
class AppController extends ApiController
{
public function versionCheck(Request $req)
{
// validate params
$missing = $this->hasMissingParams($req, [
'version',
'os',
]);
if ($missing) {
return new ApiResponse(false, $missing);
}
$need_update = false;
$msg = 'Version is up to date.';
$os = $req->query->get('os');
// putting this in for the future, in case we have diverging versions
//$platform = $req->query->get('platform');
// get only the major version numbers
$app_version = $req->query->get('version');
$app_major = substr($app_version, 0, strripos($app_version, "."));
$latest_version = $this->getParameter($os . '_app_version');
$latest_major = substr($latest_version, 0, strripos($latest_version, "."));
if ($latest_major < $app_major) {
return new ApiResponse(false, 'Invalid application version: ' . $app_version);
}
if ($latest_major > $app_major) {
$need_update = true;
$msg = 'Your version is outdated and needs an update to use the latest features RES-Q has to offer.';
}
// response
return new ApiResponse(true, '', [
'need_update' => $need_update,
'latest_version' => $latest_version,
'message' => $msg,
]);
}
}