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