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

api-platform / core / 10739011304

06 Sep 2024 01:11PM UTC coverage: 7.159% (-0.5%) from 7.645%
10739011304

push

github

web-flow
 feat(laravel): eloquent filters (search, date, equals, or) (#6593)

* feat(laravel): Eloquent filters search date or

* feat(laravel): eloquent filters order range equals afterdate

* fix(laravel): order afterDate filters

* temp

* test(laravel): filter with eloquent

---------

Co-authored-by: Nathan <nathan@les-tilleuls.coop>

0 of 144 new or added lines in 16 files covered. (0.0%)

4792 existing lines in 155 files now uncovered.

11736 of 163930 relevant lines covered (7.16%)

22.8 hits per line

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

75.0
/src/Metadata/Property/Factory/ExtractorPropertyNameCollectionFactory.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\Property\Factory;
15

16
use ApiPlatform\Metadata\Exception\InvalidArgumentException;
17
use ApiPlatform\Metadata\Exception\ResourceClassNotFoundException;
18
use ApiPlatform\Metadata\Extractor\PropertyExtractorInterface;
19
use ApiPlatform\Metadata\Property\PropertyNameCollection;
20

21
/**
22
 * Creates a property name collection using an extractor.
23
 *
24
 * @author Kévin Dunglas <dunglas@gmail.com>
25
 * @author Baptiste Meyer <baptiste.meyer@gmail.com>
26
 * @author Vincent Chalamon <vincentchalamon@gmail.com>
27
 */
28
final class ExtractorPropertyNameCollectionFactory implements PropertyNameCollectionFactoryInterface
29
{
30
    public function __construct(private readonly PropertyExtractorInterface $extractor, private readonly ?PropertyNameCollectionFactoryInterface $decorated = null)
31
    {
UNCOV
32
    }
2,251✔
33

34
    /**
35
     * {@inheritdoc}
36
     *
37
     * @throws InvalidArgumentException
38
     */
39
    public function create(string $resourceClass, array $options = []): PropertyNameCollection
40
    {
UNCOV
41
        $propertyNames = [];
455✔
UNCOV
42
        $propertyNameCollection = null;
455✔
43

UNCOV
44
        if ($this->decorated) {
455✔
45
            try {
UNCOV
46
                $propertyNameCollection = $this->decorated->create($resourceClass, $options);
455✔
47
            } catch (ResourceClassNotFoundException) {
×
48
                // Ignore not found exceptions from decorated factory
49
            }
50

UNCOV
51
            foreach ($propertyNameCollection as $propertyName) {
455✔
UNCOV
52
                $propertyNames[$propertyName] = $propertyName;
449✔
53
            }
54
        }
55

UNCOV
56
        if (!class_exists($resourceClass) && !interface_exists($resourceClass)) {
455✔
57
            if (null !== $propertyNameCollection) {
×
58
                return $propertyNameCollection;
×
59
            }
60

61
            throw new ResourceClassNotFoundException(\sprintf('The resource class "%s" does not exist.', $resourceClass));
×
62
        }
63

UNCOV
64
        if ($properties = $this->extractor->getProperties()[$resourceClass] ?? false) {
455✔
UNCOV
65
            foreach ($properties as $propertyName => $property) {
19✔
UNCOV
66
                $propertyNames[$propertyName] = $propertyName;
19✔
67
            }
68
        }
69

UNCOV
70
        return new PropertyNameCollection(array_values($propertyNames));
455✔
71
    }
72
}
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

© 2024 Coveralls, Inc