Viewing File: /usr/local/cpanel/whostmgr/docroot/cgi/ncssl/source/src/Service/Certificate/Activate.php
<?php
namespace App\Service\Certificate;
use App\Exception\ActivateException;
use App\Service\NcGatewayApi\Exceptions\NcGatewayApiException;
use App\Service\NcPlugin\PluginException;
use App\Entity\Certificate as CertificateEntity;
use Exception;
class Activate extends AbstractActivate
{
/**
* @throws ActivateException
*/
public function activate(CertificateTransfer $data, $isAsyncExternalCall): void
{
$this->logger->notice(sprintf(self::MESSAGE_START_ACTIVATION, $data->getCertificateId()));
$this->makeAction($data, $isAsyncExternalCall);
}
/**
* @param CertificateTransfer $certificateTransfer
*
* @return void
*
* @throws PluginException|\JsonException
*/
public function saveValidationData(CertificateTransfer $certificateTransfer): void
{
$this->logger->notice(sprintf(self::START_ASYNC_ACTIVATION_MESSAGE, $certificateTransfer->getCertificateId()));
$certificate = $this->entityManager->getRepository(CertificateEntity::class)->findOneBy([
'ncId' => $certificateTransfer->getCertificateId()
]);
if (!$certificate) {
throw new PluginException(sprintf('Not found certificate for saveValidationData ncId: %s', $certificateTransfer->getCertificateId()));
}
$certificateTransfer->setDomainName($certificate->getHost());
try {
$certificate->setValidationData($this->prepareValidationData($certificateTransfer));
$this->saveHttpDcvFile($certificateTransfer);
$this->entityManager->flush();
} catch (Exception $exception) {
throw new PluginException('Can\'t save certificate validation data', $exception->getCode());
}
}
/**
* @param CertificateTransfer $certificateTransfer
* @param string $csr
* @param bool $isAsyncExternalCall
*
* @return void
*
* @throws Exception
* @throws NcGatewayApiException
*/
protected function makeExternalCall(CertificateTransfer $certificateTransfer, string $csr, bool $isAsyncExternalCall): void
{
$result = $this->ncGatewayApi->activate($certificateTransfer, $csr, $isAsyncExternalCall);
if (!empty($result['fileName']) && !empty($result['fileContent'])) {
$certificateTransfer->setFileName($result['fileName']);
$certificateTransfer->setFileContent($result['fileContent']);
}
$certificateTransfer->setNCStatus(CertificateEntity::NCSTATUS_ORDERCREATED);
}
}
Back to Directory
File Manager