activitypub-1.0.x-dev/src/ParamConverter/ActivityPubActorConverter.php

src/ParamConverter/ActivityPubActorConverter.php
<?php

namespace Drupal\activitypub\ParamConverter;

use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException;
use Drupal\Component\Plugin\Exception\PluginNotFoundException;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\ParamConverter\ParamConverterInterface;
use Symfony\Component\Routing\Route;

class ActivityPubActorConverter implements ParamConverterInterface {

  /**
   * The ActivityPub Actor storage.
   *
   * @var \Drupal\activitypub\Entity\Storage\ActivityPubActorStorageInterface
   */
  protected $actorStorage;

  /**
   * ActivityPubActorConverter constructor
   *
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   */
  public function __construct(EntityTypeManagerInterface $entity_type_manager) {
    try {
      $this->actorStorage = $entity_type_manager->getStorage('activitypub_actor');
    }
    catch (InvalidPluginDefinitionException $ignored) {}
    catch (PluginNotFoundException $ignored) {}
  }

  /**
   * {@inheritdoc}
   */
  public function convert($value, $definition, $name, array $defaults) {
    if ($this->actorStorage) {
      return $this->actorStorage->loadActorByName($value);
    }

    return NULL;
  }

  /**
   * {@inheritdoc}
   */
  public function applies($definition, $name, Route $route) {
    if (!empty($definition['type']) && $definition['type'] == 'activitypub_actor') {
      return TRUE;
    }
    return FALSE;
  }


}

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

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