| @@ 84-103 (lines=20) @@ | ||
| 81 | * |
|
| 82 | * @return array |
|
| 83 | */ |
|
| 84 | private function serializeFields( |
|
| 85 | Request $request, |
|
| 86 | ObjectMappingInterface $objectMapping, |
|
| 87 | $object, |
|
| 88 | string $path |
|
| 89 | ): array { |
|
| 90 | $data = []; |
|
| 91 | foreach ($objectMapping->getFieldMappings() as $fieldMapping) { |
|
| 92 | $name = $fieldMapping->getName(); |
|
| 93 | $subPath = '' !== $path ? $path.'.'.$name : $name; |
|
| 94 | ||
| 95 | $this->logger->info('deserialize: path {path}', ['path' => $subPath]); |
|
| 96 | ||
| 97 | $data[$fieldMapping->getName()] = $fieldMapping |
|
| 98 | ->getFieldSerializer() |
|
| 99 | ->serializeField($subPath, $request, $object, $this); |
|
| 100 | } |
|
| 101 | ||
| 102 | return $data; |
|
| 103 | } |
|
| 104 | ||
| 105 | /** |
|
| 106 | * @param Request $request |
|
| @@ 113-132 (lines=20) @@ | ||
| 110 | * |
|
| 111 | * @return array |
|
| 112 | */ |
|
| 113 | private function serializeEmbeddedFields( |
|
| 114 | Request $request, |
|
| 115 | ObjectMappingInterface $objectMapping, |
|
| 116 | $object, |
|
| 117 | string $path |
|
| 118 | ): array { |
|
| 119 | $data = []; |
|
| 120 | foreach ($objectMapping->getEmbeddedFieldMappings() as $fieldEmbeddedMapping) { |
|
| 121 | $name = $fieldEmbeddedMapping->getName(); |
|
| 122 | $subPath = '' !== $path ? $path.'.'.$name : $name; |
|
| 123 | ||
| 124 | $this->logger->info('deserialize: path {path}', ['path' => $subPath]); |
|
| 125 | ||
| 126 | $data[$fieldEmbeddedMapping->getName()] = $fieldEmbeddedMapping |
|
| 127 | ->getFieldSerializer() |
|
| 128 | ->serializeField($subPath, $request, $object, $this); |
|
| 129 | } |
|
| 130 | ||
| 131 | return $data; |
|
| 132 | } |
|
| 133 | ||
| 134 | /** |
|
| 135 | * @param Request $request |
|
| @@ 143-164 (lines=22) @@ | ||
| 140 | * |
|
| 141 | * @return array |
|
| 142 | */ |
|
| 143 | private function serializeLinks( |
|
| 144 | Request $request, |
|
| 145 | ObjectMappingInterface $objectMapping, |
|
| 146 | $object, |
|
| 147 | array $fields, |
|
| 148 | string $path |
|
| 149 | ): array { |
|
| 150 | $data = []; |
|
| 151 | foreach ($objectMapping->getLinkMappings() as $linkMapping) { |
|
| 152 | $name = $linkMapping->getName(); |
|
| 153 | $subPath = '' !== $path ? $path.'._links.'.$name : '_links.'.$name; |
|
| 154 | ||
| 155 | $this->logger->info('deserialize: path {path}', ['path' => $subPath]); |
|
| 156 | ||
| 157 | $data[$linkMapping->getName()] = $linkMapping |
|
| 158 | ->getLinkSerializer() |
|
| 159 | ->serializeLink($subPath, $request, $object, $fields) |
|
| 160 | ->jsonSerialize(); |
|
| 161 | } |
|
| 162 | ||
| 163 | return $data; |
|
| 164 | } |
|
| 165 | } |
|
| 166 | ||