docusign_signature-1.0.x-dev/modules/examples/src/Controller/CustomReturn.php

modules/examples/src/Controller/CustomReturn.php
<?php

declare(strict_types=1);

namespace Drupal\docusign_signature_examples\Controller;

use Drupal\Core\Controller\ControllerBase;
use Drupal\docusign_signature\EventEnvelopeInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;

/**
 * Manage DocuSign return callback.
 *
 * @package Drupal\docusign_signature_examples\Controller
 */
class CustomReturn extends ControllerBase {

  /**
   * Current request.
   *
   * @var \Symfony\Component\HttpFoundation\Request
   */
  private Request $request;

  /**
   * Constructs a new callback controller object.
   *
   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
   *   The request stack.
   */
  public function __construct(RequestStack $request_stack) {
    $this->request = $request_stack->getCurrentRequest();
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('request_stack')
    );
  }

  /**
   * Return example page.
   *
   * @return array
   *   The redirect response.
   */
  public function page(): array {
    // Query parameter returned by DocuSign.
    $event = $this->request->query->get('event');

    switch ($event) {
      case EventEnvelopeInterface::CANCEL:
        $value = $this->t('Canceled');
        break;

      case EventEnvelopeInterface::DECLINE:
        $value = $this->t('Declined');
        break;

      case EventEnvelopeInterface::SIGNING_COMPLETE:
        $value = $this->t('Signing completed');
        break;

      case EventEnvelopeInterface::VIEWING_COMPLETE:
        $value = $this->t('Viewing complete');
        break;

      default:
        $value = $this->t('Not managed');
        break;
    }

    return [
      '#markup' => $this->t(
        'Event: @event. This event parameter is supplied by DocuSign.
 Since it could have been spoofed, don\'t make business decisions based on
 its value. Instead, query DocuSign as appropriate.',
        [
          '@event' => $value,
        ]
      ),
    ];
  }

}

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

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