refactor: rename class
This commit is contained in:
parent
d19fcbdede
commit
a294d94449
2 changed files with 4 additions and 13 deletions
31
src/Action/ValidateConfigurationData.php
Normal file
31
src/Action/ValidateConfigurationData.php
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Action;
|
||||
|
||||
use App\DataTransferObject\Config;
|
||||
use Symfony\Component\Serializer\Encoder\JsonEncoder;
|
||||
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
|
||||
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
|
||||
use Symfony\Component\Serializer\Serializer;
|
||||
use Symfony\Component\Validator\Validation;
|
||||
|
||||
final class ValidateConfigurationData
|
||||
{
|
||||
public function handle(array $configurationData, \Closure $next) {
|
||||
// Convert the input to a configuration data object.
|
||||
$normalizer = new ObjectNormalizer(null, new CamelCaseToSnakeCaseNameConverter());
|
||||
$serializer = new Serializer([$normalizer], [new JsonEncoder()]);
|
||||
$configurationDataObject = $serializer->deserialize(json_encode($configurationData), Config::class, 'json');
|
||||
|
||||
$validator = Validation::createValidatorBuilder()->enableAnnotationMapping()->getValidator();
|
||||
$violations = $validator->validate($configurationDataObject);
|
||||
|
||||
if (0 < $violations->count()) {
|
||||
throw new \RuntimeException('Configuration is invalid.');
|
||||
}
|
||||
|
||||
return $next($configurationData);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue