/**
  * @param array $value
  *
  * @return array
  */
 protected function serialization(array &$value)
 {
     $data = [self::DATA_KEY => \array_merge(PropertyHelper::setResponseDataTypeAndId($this->mappings, $value), DataAttributesHelper::setResponseDataAttributes($this->mappings, $value), DataLinksHelper::setResponseDataLinks($this->mappings, $value), DataLinksHelper::setResponseDataRelationship($this->mappings, $value, $value))];
     DataIncludedHelper::setResponseDataIncluded($this->mappings, $value, $data);
     $this->setResponseLinks($value, $data);
     $this->setResponseMeta($data);
     $this->setResponseVersion($data);
     return $data;
 }
 /**
  * @param array  $mappings
  * @param array  $data
  * @param array  $value
  * @param string $type
  */
 protected static function addRelationshipsToIncludedResources(array &$mappings, array &$data, array &$value, $type)
 {
     foreach ($value as $propertyName => $attribute) {
         if (PropertyHelper::isAttributeProperty($mappings, $propertyName, $type)) {
             $propertyName = DataAttributesHelper::transformToValidMemberName($propertyName);
             if (\is_array($attribute) && \array_key_exists(Serializer::CLASS_IDENTIFIER_KEY, $attribute)) {
                 $data[$propertyName][JsonApiTransformer::DATA_KEY] = PropertyHelper::setResponseDataTypeAndId($mappings, $attribute);
                 continue;
             }
         }
     }
 }
Esempio n. 3
0
 /**
  * @param \NilPortugues\Api\Mapping\Mapping[] $mappings
  * @param array                               $parent
  * @param string                              $propertyName
  * @param string                              $type
  * @param array                               $data
  * @param array                               $value
  */
 protected static function relationshipLinksSelf(array &$mappings, array &$parent, $propertyName, $type, array &$data, array &$value)
 {
     if (!in_array($propertyName, RecursiveFormatterHelper::getIdProperties($mappings, $type), true)) {
         $data[JsonApiTransformer::RELATIONSHIPS_KEY][$propertyName] = array_merge(array_filter([JsonApiTransformer::LINKS_KEY => self::setResponseDataRelationshipSelfLinks($propertyName, $mappings, $parent)]), array_filter([JsonApiTransformer::DATA_KEY => PropertyHelper::setResponseDataTypeAndId($mappings, $value)]));
         if (count($data[JsonApiTransformer::RELATIONSHIPS_KEY][$propertyName]) === 0) {
             unset($data[JsonApiTransformer::RELATIONSHIPS_KEY][$propertyName]);
         }
     }
 }