class OEmbedProxyUrlController in Gutenberg 8.2
Same name and namespace in other branches
- 8 src/Controller/OEmbedProxyUrlController.php \Drupal\gutenberg\Controller\OEmbedProxyUrlController
Class OEmbedProxyUrlController.
@package Drupal\gutenberg\Controller
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\gutenberg\Controller\OEmbedProxyUrlController
Expanded class hierarchy of OEmbedProxyUrlController
File
- src/
Controller/ OEmbedProxyUrlController.php, line 20
Namespace
Drupal\gutenberg\ControllerView source
class OEmbedProxyUrlController extends ControllerBase {
/**
* The oembed resolver.
*
* @var \Drupal\gutenberg\OEmbedResolverInterface
*/
protected $oembedResolver;
/**
* OEmbedProxyUrlController constructor.
*
* @param \Drupal\gutenberg\OEmbedResolverInterface $oembed_resolver
* The oEmbed resolver.
*/
public function __construct(OEmbedResolverInterface $oembed_resolver) {
$this->oembedResolver = $oembed_resolver;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('gutenberg.oembed_resolver'));
}
/**
* Handle an oEmbed proxy request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The current request.
*
* @return \Drupal\Core\Cache\CacheableJsonResponse
* The JSON response.
*/
public function request(Request $request) {
$url = $request->query
->get('url');
$max_width = $request->query
->get('maxWidth', 800);
if (empty($url) || !UrlHelper::isValid($url, TRUE)) {
throw new BadRequestHttpException('Invalid URL was provided.');
}
/*
* TODO: up for discussion, but the proxy previews won't match the custom oEmbeds settings declared in the
* OEmbedProcessor settings. I think the settings should be moved into an API for consolidation.
*/
$oembed = $this->oembedResolver
->resolveOembed($url, $max_width);
if ($oembed) {
$cacheable_response = new CacheableJsonResponse([
'html' => $oembed,
]);
$metadata = new CacheableMetadata();
// Cache based on the current request uri (includes query strings).
$metadata
->addCacheContexts([
'url',
]);
// Cache the results for 15 minutes at a time.
$metadata
->setCacheMaxAge(15 * 60);
$cacheable_response
->addCacheableDependency($metadata);
return $cacheable_response;
}
throw new NotFoundHttpException(sprintf('The oEmbed URL (%s) could not be resolved.', $url));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
OEmbedProxyUrlController:: |
protected | property | The oembed resolver. | |
OEmbedProxyUrlController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
OEmbedProxyUrlController:: |
public | function | Handle an oEmbed proxy request. | |
OEmbedProxyUrlController:: |
public | function | OEmbedProxyUrlController constructor. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |