commerce_xero-8.x-1.x-dev/src/SimpleCommerceXeroStrategyResolver.php

src/SimpleCommerceXeroStrategyResolver.php
<?php

namespace Drupal\commerce_xero;

use Drupal\commerce_payment\Entity\PaymentInterface;
use Drupal\commerce_xero\Entity\CommerceXeroStrategyInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;

/**
 * Basic commerce xero strategy resolution.
 */
class SimpleCommerceXeroStrategyResolver implements CommerceXeroStrategyResolverInterface {

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected $entityTypeManager;

  /**
   * Initialize method.
   *
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
   *   The entity_type.manager sevice.
   */
  public function __construct(EntityTypeManagerInterface $entityTypeManager) {
    $this->entityTypeManager = $entityTypeManager;
  }

  /**
   * {@inheritdoc}
   */
  public function resolve(PaymentInterface $payment): ?CommerceXeroStrategyInterface {
    /** @var \Drupal\commerce_xero\Entity\CommerceXeroStrategyInterface[] $strategies */
    $strategies = $this->entityTypeManager
      ->getStorage('commerce_xero_strategy')
      ->loadByProperties([
        'payment_gateway' => $payment->getPaymentGatewayId(),
      ]);
    return $strategies ? reset($strategies) : NULL;
  }

}

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

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