search_api_meilisearch-1.0.x-dev/src/Parser/BooleanValueParser.php

src/Parser/BooleanValueParser.php
<?php

namespace Drupal\search_api_meilisearch\Parser;

use Drupal\search_api\IndexInterface;
use Drupal\search_api\Query\ConditionInterface;

/**
 * Parses search api conditions with boolean value.
 */
class BooleanValueParser implements ConditionParserInterface {

  protected const TYPE_BOOLEAN = 'boolean';

  /**
   * The scalar value parser.
   *
   * @var \Drupal\search_api_meilisearch\Parser\ScalarValueParser
   */
  protected ScalarValueParser $scalarValueParser;

  public function __construct(ScalarValueParser $scalarValueParser) {
    $this->scalarValueParser = $scalarValueParser;
  }

  /**
   * {@inheritdoc}
   */
  public function parse(ConditionInterface $condition, IndexInterface $index): string {
    $condition = clone $condition;
    $condition->setValue($condition->getValue() ? 'true' : 'false');

    return $this->scalarValueParser->parse($condition, $index);
  }

  /**
   * {@inheritdoc}
   */
  public function supports(ConditionInterface $condition, IndexInterface $index): bool {
    if (!$this->scalarValueParser->supports($condition, $index)) {
      return FALSE;
    }

    $field = $index->getField($condition->getField());

    return $field && $field->getType() === self::TYPE_BOOLEAN;
  }

}

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

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