Exemple #1
0
 /**
  * Serialize a resource
  *
  * @internal
  *
  * @param SerializerAbstract $serializer
  * @param mixed              $data
  *
  * @return array
  */
 protected function serializeResource(SerializerAbstract $serializer, $data)
 {
     $resourceKey = $this->resource->getResourceKey();
     if ($this->resource instanceof Collection) {
         return $serializer->collection($resourceKey, $data);
     } else {
         return $serializer->item($resourceKey, $data);
     }
 }
 /**
  * Get the Fractal resource instance.
  *
  * @return \League\Fractal\Resource\ResourceInterface
  */
 public function getResource() : ResourceInterface
 {
     $this->manager->parseIncludes($this->relations);
     $transformer = $this->resource->getTransformer();
     if ($transformer instanceof Transformer && $transformer->allRelationsAllowed()) {
         $this->resource->setTransformer($transformer->setRelations($this->manager->getRequestedIncludes()));
     }
     return $this->resource->setMeta($this->meta);
 }
 /**
  * Build the response.
  *
  * @param  array|\League\Fractal\Resource\ResourceInterface  $data
  * @return \Illuminate\Http\Response
  */
 protected function build($data)
 {
     if ($data instanceof FractalResourceInterface) {
         $fractal = $this->resolveFractal();
         foreach ($this->meta as $key => $value) {
             $data->setMetaValue($key, $value);
         }
         if ($this->serializer) {
             $fractal->setSerializer($this->serializer);
         }
         $data = $this->resolveFractal()->createData($data)->toArray();
     }
     $response = new IlluminateResponse($data, $this->statusCode, $this->headers);
     $this->reset();
     return $response;
 }