. */ namespace OrangeHRM\Installer\Controller\Upgrader\Api; use OrangeHRM\Framework\Http\Request; use OrangeHRM\Installer\Controller\AbstractInstallerRestController; use OrangeHRM\Installer\Util\AppSetupUtility; use OrangeHRM\Installer\Util\Logger; class MigrationAPI extends AbstractInstallerRestController { /** * @inheritDoc */ protected function handleGet(Request $request): array { $currentVersion = $request->query->get('currentVersion'); $includeFromVersion = $request->query->getBoolean('includeFromVersion', false); $appSetupUtility = new AppSetupUtility(); return $appSetupUtility->getVersionsInRange($currentVersion, null, $includeFromVersion); } /** * @inheritDoc */ protected function handlePost(Request $request): array { $appSetupUtility = new AppSetupUtility(); if ($request->request->has('version')) { $version = $request->request->get('version'); $result = ['version' => $version]; Logger::getLogger()->info(json_encode($result)); $appSetupUtility->runMigrationFor($version); return $result; } else { $fromVersion = $request->request->get('fromVersion'); $toVersion = $request->request->get('toVersion'); $result = [ 'fromVersion' => $fromVersion, 'toVersion' => $toVersion ]; Logger::getLogger()->info(json_encode($result)); $appSetupUtility->runMigrations($fromVersion, $toVersion); return $result; } } }