Civi\API\Event - Pass through the $apiKernel
authorTim Otten <totten@civicrm.org>
Sat, 28 Mar 2015 01:22:59 +0000 (18:22 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 14 Jul 2015 04:00:05 +0000 (21:00 -0700)
Civi/API/Event/Event.php
Civi/API/Event/ExceptionEvent.php
Civi/API/Event/ResolveEvent.php
Civi/API/Event/RespondEvent.php
Civi/API/Kernel.php

index 0110a00636e7afaba222b6c4b97d0dc1ccfd5895..2a0e1130114ce3d12bae53e4628d4f88ff013d67 100644 (file)
@@ -32,6 +32,12 @@ namespace Civi\API\Event;
  * @package Civi\API\Event
  */
 class Event extends \Symfony\Component\EventDispatcher\Event {
+
+  /**
+   * @var \Civi\API\Kernel
+   */
+  protected $apiKernel;
+
   /**
    * @var \Civi\API\Provider\ProviderInterface
    *   The API provider responsible for executing the request.
@@ -52,11 +58,19 @@ class Event extends \Symfony\Component\EventDispatcher\Event {
    * @param array $apiRequest
    *   The full description of the API request.
    */
-  public function __construct($apiProvider, $apiRequest) {
+  public function __construct($apiProvider, $apiRequest, $apiKernel) {
+    $this->apiKernel = $apiKernel;
     $this->apiProvider = $apiProvider;
     $this->apiRequest = $apiRequest;
   }
 
+  /**
+   * @return \Civi\API\Kernel
+   */
+  public function getApiKernel() {
+    return $this->apiKernel;
+  }
+
   /**
    * @return \Civi\API\Provider\ProviderInterface
    */
index e9f86b4ef41aad1681a1c90d2ab5b6920458ff90..b927f65eb6f39d446073bb3e6817773095f35b6a 100644 (file)
@@ -45,10 +45,12 @@ class ExceptionEvent extends Event {
    *   The API provider responsible for executing the request.
    * @param array $apiRequest
    *   The full description of the API request.
+   * @param \Civi\API\Kernel $apiKernel
+   *   The kernel which fired the event.
    */
-  public function __construct($exception, $apiProvider, $apiRequest) {
+  public function __construct($exception, $apiProvider, $apiRequest, $apiKernel) {
     $this->exception = $exception;
-    parent::__construct($apiProvider, $apiRequest);
+    parent::__construct($apiProvider, $apiRequest, $apiKernel);
   }
 
   /**
index 5368156bbc3c1b53aed7491eb755e64611fa5901..299db7b52581bdddecc9d87cd73bf13bd7ba6ea5 100644 (file)
@@ -35,9 +35,11 @@ class ResolveEvent extends Event {
   /**
    * @param array $apiRequest
    *   The full description of the API request.
+   * @param \Civi\API\Kernel $apiKernel
+   *   The kernel which fired the event.
    */
-  public function __construct($apiRequest) {
-    parent::__construct(NULL, $apiRequest);
+  public function __construct($apiRequest, $apiKernel) {
+    parent::__construct(NULL, $apiRequest, $apiKernel);
   }
 
   /**
index 19ffeb301a0493cba59f0783297829542371a9db..2e9dc9d4d3795de26ac5eabbaec807dd7a4b4f40 100644 (file)
@@ -44,10 +44,12 @@ class RespondEvent extends Event {
    *   The full description of the API request.
    * @param mixed $response
    *   The response to return to the client.
+   * @param \Civi\API\Kernel $apiKernel
+   *   The kernel which fired the event.
    */
-  public function __construct($apiProvider, $apiRequest, $response) {
+  public function __construct($apiProvider, $apiRequest, $response, $apiKernel) {
     $this->response = $response;
-    parent::__construct($apiProvider, $apiRequest);
+    parent::__construct($apiProvider, $apiRequest, $apiKernel);
   }
 
   /**
index c958f78e2a273d8de36aa4122ba1a1dffde30db1..9f224965fd22c6ae6bcdbbbf91108525e442aec3 100644 (file)
@@ -99,7 +99,7 @@ class Kernel {
       return $this->formatResult($apiRequest, $apiResponse);
     }
     catch (\Exception $e) {
-      $this->dispatcher->dispatch(Events::EXCEPTION, new ExceptionEvent($e, $apiProvider, $apiRequest));
+      $this->dispatcher->dispatch(Events::EXCEPTION, new ExceptionEvent($e, $apiProvider, $apiRequest, $this));
 
       if ($e instanceof \PEAR_Exception) {
         $err = $this->formatPearException($e, $apiRequest);
@@ -165,7 +165,7 @@ class Kernel {
    */
   public function resolve($apiRequest) {
     /** @var ResolveEvent $resolveEvent */
-    $resolveEvent = $this->dispatcher->dispatch(Events::RESOLVE, new ResolveEvent($apiRequest));
+    $resolveEvent = $this->dispatcher->dispatch(Events::RESOLVE, new ResolveEvent($apiRequest, $this));
     $apiRequest = $resolveEvent->getApiRequest();
     if (!$resolveEvent->getApiProvider()) {
       throw new \Civi\API\Exception\NotImplementedException("API (" . $apiRequest['entity'] . ", " . $apiRequest['action'] . ") does not exist (join the API team and implement it!)");
@@ -184,7 +184,7 @@ class Kernel {
    */
   public function authorize($apiProvider, $apiRequest) {
     /** @var AuthorizeEvent $event */
-    $event = $this->dispatcher->dispatch(Events::AUTHORIZE, new AuthorizeEvent($apiProvider, $apiRequest));
+    $event = $this->dispatcher->dispatch(Events::AUTHORIZE, new AuthorizeEvent($apiProvider, $apiRequest, $this));
     if (!$event->isAuthorized()) {
       throw new \Civi\API\Exception\UnauthorizedException("Authorization failed");
     }
@@ -201,7 +201,7 @@ class Kernel {
    */
   public function prepare($apiProvider, $apiRequest) {
     /** @var PrepareEvent $event */
-    $event = $this->dispatcher->dispatch(Events::PREPARE, new PrepareEvent($apiProvider, $apiRequest));
+    $event = $this->dispatcher->dispatch(Events::PREPARE, new PrepareEvent($apiProvider, $apiRequest, $this));
     return $event->getApiRequest();
   }
 
@@ -218,7 +218,7 @@ class Kernel {
    */
   public function respond($apiProvider, $apiRequest, $result) {
     /** @var RespondEvent $event */
-    $event = $this->dispatcher->dispatch(Events::RESPOND, new RespondEvent($apiProvider, $apiRequest, $result));
+    $event = $this->dispatcher->dispatch(Events::RESPOND, new RespondEvent($apiProvider, $apiRequest, $result, $this));
     return $event->getResponse();
   }