. */ namespace OrangeHRM\Installer\Controller\Upgrader\Api; use OrangeHRM\Framework\Http\Request; use OrangeHRM\Framework\Http\Response; use OrangeHRM\Installer\Controller\AbstractInstallerRestController; use OrangeHRM\Installer\Util\AppSetupUtility; use OrangeHRM\Installer\Util\StateContainer; class CurrentVersionAPI extends AbstractInstallerRestController { /** * @inheritDoc */ protected function handleGet(Request $request): array { $currentVersion = StateContainer::getInstance()->getCurrentVersion(); if (!is_null($currentVersion)) { return [ 'version' => $currentVersion, 'fromDatabase' => false, ]; } if (!StateContainer::getInstance()->isSetDbInfo()) { $this->getResponse()->setStatusCode(Response::HTTP_CONFLICT); return [ 'error' => [ 'status' => $this->getResponse()->getStatusCode(), 'message' => 'Database info not yet stored' ] ]; } $appSetupUtility = new AppSetupUtility(); return [ 'version' => $appSetupUtility->getCurrentProductVersionFromDatabase(), 'fromDatabase' => true, ]; } /** * @inheritDoc */ protected function handlePost(Request $request): array { $currentVersion = $request->request->get('currentVersion'); StateContainer::getInstance()->setCurrentVersion($currentVersion); return [ 'version' => $currentVersion, ]; } }