Code Duplication    Length = 20-22 lines in 3 locations

src/Serializer.php 3 locations

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