/**
  * Run the request filter.
  *
  * @param Request $request
  * @param Closure $next
  *
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if ($request->has('include')) {
         $this->service->parseIncludes($request->get('include'));
     }
     return $next($request);
 }
 /**
  * Tests the Author include.
  */
 public function testAuthorInclude()
 {
     $this->service = new FractalService();
     $this->author = new Author('Test', 'Author');
     $this->book = new Book('Test Book', 'Test Publisher', $this->author);
     $this->transformer = new BookTransformer();
     $this->specify('The key "data" is required.', function () {
         $item = $this->service->item($this->book, $this->transformer)->toArray();
         verify($item)->hasKey('data');
     });
     $this->specify('Author last name must be "Author".', function () {
         $item = $this->service->item($this->book, $this->transformer)->toArray();
         verify($item['data']['author'])->hasKey('data');
         verify($item['data']['author']['data'])->hasKey('lastName');
         verify($item['data']['author']['data']['lastName'])->equals('Author');
     });
 }
 /**
  * @param FractalService $service
  * @param array          $config
  */
 protected function configureService(FractalService $service, array $config)
 {
     if (!empty($config['default_serializer'])) {
         $service->setDefaultSerializer(new $config['default_serializer']());
     }
 }