/**
  * @param DocumentResource $resource
  * @return array
  */
 protected function serializeResourceObject(EntityResource $resource)
 {
     $metadata = $resource->getMetadata();
     $fields = isset($this->document->sparseFields[$metadata->type]) ? $this->document->sparseFields[$metadata->type] : [];
     $serializer = new ResourceObjectSerializer($resource, $this->securityContext, $fields);
     return $serializer->serialize();
 }
 /**
  * @param EntityResource $resource
  * @param ResourceRelationship $relationship
  * @return string
  */
 private function buildToManyUrlTemplate(EntityResource $resource, ResourceRelationship $relationship)
 {
     $metadata = $resource->getMetadata();
     return sprintf(self::TO_MANY_URL_PATTERN, $this->apiUrlPath, $metadata->type, $metadata->type, $relationship->name);
 }
示例#3
0
 /**
  * Factory method para construir a partir de un EntityResource.
  * @param EntityResource $resource
  */
 public static function buildFromResource(EntityResource $resource)
 {
     return new static([$resource], $resource->getMetadata());
 }
 /**
  * @param EntityResource $resource
  * @param array $resourceObject
  * @return self
  */
 public function addLinkedResource(EntityResource $resource, array $resourceObject)
 {
     $this->linkedById[$resource->getMetadata()->type][$resource->id] = ['resource' => $resource, 'serialization' => $resourceObject];
 }
 /**
  * @param EntityResource $resource
  * @param SecurityContextInterface $securityContext
  * @param array $sparseFields
  */
 public function __construct(EntityResource $resource, SecurityContextInterface $securityContext, array $sparseFields = [])
 {
     $this->resource = $resource;
     $this->securityContext = $securityContext;
     $this->fields = $sparseFields ?: $resource->getMetadata()->fields;
 }