Commit 11d365ea authored by endi's avatar endi

Add Fractal decorator

parent ef4f5312
<?php namespace Terranet\Restable; <?php namespace Terranet\Restable;
use Fractal;
use Illuminate\Contracts\Routing\ResponseFactory; use Illuminate\Contracts\Routing\ResponseFactory;
use Illuminate\Support\MessageBag; use Illuminate\Support\MessageBag;
use Illuminate\Contracts\Support\MessageProvider AS MessageProviderInterface; use Illuminate\Contracts\Support\MessageProvider AS MessageProviderInterface;
use Illuminate\Support\Facades\Response as LaravelResponse; use Illuminate\Support\Facades\Response as LaravelResponse;
use League\Fractal\Manager;
use League\Fractal\Resource\Collection; use League\Fractal\Resource\Collection;
use League\Fractal\Resource\Item; use League\Fractal\Resource\Item;
use Terranet\Restable\Contracts\SelfRendered; use Terranet\Restable\Contracts\SelfRendered;
...@@ -16,10 +16,19 @@ class FractalDecorator implements SelfRendered ...@@ -16,10 +16,19 @@ class FractalDecorator implements SelfRendered
* @var SelfRendered * @var SelfRendered
*/ */
private $selfRendered; private $selfRendered;
/**
* @var Manager
*/
private $fractalManager;
public function __construct(SelfRendered $selfRendered) /**
* @param SelfRendered $selfRendered
* @param Manager $fractalManager
*/
public function __construct(SelfRendered $selfRendered, Manager $fractalManager)
{ {
$this->selfRendered = $selfRendered; $this->selfRendered = $selfRendered;
$this->fractalManager = $fractalManager;
} }
/** /**
...@@ -85,7 +94,7 @@ class FractalDecorator implements SelfRendered ...@@ -85,7 +94,7 @@ class FractalDecorator implements SelfRendered
*/ */
protected function fractalItem($object, $transformer) protected function fractalItem($object, $transformer)
{ {
return Fractal::createData(new Item($object, $transformer)); return $this->fractalManager->createData(new Item($object, $transformer));
} }
/** /**
...@@ -95,7 +104,7 @@ class FractalDecorator implements SelfRendered ...@@ -95,7 +104,7 @@ class FractalDecorator implements SelfRendered
*/ */
protected function fractalCollection($collection, $transformer) protected function fractalCollection($collection, $transformer)
{ {
return Fractal::createData(new Collection($collection, $transformer)); return $this->fractalManager->createData(new Collection($collection, $transformer));
} }
/** /**
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Illuminate\Routing\ResponseFactory; use Illuminate\Routing\ResponseFactory;
use League\Fractal\Manager AS FractalManager;
class RestableServiceProvider extends ServiceProvider class RestableServiceProvider extends ServiceProvider
{ {
...@@ -45,7 +46,8 @@ class RestableServiceProvider extends ServiceProvider ...@@ -45,7 +46,8 @@ class RestableServiceProvider extends ServiceProvider
$converter = new Format; $converter = new Format;
return new FractalDecorator( return new FractalDecorator(
new SelfRenderedAdapter(new Restable($app['config'], $response, $converter)) new SelfRenderedAdapter(new Restable($app['config'], $response, $converter)),
new FractalManager
); );
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment