. */ namespace OrangeHRM\Installer\Controller\Upgrader\Api; use OrangeHRM\Framework\Http\Request; use OrangeHRM\Installer\Controller\AbstractInstallerRestController; use OrangeHRM\Installer\Util\DataRegistrationUtility; use OrangeHRM\Installer\Util\Service\DataRegistrationService; use OrangeHRM\Installer\Util\StateContainer; use OrangeHRM\Installer\Util\SystemConfig\SystemConfiguration; class UpgraderDataRegistrationAPI extends AbstractInstallerRestController { protected DataRegistrationService $dataRegistrationService; protected DataRegistrationUtility $dataRegistrationUtility; private SystemConfiguration $systemConfiguration; public function __construct() { $this->dataRegistrationService = new DataRegistrationService(); $this->dataRegistrationUtility = new DataRegistrationUtility(); $this->systemConfiguration = new SystemConfiguration(); } /** * @inheritDoc */ protected function handlePost(Request $request): array { $initialRegistrationDataBody = $this->dataRegistrationUtility->getInitialRegistrationDataBody( DataRegistrationUtility::REGISTRATION_TYPE_UPGRADER_STARTED ); $published = $this->dataRegistrationService->sendRegistrationData($initialRegistrationDataBody); $upgraderStartedEventStored = false; if ($this->systemConfiguration->isRegistrationEventQueueAvailable()) { $this->systemConfiguration->saveRegistrationEvent( DataRegistrationUtility::REGISTRATION_TYPE_UPGRADER_STARTED, $published, json_encode($initialRegistrationDataBody) ); $upgraderStartedEventStored = true; } StateContainer::getInstance()->storeInitialRegistrationData($initialRegistrationDataBody, $published, $upgraderStartedEventStored); $response = $this->getResponse(); $message = $published ? 'Registration Data Sent Successfully!' : 'Failed To Send Registration Data'; return [ 'status' => $response->getStatusCode(), 'message' => $message ]; } }