cloud-8.x-2.0-beta1/modules/cloud_service_providers/aws_cloud/src/Controller/Vpc/ApiController.php

modules/cloud_service_providers/aws_cloud/src/Controller/Vpc/ApiController.php
<?php

namespace Drupal\aws_cloud\Controller\Vpc;

use Drupal\aws_cloud\Service\Ec2\Ec2ServiceInterface;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Messenger\Messenger;
use Drupal\Core\Render\RendererInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\RequestStack;

/**
 * Controller responsible for "update" URLs.
 *
 * This class is mainly responsible for
 * updating the aws entities from URLs.
 */
class ApiController extends ControllerBase implements ApiControllerInterface {

  /**
   * The Ec2Service.
   *
   * @var \Drupal\aws_cloud\Service\Ec2\Ec2ServiceInterface
   */
  private $ec2Service;

  /**
   * The Messenger service.
   *
   * @var \Drupal\Core\Messenger\Messenger
   */
  protected $messenger;

  /**
   * Request stack.
   *
   * @var \Symfony\Component\HttpFoundation\RequestStack
   */
  private $requestStack;

  /**
   * Renderer service.
   *
   * @var \Drupal\Core\Render\RendererInterface
   */
  private $renderer;

  /**
   * ApiController constructor.
   *
   * @param \Drupal\aws_cloud\Service\Ec2\Ec2ServiceInterface $ec2_service
   *   Object for interfacing with AWS API.
   * @param \Drupal\Core\Messenger\Messenger $messenger
   *   Messenger Object.
   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
   *   Request stack object.
   * @param \Drupal\Core\Render\RendererInterface $renderer
   *   The renderer service.
   */
  public function __construct(
    Ec2ServiceInterface $ec2_service,
    Messenger $messenger,
    RequestStack $request_stack,
    RendererInterface $renderer
  ) {
    $this->ec2Service = $ec2_service;
    $this->messenger = $messenger;
    $this->requestStack = $request_stack;
    $this->renderer = $renderer;
  }

  /**
   * Dependency Injection.
   */
  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('aws_cloud.ec2'),
      $container->get('messenger'),
      $container->get('request_stack'),
      $container->get('renderer')
    );
  }

  /**
   * {@inheritdoc}
   */
  public function updateVpcList($cloud_context) {

    $this->ec2Service->setCloudContext($cloud_context);
    $updated = $this->ec2Service->updateVpcs();

    if ($updated !== FALSE) {
      $this->messenger->addMessage($this->t('Updated VPCs.'));
    }
    else {
      $this->messenger->addError($this->t('Unable to update VPCs.'));
    }

    return $this->redirect('view.aws_cloud_vpc.list', [
      'cloud_context' => $cloud_context,
    ]);
  }

  /**
   * {@inheritdoc}
   */
  public function updateSubnetList($cloud_context) {

    $this->ec2Service->setCloudContext($cloud_context);
    $updated = $this->ec2Service->updateSubnets();

    if ($updated !== FALSE) {
      $this->messenger->addMessage($this->t('Updated Subnets.'));
    }
    else {
      $this->messenger->addError($this->t('Unable to update Subnets.'));
    }

    return $this->redirect('view.aws_cloud_subnet.list', [
      'cloud_context' => $cloud_context,
    ]);
  }

}

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

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