Code Duplication    Length = 28-28 lines in 2 locations

src/Definition/Loader/Annotation/CRUDAnnotationParser.php 2 locations

@@ 225-252 (lines=28) @@
222
     * @param Endpoint                  $endpoint
223
     * @param string                    $bundleNamespace
224
     */
225
    protected function createAddOperation(ObjectDefinitionInterface $definition, Annotation\Mutation $mutation, Endpoint $endpoint, $bundleNamespace)
226
    {
227
        $mutation->name = $mutation->name ?? 'add'.ucfirst($definition->getName());
228
        $mutation->payload = $mutation->payload ?? null;
229
        if (!$mutation->payload) {
230
            //deep cloning
231
            /** @var ObjectDefinitionInterface $payload */
232
            $payload = unserialize(serialize($endpoint->getType(AddNodePayload::class)), [DefinitionInterface::class]);
233
            $payload->setName(ucfirst($mutation->name.'Payload'));
234
235
            if (!$endpoint->hasType($payload->getName())) {
236
                $payload->getField('node')->setType($definition->getName());
237
                $endpoint->add($payload);
238
            }
239
240
            $mutation->payload = $payload->getName();
241
        }
242
        $mutation->node = $mutation->node ?? $definition->getName();
243
        $mutation->options = array_merge(['form' => ['type' => true]], $mutation->options);
244
        $resolverReflection = new \ReflectionClass(AddNodeMutation::class);
245
246
        $resolver = ClassUtils::applyNamingConvention($bundleNamespace, 'Mutation', $definition->getName(), $mutation->name);
247
        if (class_exists($resolver)) {
248
            $mutation->resolver = $resolver;
249
        }
250
251
        $this->mutationParser->parse($mutation, $resolverReflection, $endpoint);
252
    }
253
254
    /**
255
     * @param ObjectDefinitionInterface $definition
@@ 260-287 (lines=28) @@
257
     * @param Endpoint                  $endpoint
258
     * @param string                    $bundleNamespace
259
     */
260
    protected function createUpdateOperation(ObjectDefinitionInterface $definition, Annotation\Mutation $mutation, Endpoint $endpoint, $bundleNamespace)
261
    {
262
        $mutation->name = $mutation->name ?? 'update'.ucfirst($definition->getName());
263
        $mutation->payload = $mutation->payload ?? null;
264
        if (!$mutation->payload) {
265
            //deep cloning
266
            /** @var ObjectDefinitionInterface $payload */
267
            $payload = unserialize(serialize($endpoint->getType(UpdateNodePayload::class)), [DefinitionInterface::class]);
268
            $payload->setName(ucfirst($mutation->name.'Payload'));
269
270
            if (!$endpoint->hasType($payload->getName())) {
271
                $payload->getField('node')->setType($definition->getName());
272
                $endpoint->add($payload);
273
            }
274
275
            $mutation->payload = $payload->getName();
276
        }
277
        $mutation->node = $mutation->node ?? $definition->getName();
278
        $mutation->options = array_merge(['form' => ['type' => true]], $mutation->options);
279
        $resolverReflection = new \ReflectionClass(UpdateNodeMutation::class);
280
281
        $resolver = ClassUtils::applyNamingConvention($bundleNamespace, 'Mutation', $definition->getName(), $mutation->name);
282
        if (class_exists($resolver)) {
283
            $mutation->resolver = $resolver;
284
        }
285
286
        $this->mutationParser->parse($mutation, $resolverReflection, $endpoint);
287
    }
288
289
    /**
290
     * @param ObjectDefinitionInterface $definition