1
0
mirror of synced 2024-12-01 00:56:03 +03:00
service-bundle/ArgumentResolver/AbstractValueResolver.php
2021-02-05 14:47:54 +03:00

44 lines
1006 B
PHP

<?php
namespace RetailCrm\ServiceBundle\ArgumentResolver;
use RetailCrm\ServiceBundle\Exceptions\InvalidRequestArgumentException;
use Symfony\Component\Validator\Validator\ValidatorInterface;
/**
* Class AbstractValueResolver
*
* @package RetailCrm\ServiceBundle\ArgumentResolver
*/
abstract class AbstractValueResolver
{
protected $validator;
/**
* AbstractValueResolver constructor.
*
* @param ValidatorInterface $validator
*/
public function __construct(ValidatorInterface $validator)
{
$this->validator = $validator;
}
/**
* @param object $data
*
* @return void
*/
protected function validate(object $data): void
{
$errors = $this->validator->validate($data);
if (0 !== count($errors)) {
throw new InvalidRequestArgumentException(
sprintf("Invalid request parameter %s", \get_class($data)),
400,
$errors
);
}
}
}