rich-id/terms-module

View on GitHub
src/Infrastructure/Adapter/Validator.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

declare(strict_types=1);

namespace RichId\TermsModuleBundle\Infrastructure\Adapter;

use RichId\TermsModuleBundle\Domain\Exception\InvalidTermsEditionException;
use RichId\TermsModuleBundle\Domain\Model\TermsEdition;
use RichId\TermsModuleBundle\Domain\Port\ValidatorInterface;
use Symfony\Component\Validator\Validator\ValidatorInterface as SymfonyValidatorInterface;

class Validator implements ValidatorInterface
{
    /** @var SymfonyValidatorInterface */
    protected $validator;

    public function __construct(SymfonyValidatorInterface $validator)
    {
        $this->validator = $validator;
    }

    public function validateTermsEdition(TermsEdition $termsEdition): void
    {
        $violations = $this->validator->validate($termsEdition);

        if (\count($violations) === 0) {
            return;
        }

        throw new InvalidTermsEditionException($violations);
    }
}