From 1ff2c2f90a3e10c48ac5a72e0bffd6a4d9e0ccd1 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Tue, 16 Jun 2015 17:22:15 +0930 Subject: [PATCH] Add WillRespond event So that custom data can be loaded onto a model before it is serialized. (Tags extension uses this to load tags onto the forum model.) --- .../core/src/Api/Actions/SerializeAction.php | 3 +++ framework/core/src/Api/Events/WillRespond.php | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 framework/core/src/Api/Events/WillRespond.php diff --git a/framework/core/src/Api/Actions/SerializeAction.php b/framework/core/src/Api/Actions/SerializeAction.php index fe26a45fd..a1f28562c 100644 --- a/framework/core/src/Api/Actions/SerializeAction.php +++ b/framework/core/src/Api/Actions/SerializeAction.php @@ -3,6 +3,7 @@ use Flarum\Api\Request; use Flarum\Api\JsonApiRequest; use Flarum\Api\JsonApiResponse; +use Flarum\Api\Events\WillRespond; use Tobscure\JsonApi\SerializerInterface; use Tobscure\JsonApi\Criteria; use Illuminate\Http\Response; @@ -71,6 +72,8 @@ abstract class SerializeAction extends JsonApiAction $data = $this->data($request, $response = new JsonApiResponse); + event(new WillRespond($this, $data, $request, $response)); + $serializer = new static::$serializer($request->actor, $request->include, $request->link); $response->content->setData($this->serialize($serializer, $data)); diff --git a/framework/core/src/Api/Events/WillRespond.php b/framework/core/src/Api/Events/WillRespond.php new file mode 100644 index 000000000..6519c8d7b --- /dev/null +++ b/framework/core/src/Api/Events/WillRespond.php @@ -0,0 +1,20 @@ +action = $action; + $this->data = &$data; + $this->request = $request; + $this->response = $response; + } +}