<?php
namespace App\Database\Domain\Validator;
use App\Database\Domain\Exception\ModelValidationException;
use Symfony\Component\Validator\Validator\ValidatorInterface;
class EntityValidator
{
private ValidatorInterface $validator;
public function __construct(ValidatorInterface $validator)
{
$this->validator = $validator;
}
public function validate($content): void
{
$errors = [];
if (is_iterable($content)) {
foreach ($content as $entity) {
$entityErrors = $this->validator->validate($entity);
if (count($entityErrors) > 0) {
$errors[] = $entityErrors;
}
}
} else {
$errors = $this->validator->validate($content);
}
if (count($errors) > 0) {
throw (new ModelValidationException('Model validation failed'))->setErrors($errors);
}
}
}