cloud-8.x-2.0-beta1/modules/cloud_service_providers/k8s/src/Plugin/Validation/Constraint/YamlObjectSupportConstraintValidator.php

modules/cloud_service_providers/k8s/src/Plugin/Validation/Constraint/YamlObjectSupportConstraintValidator.php
<?php

namespace Drupal\k8s\Plugin\Validation\Constraint;

use Drupal\Component\Serialization\Yaml;
use Symfony\Component\Validator\Constraint;

/**
 * Validates the "kind" element.
 */
class YamlObjectSupportConstraintValidator extends YamlArrayDataConstraintValidator {

  /**
   * {@inheritdoc}
   */
  public function validate($items, Constraint $constraint) {

    foreach ($items as $item) {
      try {
        $yaml = Yaml::decode($item->value);
        $kind = $yaml['kind'];
        if (isset($kind)) {
          $templates = k8s_supported_cloud_server_templates();
          $object = array_search($kind, $templates);
          if ($object == FALSE) {
            $this->context->addViolation($constraint->unsupportedObjectType);
          }
        }
        else {
          $this->context->addViolation($constraint->noObjectFound);
        }
      }
      catch (\Exception $e) {
        $this->context->addViolation($constraint->invalidYaml . $e->getMessage());
        break;
      }
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc