You are here

public function WebformSubmission::getTokenUrl in Webform 8.5

Same name and namespace in other branches
  1. 6.x src/Entity/WebformSubmission.php \Drupal\webform\Entity\WebformSubmission::getTokenUrl()

Gets the webform submission's secure tokenized URL.

Parameters

string $operation: Token URL's operation. Defaults to update.

Return value

\Drupal\Core\Url The webform submission's secure tokenized URL.

Overrides WebformSubmissionInterface::getTokenUrl

File

src/Entity/WebformSubmission.php, line 562

Class

WebformSubmission
Defines the WebformSubmission entity.

Namespace

Drupal\webform\Entity

Code

public function getTokenUrl($operation = 'update') {
  switch ($operation) {
    case 'view':

      /** @var \Drupal\webform\WebformRequestInterface $request_handler */
      $request_handler = \Drupal::service('webform.request');
      $url = $request_handler
        ->getUrl($this, $this
        ->getSourceEntity(), 'webform.user.submission');
      break;
    case 'update':
      $url = $this
        ->getSourceUrl();
      break;
    case 'delete':

      /** @var \Drupal\webform\WebformRequestInterface $request_handler */
      $request_handler = \Drupal::service('webform.request');
      $url = $request_handler
        ->getUrl($this, $this
        ->getSourceEntity(), 'webform.user.submission.delete');
      break;
    default:
      throw new \Exception("Token URL operation {$operation} is not supported");
  }
  $options = $url
    ->setAbsolute()
    ->getOptions();
  $options['query']['token'] = $this
    ->getToken();
  return $url
    ->setOptions($options);
}