/** * @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); }
/** * 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; }