. */ namespace OrangeHRM\Installer\Controller\Upgrader\Api; use OrangeHRM\Authentication\Dto\UserCredential; use OrangeHRM\Framework\Http\Request; use OrangeHRM\Framework\Http\Response; use OrangeHRM\Installer\Controller\AbstractInstallerRestController; use OrangeHRM\Installer\Exception\SystemCheckException; use OrangeHRM\Installer\Util\StateContainer; use OrangeHRM\Installer\Util\UpgraderConfigUtility; class DatabaseConfigAPI extends AbstractInstallerRestController { /** * @inheritDoc */ protected function handlePost(Request $request): array { $dbHost = $request->request->get('dbHost'); $dbPort = $request->request->get('dbPort'); $dbUser = $request->request->get('dbUser'); $dbPassword = $request->request->get('dbPassword'); $dbName = $request->request->get('dbName'); StateContainer::getInstance()->storeDbInfo($dbHost, $dbPort, new UserCredential($dbUser, $dbPassword), $dbName); $response = $this->getResponse(); $upgraderConfigUtility = new UpgraderConfigUtility(); try { $upgraderConfigUtility->checkDatabaseConnection(); } catch (SystemCheckException $e) { $response->setStatusCode(Response::HTTP_BAD_REQUEST); return [ 'error' => [ 'status' => $response->getStatusCode(), 'message' => $e->getMessage(), ] ]; } return [ 'data' => [ 'dbHost' => $dbHost, 'dbPort' => $dbPort, 'dbUser' => $dbUser, 'dbName' => $dbName, ], 'meta' => [] ]; } /** * @inheritDoc */ protected function handleGet(Request $request): array { $dbInfo = StateContainer::getInstance()->getDbInfo(); return [ 'data' => [ 'dbHost' => $dbInfo[StateContainer::DB_HOST], 'dbPort' => $dbInfo[StateContainer::DB_PORT], 'dbName' => $dbInfo[StateContainer::DB_NAME], 'dbUser' => $dbInfo[StateContainer::DB_USER], ], 'meta' => [] ]; } }