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

conedevelopment / root / 15084089635

17 May 2025 10:00AM UTC coverage: 77.93% (+0.04%) from 77.891%
15084089635

push

github

web-flow
Modernize back-end.yml (#240)

3291 of 4223 relevant lines covered (77.93%)

36.04 hits per line

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

92.0
/src/Traits/ResolvesFields.php
1
<?php
2

3
namespace Cone\Root\Traits;
4

5
use Closure;
6
use Cone\Root\Fields\Field;
7
use Cone\Root\Fields\Fields;
8
use Cone\Root\Fields\File;
9
use Cone\Root\Fields\Media;
10
use Illuminate\Http\Request;
11
use Illuminate\Support\Arr;
12

13
trait ResolvesFields
14
{
15
    /**
16
     * The fields collection.
17
     */
18
    protected ?Fields $fields = null;
19

20
    /**
21
     * The fields resolver callback.
22
     */
23
    protected ?Closure $fieldsResolver = null;
24

25
    /**
26
     * Define the fields for the object.
27
     */
28
    public function fields(Request $request): array
198✔
29
    {
30
        return [];
198✔
31
    }
32

33
    /**
34
     * Set the fields resolver callback.
35
     */
36
    public function withFields(Closure $callback): static
198✔
37
    {
38
        $this->fieldsResolver = $callback;
198✔
39

40
        return $this;
198✔
41
    }
42

43
    /**
44
     * Determine if the object has file field.
45
     */
46
    public function hasFileField(Request $request): bool
4✔
47
    {
48
        return $this->resolveFields($request)
4✔
49
            ->subResource(false)
4✔
50
            ->visible(['update', 'create'])
4✔
51
            ->some(static fn (Field $field): bool => ($field instanceof File && ! $field instanceof Media)
4✔
52
                || (in_array(ResolvesFields::class, class_uses_recursive($field)) && $field->hasFileField($request)));
4✔
53
    }
54

55
    /**
56
     * Resolve the fields collection.
57
     */
58
    public function resolveFields(Request $request): Fields
198✔
59
    {
60
        if (is_null($this->fields)) {
198✔
61
            $this->fields = new Fields($this->fields($request));
198✔
62

63
            $this->fields->when(! is_null($this->fieldsResolver), function (Fields $fields) use ($request): void {
198✔
64
                $fields->register(
198✔
65
                    Arr::wrap(call_user_func_array($this->fieldsResolver, [$request]))
198✔
66
                );
198✔
67
            });
198✔
68

69
            $this->fields->each(function (Field $field) use ($request): void {
198✔
70
                $this->resolveField($request, $field);
198✔
71
            });
198✔
72
        }
73

74
        return $this->fields;
198✔
75
    }
76

77
    /**
78
     * Handle the callback for the field resolution.
79
     */
80
    protected function resolveField(Request $request, Field $field): void
×
81
    {
82
        //
83
    }
×
84
}
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