mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-17 17:55:42 +00:00
feat: add DTO for EPP client
This commit is contained in:
parent
81147d2069
commit
42cbf5e416
17
src/Dto/Connector/EppClientProviderAuthDto.php
Normal file
17
src/Dto/Connector/EppClientProviderAuthDto.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto\Connector;
|
||||
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class EppClientProviderAuthDto
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
public string $username;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $password;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public EppClientProviderAuthSSLDto $ssl;
|
||||
}
|
||||
20
src/Dto/Connector/EppClientProviderAuthSSLDto.php
Normal file
20
src/Dto/Connector/EppClientProviderAuthSSLDto.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto\Connector;
|
||||
|
||||
final class EppClientProviderAuthSSLDto
|
||||
{
|
||||
public ?string $peer_name = null;
|
||||
|
||||
public ?bool $verify_peer = null;
|
||||
|
||||
public ?bool $verify_peer_name = null;
|
||||
|
||||
public ?bool $allow_self_signed = null;
|
||||
|
||||
public ?int $verify_depth = null;
|
||||
|
||||
public ?string $passphrase = null;
|
||||
|
||||
public ?bool $disable_compression = null;
|
||||
}
|
||||
23
src/Dto/Connector/EppClientProviderDomainDto.php
Normal file
23
src/Dto/Connector/EppClientProviderDomainDto.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto\Connector;
|
||||
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class EppClientProviderDomainDto
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
public int $period;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $unit;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $registrant;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $password;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public array $contacts;
|
||||
}
|
||||
40
src/Dto/Connector/EppClientProviderDto.php
Normal file
40
src/Dto/Connector/EppClientProviderDto.php
Normal file
@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto\Connector;
|
||||
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class EppClientProviderDto extends DefaultProviderDto
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
public string $version;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $language;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $hostname;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public int $port;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public EppClientProviderAuthDto $auth;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public EppClientProviderDomainDto $domain;
|
||||
|
||||
public array $xPathURI = [];
|
||||
|
||||
public array $extURI = [];
|
||||
|
||||
public array $objURI = [];
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $certificate_pem;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $certificate_key;
|
||||
|
||||
public ?EppClientProviderFilesDto $files;
|
||||
}
|
||||
14
src/Dto/Connector/EppClientProviderFilesDto.php
Normal file
14
src/Dto/Connector/EppClientProviderFilesDto.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Dto\Connector;
|
||||
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
|
||||
final class EppClientProviderFilesDto
|
||||
{
|
||||
#[Assert\NotBlank]
|
||||
public string $pem;
|
||||
|
||||
#[Assert\NotBlank]
|
||||
public string $key;
|
||||
}
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Service\Connector;
|
||||
|
||||
use App\Dto\Connector\EppClientProviderDto;
|
||||
use App\Entity\Domain;
|
||||
use Metaregistrar\EPP\eppCheckDomainRequest;
|
||||
use Metaregistrar\EPP\eppCheckDomainResponse;
|
||||
@ -14,26 +15,23 @@ use Metaregistrar\EPP\eppHelloRequest;
|
||||
use Psr\Cache\CacheItemInterface;
|
||||
use Psr\Cache\CacheItemPoolInterface;
|
||||
use Psr\Cache\InvalidArgumentException;
|
||||
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
|
||||
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
|
||||
use Symfony\Component\Validator\Validator\ValidatorInterface;
|
||||
|
||||
class EppClientProvider extends AbstractProvider implements CheckDomainProviderInterface
|
||||
{
|
||||
public const EPP_CERTIFICATES_PATH = '../var/epp-certificates/';
|
||||
|
||||
protected string $dtoClass = EppClientProviderDto::class;
|
||||
private eppConnection $eppClient;
|
||||
|
||||
public function __construct(
|
||||
CacheItemPoolInterface $cacheItemPool,
|
||||
DenormalizerInterface&NormalizerInterface $serializer,
|
||||
ValidatorInterface $validator,
|
||||
) {
|
||||
parent::__construct($cacheItemPool);
|
||||
}
|
||||
|
||||
protected function verifySpecificAuthData(array $authData): array
|
||||
{
|
||||
// TODO: Create DTO for each authData schema
|
||||
unset($authData['certificate_pem']);
|
||||
unset($authData['certificate_key']);
|
||||
|
||||
return $authData;
|
||||
parent::__construct($cacheItemPool, $serializer, $validator);
|
||||
}
|
||||
|
||||
protected function assertAuthentication(): void
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user