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

api-platform / core / 19799301771

30 Nov 2025 01:04PM UTC coverage: 25.229% (-0.03%) from 25.257%
19799301771

push

github

web-flow
fix(metadata): repeatable attribute mutators (#7542)

14557 of 57700 relevant lines covered (25.23%)

28.11 hits per line

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

77.22
/src/Metadata/GraphQl/Operation.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\GraphQl;
15

16
use ApiPlatform\Metadata\Link;
17
use ApiPlatform\Metadata\Operation as AbstractOperation;
18
use ApiPlatform\Metadata\Parameters;
19
use ApiPlatform\State\OptionsInterface;
20

21
class Operation extends AbstractOperation
22
{
23
    /**
24
     * @param Link[]|null $links
25
     * @param array{
26
     *     class?: string|null,
27
     *     name?: string,
28
     * }|string|false|null $input {@see https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation}
29
     * @param array{
30
     *     class?: string|null,
31
     *     name?: string,
32
     * }|string|false|null $output {@see https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation}
33
     * @param string|array|bool|null $mercure   {@see https://api-platform.com/docs/core/mercure}
34
     * @param string|bool|null       $messenger {@see https://api-platform.com/docs/core/messenger/#dispatching-a-resource-through-the-message-bus}
35
     * @param string|callable|null   $provider  {@see https://api-platform.com/docs/core/state-providers/#state-providers}
36
     * @param string|callable|null   $processor {@see https://api-platform.com/docs/core/state-processors/#state-processors}
37
     */
38
    public function __construct(
39
        protected ?string $resolver = null,
40
        protected ?array $args = null,
41
        protected ?array $extraArgs = null,
42
        protected ?array $links = null,
43
        protected ?bool $validateAfterResolver = null,
44
        protected ?string $securityAfterResolver = null,
45
        protected ?string $securityMessageAfterResolver = null,
46

47
        ?string $shortName = null,
48
        ?string $class = null,
49
        ?bool $paginationEnabled = null,
50
        ?string $paginationType = null,
51
        ?int $paginationItemsPerPage = null,
52
        ?int $paginationMaximumItemsPerPage = null,
53
        ?bool $paginationPartial = null,
54
        ?bool $paginationClientEnabled = null,
55
        ?bool $paginationClientItemsPerPage = null,
56
        ?bool $paginationClientPartial = null,
57
        ?bool $paginationFetchJoinCollection = null,
58
        ?bool $paginationUseOutputWalkers = null,
59
        ?array $order = null,
60
        ?string $description = null,
61
        ?array $normalizationContext = null,
62
        ?array $denormalizationContext = null,
63
        ?bool $collectDenormalizationErrors = null,
64
        string|\Stringable|null $security = null,
65
        ?string $securityMessage = null,
66
        string|\Stringable|null $securityPostDenormalize = null,
67
        ?string $securityPostDenormalizeMessage = null,
68
        string|\Stringable|null $securityPostValidation = null,
69
        ?string $securityPostValidationMessage = null,
70
        ?string $deprecationReason = null,
71
        ?array $filters = null,
72
        ?array $validationContext = null,
73
        $input = null,
74
        $output = null,
75
        $mercure = null,
76
        $messenger = null,
77
        ?int $urlGenerationStrategy = null,
78
        ?bool $read = null,
79
        ?bool $deserialize = null,
80
        ?bool $validate = null,
81
        ?bool $write = null,
82
        ?bool $serialize = null,
83
        ?bool $fetchPartial = null,
84
        ?bool $forceEager = null,
85
        ?int $priority = null,
86
        ?string $name = null,
87
        $provider = null,
88
        $processor = null,
89
        ?OptionsInterface $stateOptions = null,
90
        array|Parameters|null $parameters = null,
91
        ?bool $queryParameterValidationEnabled = null,
92
        mixed $rules = null,
93
        ?string $policy = null,
94
        array $extraProperties = [],
95
        ?bool $map = null,
96
    ) {
97
        parent::__construct(
92✔
98
            shortName: $shortName,
92✔
99
            class: $class,
92✔
100
            paginationEnabled: $paginationEnabled,
92✔
101
            paginationType: $paginationType,
92✔
102
            paginationItemsPerPage: $paginationItemsPerPage,
92✔
103
            paginationMaximumItemsPerPage: $paginationMaximumItemsPerPage,
92✔
104
            paginationPartial: $paginationPartial,
92✔
105
            paginationClientEnabled: $paginationClientEnabled,
92✔
106
            paginationClientItemsPerPage: $paginationClientItemsPerPage,
92✔
107
            paginationClientPartial: $paginationClientPartial,
92✔
108
            paginationFetchJoinCollection: $paginationFetchJoinCollection,
92✔
109
            paginationUseOutputWalkers: $paginationUseOutputWalkers,
92✔
110
            order: $order,
92✔
111
            description: $description,
92✔
112
            normalizationContext: $normalizationContext,
92✔
113
            denormalizationContext: $denormalizationContext,
92✔
114
            collectDenormalizationErrors: $collectDenormalizationErrors,
92✔
115
            security: $security,
92✔
116
            securityMessage: $securityMessage,
92✔
117
            securityPostDenormalize: $securityPostDenormalize,
92✔
118
            securityPostDenormalizeMessage: $securityPostDenormalizeMessage,
92✔
119
            securityPostValidation: $securityPostValidation,
92✔
120
            securityPostValidationMessage: $securityPostValidationMessage,
92✔
121
            deprecationReason: $deprecationReason,
92✔
122
            filters: $filters,
92✔
123
            validationContext: $validationContext,
92✔
124
            input: $input,
92✔
125
            output: $output,
92✔
126
            mercure: $mercure,
92✔
127
            messenger: $messenger,
92✔
128
            urlGenerationStrategy: $urlGenerationStrategy,
92✔
129
            read: $read,
92✔
130
            deserialize: $deserialize,
92✔
131
            validate: $validate,
92✔
132
            write: $write,
92✔
133
            serialize: $serialize,
92✔
134
            fetchPartial: $fetchPartial,
92✔
135
            forceEager: $forceEager,
92✔
136
            priority: $priority,
92✔
137
            name: $name,
92✔
138
            provider: $provider,
92✔
139
            processor: $processor,
92✔
140
            stateOptions: $stateOptions,
92✔
141
            parameters: $parameters,
92✔
142
            queryParameterValidationEnabled: $queryParameterValidationEnabled,
92✔
143
            rules: $rules,
92✔
144
            policy: $policy,
92✔
145
            extraProperties: $extraProperties,
92✔
146
            map: $map
92✔
147
        );
92✔
148
    }
149

150
    public function getResolver(): ?string
151
    {
152
        return $this->resolver;
24✔
153
    }
154

155
    public function withResolver(?string $resolver = null): self
156
    {
157
        $self = clone $this;
×
158
        $self->resolver = $resolver;
×
159

160
        return $self;
×
161
    }
162

163
    public function getArgs(): ?array
164
    {
165
        return $this->args;
26✔
166
    }
167

168
    public function withArgs(?array $args = null): self
169
    {
170
        $self = clone $this;
×
171
        $self->args = $args;
×
172

173
        return $self;
×
174
    }
175

176
    public function getExtraArgs(): ?array
177
    {
178
        return $this->extraArgs;
26✔
179
    }
180

181
    public function withExtraArgs(?array $extraArgs = null): self
182
    {
183
        $self = clone $this;
×
184
        $self->extraArgs = $extraArgs;
×
185

186
        return $self;
×
187
    }
188

189
    /**
190
     * @return Link[]|null
191
     */
192
    public function getLinks(): ?array
193
    {
194
        return $this->links;
88✔
195
    }
196

197
    /**
198
     * @param Link[] $links
199
     */
200
    public function withLinks(array $links): self
201
    {
202
        $self = clone $this;
88✔
203
        $self->links = $links;
88✔
204

205
        return $self;
88✔
206
    }
207

208
    public function canValidateAfterResolver(): ?bool
209
    {
210
        return $this->validateAfterResolver;
20✔
211
    }
212

213
    public function withValidateAfterResolver(bool $validateAfterResolver = true): self
214
    {
215
        $self = clone $this;
×
216
        $self->validateAfterResolver = $validateAfterResolver;
×
217

218
        return $self;
×
219
    }
220

221
    public function getSecurityAfterResolver(): ?string
222
    {
223
        return $this->securityAfterResolver;
26✔
224
    }
225

226
    public function withSecurityAfterResolver(string $securityAfterResolver): self
227
    {
228
        $self = clone $this;
×
229
        $self->securityAfterResolver = $securityAfterResolver;
×
230

231
        return $self;
×
232
    }
233

234
    public function getSecurityMessageAfterResolver(): ?string
235
    {
236
        return $this->securityMessageAfterResolver;
26✔
237
    }
238

239
    public function withSecurityMessageAfterResolver(string $securityMessageAfterResolver): self
240
    {
241
        $self = clone $this;
×
242
        $self->securityMessageAfterResolver = $securityMessageAfterResolver;
×
243

244
        return $self;
×
245
    }
246
}
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

© 2026 Coveralls, Inc