You are here

public function InstagramEmbedCodeConstraintValidator::validate in Media entity Instagram 8.2

Same name and namespace in other branches
  1. 8 src/Plugin/Validation/Constraint/InstagramEmbedCodeConstraintValidator.php \Drupal\media_entity_instagram\Plugin\Validation\Constraint\InstagramEmbedCodeConstraintValidator::validate()

File

src/Plugin/Validation/Constraint/InstagramEmbedCodeConstraintValidator.php, line 18

Class

InstagramEmbedCodeConstraintValidator
Validates the InstagramEmbedCode constraint.

Namespace

Drupal\media_entity_instagram\Plugin\Validation\Constraint

Code

public function validate($value, Constraint $constraint) {
  $data = '';
  if (is_string($value)) {
    $data = $value;
  }
  elseif ($value instanceof FieldItemInterface) {
    $class = get_class($value);
    $property = $class::mainPropertyName();
    if ($property) {
      $data = $value->{$property};
    }
  }
  if ($data) {
    $matches = [];
    foreach (Instagram::$validationRegexp as $pattern => $key) {
      if (preg_match($pattern, $data, $item_matches)) {
        $matches[] = $item_matches;
      }
    }
    if (empty($matches)) {
      $this->context
        ->addViolation($constraint->message);
    }
  }
}