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