mirror of
https://github.com/flarum/core.git
synced 2025-07-25 18:51:40 +02:00
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.)
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
use Flarum\Api\Request;
|
use Flarum\Api\Request;
|
||||||
use Flarum\Api\JsonApiRequest;
|
use Flarum\Api\JsonApiRequest;
|
||||||
use Flarum\Api\JsonApiResponse;
|
use Flarum\Api\JsonApiResponse;
|
||||||
|
use Flarum\Api\Events\WillRespond;
|
||||||
use Tobscure\JsonApi\SerializerInterface;
|
use Tobscure\JsonApi\SerializerInterface;
|
||||||
use Tobscure\JsonApi\Criteria;
|
use Tobscure\JsonApi\Criteria;
|
||||||
use Illuminate\Http\Response;
|
use Illuminate\Http\Response;
|
||||||
@@ -71,6 +72,8 @@ abstract class SerializeAction extends JsonApiAction
|
|||||||
|
|
||||||
$data = $this->data($request, $response = new JsonApiResponse);
|
$data = $this->data($request, $response = new JsonApiResponse);
|
||||||
|
|
||||||
|
event(new WillRespond($this, $data, $request, $response));
|
||||||
|
|
||||||
$serializer = new static::$serializer($request->actor, $request->include, $request->link);
|
$serializer = new static::$serializer($request->actor, $request->include, $request->link);
|
||||||
|
|
||||||
$response->content->setData($this->serialize($serializer, $data));
|
$response->content->setData($this->serialize($serializer, $data));
|
||||||
|
20
framework/core/src/Api/Events/WillRespond.php
Normal file
20
framework/core/src/Api/Events/WillRespond.php
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<?php namespace Flarum\Api\Events;
|
||||||
|
|
||||||
|
class WillRespond
|
||||||
|
{
|
||||||
|
public $action;
|
||||||
|
|
||||||
|
public $data;
|
||||||
|
|
||||||
|
public $request;
|
||||||
|
|
||||||
|
public $response;
|
||||||
|
|
||||||
|
public function __construct($action, &$data, $request, $response)
|
||||||
|
{
|
||||||
|
$this->action = $action;
|
||||||
|
$this->data = &$data;
|
||||||
|
$this->request = $request;
|
||||||
|
$this->response = $response;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user