• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

api-platform / core / 18089958695

29 Sep 2025 07:57AM UTC coverage: 21.569% (-0.2%) from 21.797%
18089958695

push

github

web-flow
fix(openapi): define items type for HydraCollectionBaseSchema hydra:member (#7419)

Co-authored-by: Thibaut Cholley <thibaut.cholley@elsie-sante.fr>

0 of 1 new or added line in 1 file covered. (0.0%)

12063 existing lines in 401 files now uncovered.

11765 of 54545 relevant lines covered (21.57%)

12.57 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

90.0
/src/Metadata/Resource/Factory/MutatorResourceMetadataCollectionFactory.php
1
<?php
2

3
/*
4
 * This file is part of the API Platform project.
5
 *
6
 * (c) Kévin Dunglas <dunglas@gmail.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types=1);
13

14
namespace ApiPlatform\Metadata\Resource\Factory;
15

16
use ApiPlatform\Metadata\ApiResource;
17
use ApiPlatform\Metadata\Mutator\OperationMutatorCollectionInterface;
18
use ApiPlatform\Metadata\Mutator\ResourceMutatorCollectionInterface;
19
use ApiPlatform\Metadata\Operation;
20
use ApiPlatform\Metadata\Operations;
21
use ApiPlatform\Metadata\Resource\ResourceMetadataCollection;
22

23
final class MutatorResourceMetadataCollectionFactory implements ResourceMetadataCollectionFactoryInterface
24
{
25
    public function __construct(
26
        private readonly ResourceMutatorCollectionInterface $resourceMutators,
27
        private readonly OperationMutatorCollectionInterface $operationMutators,
28
        private readonly ?ResourceMetadataCollectionFactoryInterface $decorated = null,
29
    ) {
UNCOV
30
    }
362✔
31

32
    public function create(string $resourceClass): ResourceMetadataCollection
33
    {
UNCOV
34
        $resourceMetadataCollection = new ResourceMetadataCollection($resourceClass);
56✔
UNCOV
35
        if ($this->decorated) {
56✔
UNCOV
36
            $resourceMetadataCollection = $this->decorated->create($resourceClass);
56✔
37
        }
38

UNCOV
39
        $newMetadataCollection = new ResourceMetadataCollection($resourceClass);
56✔
40

UNCOV
41
        foreach ($resourceMetadataCollection as $resource) {
56✔
UNCOV
42
            $resource = $this->mutateResource($resource, $resourceClass);
55✔
UNCOV
43
            $operations = $this->mutateOperations($resource->getOperations() ?? new Operations());
55✔
UNCOV
44
            $resource = $resource->withOperations($operations);
55✔
45

UNCOV
46
            $newMetadataCollection[] = $resource;
55✔
47
        }
48

UNCOV
49
        return $newMetadataCollection;
56✔
50
    }
51

52
    private function mutateResource(ApiResource $resource, string $resourceClass): ApiResource
53
    {
UNCOV
54
        foreach ($this->resourceMutators->get($resourceClass) as $mutator) {
55✔
55
            $resource = $mutator($resource);
×
56
        }
57

UNCOV
58
        return $resource;
55✔
59
    }
60

61
    private function mutateOperations(Operations $operations): Operations
62
    {
UNCOV
63
        $newOperations = new Operations();
55✔
64

65
        /** @var Operation $operation */
UNCOV
66
        foreach ($operations as $key => $operation) {
55✔
UNCOV
67
            foreach ($this->operationMutators->get($key) as $mutator) {
55✔
68
                $operation = $mutator($operation);
×
69
            }
70

UNCOV
71
            $newOperations->add($key, $operation);
55✔
72
        }
73

UNCOV
74
        return $newOperations;
55✔
75
    }
76
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc