open-orchestra/open-orchestra-media-admin-bundle

View on GitHub
MediaAdmin/Validator/Constraints/MediaTypeValidator.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace OpenOrchestra\MediaAdmin\Validator\Constraints;

use OpenOrchestra\Media\Repository\MediaRepositoryInterface;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;

/**
 * Class MediaTypeValidator
 */
class MediaTypeValidator extends ConstraintValidator
{
    protected $mediaRepository;

    /**
     * @param MediaRepositoryInterface $mediaRepository
     */
    public function __construct(MediaRepositoryInterface $mediaRepository)
    {
        $this->mediaRepository = $mediaRepository;
    }

    /**
     * @param string     $value
     * @param Constraint $constraint
     */
    public function validate($value, Constraint $constraint)
    {
        if ($value !== null && false === $this->mediaRepository->isMediaTypeOf($value, $constraint->filter)) {
            $this->context->buildViolation($constraint->message, array("%type%" => $constraint->filter))
                ->addViolation();
        }
    }
}