. */ namespace OrangeHRM\Installer\Controller\Installer\Api; use OrangeHRM\Framework\Http\Request; use OrangeHRM\Installer\Controller\AbstractInstallerRestController; use OrangeHRM\Installer\Util\AppSetupUtility; use OrangeHRM\Installer\Util\DataRegistrationUtility; use OrangeHRM\Installer\Util\Service\DataRegistrationService; use OrangeHRM\Installer\Util\StateContainer; class InstallerDataRegistrationAPI extends AbstractInstallerRestController { private AppSetupUtility $appSetupUtility; protected DataRegistrationService $dataRegistrationService; protected DataRegistrationUtility $dataRegistrationUtility; public function __construct() { $this->dataRegistrationService = new DataRegistrationService(); $this->dataRegistrationUtility = new DataRegistrationUtility(); $this->appSetupUtility = new AppSetupUtility(); } /** * @inheritDoc */ protected function handlePost(Request $request): array { $response = $this->getResponse(); if (!StateContainer::getInstance()->getRegConsent()) { return [ 'status' => $response->getStatusCode(), 'message' => 'Ignored', ]; } $instanceIdentifier = $this->appSetupUtility->getInstanceIdentifier(); StateContainer::getInstance()->storeInstanceIdentifierData($instanceIdentifier); $initialRegistrationDataBody = $this->dataRegistrationUtility->getInitialRegistrationDataBody( DataRegistrationUtility::REGISTRATION_TYPE_INSTALLER_STARTED, $instanceIdentifier ); $published = $this->dataRegistrationService->sendRegistrationData($initialRegistrationDataBody); StateContainer::getInstance()->storeInitialRegistrationData($initialRegistrationDataBody, $published); $message = $published ? 'Registration Data Sent Successfully!' : 'Failed To Send Registration Data'; return [ 'status' => $response->getStatusCode(), 'message' => $message ]; } }