class JsonRpcOptionsRequestSubscriber in JSON-RPC 2.x
Handles options requests.
Hierarchy
- class \Drupal\jsonrpc\Routing\JsonRpcOptionsRequestSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of JsonRpcOptionsRequestSubscriber
1 string reference to 'JsonRpcOptionsRequestSubscriber'
1 service uses JsonRpcOptionsRequestSubscriber
File
- src/
Routing/ JsonRpcOptionsRequestSubscriber.php, line 13
Namespace
Drupal\jsonrpc\RoutingView source
class JsonRpcOptionsRequestSubscriber implements EventSubscriberInterface {
/**
* The route provider.
*
* @var \Drupal\Core\Routing\RouteProviderInterface
*/
protected $routeProvider;
/**
* The decorated service.
*
* @var \Drupal\Core\EventSubscriber\OptionsRequestSubscriber
*/
protected $subject;
/**
* Creates a new OptionsRequestSubscriber instance.
*
* @param \Drupal\Core\Routing\RouteProviderInterface $route_provider
* The route provider.
* @param \Drupal\Core\EventSubscriber\OptionsRequestSubscriber $subject
* The decorated service.
*/
public function __construct(RouteProviderInterface $route_provider, OptionsRequestSubscriber $subject) {
$this->routeProvider = $route_provider;
$this->subject = $subject;
}
/**
* Tries to handle the options request.
*
* @param \Symfony\Component\HttpKernel\Event\KernelEvent $event
* The request event.
*/
public function onRequest(KernelEvent $event) {
$request = $event
->getRequest();
if (!$request
->isMethod('OPTIONS') || $request->headers
->get('access-control-request-method') === 'POST') {
return;
}
$routes = $this->routeProvider
->getRouteCollectionForRequest($request);
// If all routes are for JSON-RPC let the module handle them.
$all_jsonrpc = array_reduce(array_keys($routes
->all()), function (bool $carry, string $route_name) {
return $carry && $route_name === 'jsonrpc.handler';
}, TRUE);
if (!$all_jsonrpc) {
$this->subject
->onRequest($event);
}
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
return OptionsRequestSubscriber::getSubscribedEvents();
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
JsonRpcOptionsRequestSubscriber:: |
protected | property | The route provider. | |
JsonRpcOptionsRequestSubscriber:: |
protected | property | The decorated service. | |
JsonRpcOptionsRequestSubscriber:: |
public static | function | ||
JsonRpcOptionsRequestSubscriber:: |
public | function | Tries to handle the options request. | |
JsonRpcOptionsRequestSubscriber:: |
public | function | Creates a new OptionsRequestSubscriber instance. |