acquia_perz-4.0.0-rc1/src/EventSubscriber/AcquiaSubscriptionData/AcquiaPerzData.php

src/EventSubscriber/AcquiaSubscriptionData/AcquiaPerzData.php
<?php

namespace Drupal\acquia_perz\EventSubscriber\AcquiaSubscriptionData;

use Drupal\acquia_connector\AcquiaConnectorEvents;
use Drupal\acquia_connector\Event\AcquiaSubscriptionDataEvent;
use Drupal\acquia_perz\EventSubscriber\PerzProductSettings;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;

/**
 * Add metadata from Acquia Perz to Acquia Connector's subscription.
 */
class AcquiaPerzData implements EventSubscriberInterface {

  /**
   * Representation of the current HTTP request.
   *
   * @var \Symfony\Component\HttpFoundation\RequestStack
   */
  protected $requestStack;

  /**
   * Acquia Perz Subscription Data Constructor.
   *
   * @param \Symfony\Component\HttpFoundation\RequestStack $requestStack
   *   Request Stack Service.
   */
  public function __construct(RequestStack $requestStack) {
    $this->requestStack = $requestStack;
  }

  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents(): array {
    // phpcs:ignore
    $events[AcquiaConnectorEvents::GET_SUBSCRIPTION][] = ['onGetSubscriptionData', 100];
    return $events;
  }

  /**
   * Gets a prebuilt Settings object from Drupal's settings file.
   *
   * @param \Drupal\acquia_connector\Event\AcquiaSubscriptionDataEvent $event
   *   The dispatched event.
   *
   * @see \Drupal\acquia_connector\Settings
   */
  public function onGetSubscriptionData(AcquiaSubscriptionDataEvent $event): void {
    $config = $event->getConfig('acquia_connector.settings');
    $config_data = $config->get('third_party_settings.' . PerzProductSettings::$productMachineName);
    if ($config_data === NULL) {
      return;
    }
    $subscription_data = $event->getData();

    // Set default endpoint.
    if (empty($config_data['endpoint'])) {
      $config_data['endpoint'] = 'https://us.perz-api.cloudservices.acquia.io';
    }

    $subscription_data[PerzProductSettings::$productMachineName] = $config_data;

    // Add Acquia Perz module version to subscription data.
    $event->setData($subscription_data);
  }

}

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

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