Skip to content

Commit

Permalink
fix(metadata): homogenize operations constructor (#5344)
Browse files Browse the repository at this point in the history
* chore: homogenize `Operation` constructor

* chore: homogenize `HttpOperation` constructor

* chore: homogenize `Get` constructor

* chore: homogenize `Post` constructor

* chore: homogenize `Delete` constructor

* chore: homogenize `GetCollection` constructor

* chore: homogenize `Patch` constructor

* chore: homogenize `Put` constructor

* chore: homogenize GraphQL `Operation` constructor

* chore: homogenize `Query` constructor

* chore: homogenize `QueryCollection` constructor

* chore: homogenize `Mutation` constructor

* chore: homogenize `DeleteMutation` constructor

* chore: homogenize `Subscription` constructor

* fix: do not restrict `$provider` and `$processor` type in GraphQL `Operation`

* chore: rebase after moving `$paginationViaCursor`

* chore: warn users regarding usage of positional parameters in operations’ constructor

* chore: name constructors arguments

* fix: method cannot be null in `HttpOperation`
  • Loading branch information
Mathieu authored Jan 16, 2023
1 parent 722802c commit 0154bf1
Show file tree
Hide file tree
Showing 16 changed files with 835 additions and 362 deletions.
80 changes: 73 additions & 7 deletions src/Metadata/Delete.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)]
final class Delete extends HttpOperation implements DeleteOperationInterface
{
/**
* {@inheritdoc}
*/
public function __construct(
?string $uriTemplate = null,
?array $types = null,
Expand All @@ -41,12 +38,10 @@ public function __construct(
?string $controller = null,
?array $cacheHeaders = null,
?array $paginationViaCursor = null,

?array $hydraContext = null,
?array $openapiContext = null,
?bool $openapi = null,
?array $exceptionToStatus = null,

?bool $queryParameterValidationEnabled = null,

?string $shortName = null,
Expand Down Expand Up @@ -91,8 +86,79 @@ public function __construct(
?string $name = null,
$provider = null,
$processor = null,
array $extraProperties = []
array $extraProperties = [],
) {
parent::__construct(self::METHOD_DELETE, ...\func_get_args());
parent::__construct(
method: self::METHOD_DELETE,
uriTemplate: $uriTemplate,
types: $types,
formats: $formats,
inputFormats: $inputFormats,
outputFormats: $outputFormats,
uriVariables: $uriVariables,
routePrefix: $routePrefix,
routeName: $routeName,
defaults: $defaults,
requirements: $requirements,
options: $options,
stateless: $stateless,
sunset: $sunset,
acceptPatch: $acceptPatch,
status: $status,
host: $host,
schemes: $schemes,
condition: $condition,
controller: $controller,
cacheHeaders: $cacheHeaders,
paginationViaCursor: $paginationViaCursor,
hydraContext: $hydraContext,
openapiContext: $openapiContext,
openapi: $openapi,
exceptionToStatus: $exceptionToStatus,
queryParameterValidationEnabled: $queryParameterValidationEnabled,
shortName: $shortName,
class: $class,
paginationEnabled: $paginationEnabled,
paginationType: $paginationType,
paginationItemsPerPage: $paginationItemsPerPage,
paginationMaximumItemsPerPage: $paginationMaximumItemsPerPage,
paginationPartial: $paginationPartial,
paginationClientEnabled: $paginationClientEnabled,
paginationClientItemsPerPage: $paginationClientItemsPerPage,
paginationClientPartial: $paginationClientPartial,
paginationFetchJoinCollection: $paginationFetchJoinCollection,
paginationUseOutputWalkers: $paginationUseOutputWalkers,
order: $order,
description: $description,
normalizationContext: $normalizationContext,
denormalizationContext: $denormalizationContext,
security: $security,
securityMessage: $securityMessage,
securityPostDenormalize: $securityPostDenormalize,
securityPostDenormalizeMessage: $securityPostDenormalizeMessage,
securityPostValidation: $securityPostValidation,
securityPostValidationMessage: $securityPostValidationMessage,
deprecationReason: $deprecationReason,
filters: $filters,
validationContext: $validationContext,
input: $input,
output: $output,
mercure: $mercure,
messenger: $messenger,
elasticsearch: $elasticsearch,
urlGenerationStrategy: $urlGenerationStrategy,
read: $read,
deserialize: $deserialize,
validate: $validate,
write: $write,
serialize: $serialize,
fetchPartial: $fetchPartial,
forceEager: $forceEager,
priority: $priority,
name: $name,
provider: $provider,
processor: $processor,
extraProperties: $extraProperties
);
}
}
79 changes: 72 additions & 7 deletions src/Metadata/Get.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)]
final class Get extends HttpOperation
{
/**
* {@inheritdoc}
*/
public function __construct(
?string $uriTemplate = null,
?array $types = null,
Expand All @@ -41,12 +38,10 @@ public function __construct(
?string $controller = null,
?array $cacheHeaders = null,
?array $paginationViaCursor = null,

?array $hydraContext = null,
?array $openapiContext = null,
?bool $openapi = null,
?array $exceptionToStatus = null,

?bool $queryParameterValidationEnabled = null,

?string $shortName = null,
Expand Down Expand Up @@ -91,8 +86,78 @@ public function __construct(
?string $name = null,
$provider = null,
$processor = null,
array $extraProperties = []
array $extraProperties = [],
) {
parent::__construct(self::METHOD_GET, ...\func_get_args());
parent::__construct(
uriTemplate: $uriTemplate,
types: $types,
formats: $formats,
inputFormats: $inputFormats,
outputFormats: $outputFormats,
uriVariables: $uriVariables,
routePrefix: $routePrefix,
routeName: $routeName,
defaults: $defaults,
requirements: $requirements,
options: $options,
stateless: $stateless,
sunset: $sunset,
acceptPatch: $acceptPatch,
status: $status,
host: $host,
schemes: $schemes,
condition: $condition,
controller: $controller,
cacheHeaders: $cacheHeaders,
paginationViaCursor: $paginationViaCursor,
hydraContext: $hydraContext,
openapiContext: $openapiContext,
openapi: $openapi,
exceptionToStatus: $exceptionToStatus,
queryParameterValidationEnabled: $queryParameterValidationEnabled,
shortName: $shortName,
class: $class,
paginationEnabled: $paginationEnabled,
paginationType: $paginationType,
paginationItemsPerPage: $paginationItemsPerPage,
paginationMaximumItemsPerPage: $paginationMaximumItemsPerPage,
paginationPartial: $paginationPartial,
paginationClientEnabled: $paginationClientEnabled,
paginationClientItemsPerPage: $paginationClientItemsPerPage,
paginationClientPartial: $paginationClientPartial,
paginationFetchJoinCollection: $paginationFetchJoinCollection,
paginationUseOutputWalkers: $paginationUseOutputWalkers,
order: $order,
description: $description,
normalizationContext: $normalizationContext,
denormalizationContext: $denormalizationContext,
security: $security,
securityMessage: $securityMessage,
securityPostDenormalize: $securityPostDenormalize,
securityPostDenormalizeMessage: $securityPostDenormalizeMessage,
securityPostValidation: $securityPostValidation,
securityPostValidationMessage: $securityPostValidationMessage,
deprecationReason: $deprecationReason,
filters: $filters,
validationContext: $validationContext,
input: $input,
output: $output,
mercure: $mercure,
messenger: $messenger,
elasticsearch: $elasticsearch,
urlGenerationStrategy: $urlGenerationStrategy,
read: $read,
deserialize: $deserialize,
validate: $validate,
write: $write,
serialize: $serialize,
fetchPartial: $fetchPartial,
forceEager: $forceEager,
priority: $priority,
name: $name,
provider: $provider,
processor: $processor,
extraProperties: $extraProperties
);
}
}
83 changes: 73 additions & 10 deletions src/Metadata/GetCollection.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,6 @@
#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)]
final class GetCollection extends HttpOperation implements CollectionOperationInterface
{
private $itemUriTemplate;

/**
* {@inheritdoc}
*/
public function __construct(
?string $uriTemplate = null,
?array $types = null,
Expand All @@ -43,12 +38,10 @@ public function __construct(
?string $controller = null,
?array $cacheHeaders = null,
?array $paginationViaCursor = null,

?array $hydraContext = null,
?array $openapiContext = null,
?bool $openapi = null,
?array $exceptionToStatus = null,

?bool $queryParameterValidationEnabled = null,

?string $shortName = null,
Expand Down Expand Up @@ -94,10 +87,80 @@ public function __construct(
$provider = null,
$processor = null,
array $extraProperties = [],
?string $itemUriTemplate = null

private ?string $itemUriTemplate = null,
) {
parent::__construct(self::METHOD_GET, ...\func_get_args());
$this->itemUriTemplate = $itemUriTemplate;
parent::__construct(
uriTemplate: $uriTemplate,
types: $types,
formats: $formats,
inputFormats: $inputFormats,
outputFormats: $outputFormats,
uriVariables: $uriVariables,
routePrefix: $routePrefix,
routeName: $routeName,
defaults: $defaults,
requirements: $requirements,
options: $options,
stateless: $stateless,
sunset: $sunset,
acceptPatch: $acceptPatch,
status: $status,
host: $host,
schemes: $schemes,
condition: $condition,
controller: $controller,
cacheHeaders: $cacheHeaders,
paginationViaCursor: $paginationViaCursor,
hydraContext: $hydraContext,
openapiContext: $openapiContext,
openapi: $openapi,
exceptionToStatus: $exceptionToStatus,
queryParameterValidationEnabled: $queryParameterValidationEnabled,
shortName: $shortName,
class: $class,
paginationEnabled: $paginationEnabled,
paginationType: $paginationType,
paginationItemsPerPage: $paginationItemsPerPage,
paginationMaximumItemsPerPage: $paginationMaximumItemsPerPage,
paginationPartial: $paginationPartial,
paginationClientEnabled: $paginationClientEnabled,
paginationClientItemsPerPage: $paginationClientItemsPerPage,
paginationClientPartial: $paginationClientPartial,
paginationFetchJoinCollection: $paginationFetchJoinCollection,
paginationUseOutputWalkers: $paginationUseOutputWalkers,
order: $order,
description: $description,
normalizationContext: $normalizationContext,
denormalizationContext: $denormalizationContext,
security: $security,
securityMessage: $securityMessage,
securityPostDenormalize: $securityPostDenormalize,
securityPostDenormalizeMessage: $securityPostDenormalizeMessage,
securityPostValidation: $securityPostValidation,
securityPostValidationMessage: $securityPostValidationMessage,
deprecationReason: $deprecationReason,
filters: $filters,
validationContext: $validationContext,
input: $input,
output: $output,
mercure: $mercure,
messenger: $messenger,
elasticsearch: $elasticsearch,
urlGenerationStrategy: $urlGenerationStrategy,
read: $read,
deserialize: $deserialize,
validate: $validate,
write: $write,
serialize: $serialize,
fetchPartial: $fetchPartial,
forceEager: $forceEager,
priority: $priority,
name: $name,
provider: $provider,
processor: $processor,
extraProperties: $extraProperties
);
}

public function getItemUriTemplate(): ?string
Expand Down
55 changes: 0 additions & 55 deletions src/Metadata/GraphQl/DeleteMutation.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,59 +18,4 @@
#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)]
class DeleteMutation extends Mutation implements DeleteOperationInterface
{
/**
* {@inheritdoc}
*/
public function __construct(
?string $resolver = null,
?array $args = null,
?array $links = null,

// abstract operation arguments
?string $shortName = null,
?string $class = null,
?bool $paginationEnabled = null,
?string $paginationType = null,
?int $paginationItemsPerPage = null,
?int $paginationMaximumItemsPerPage = null,
?bool $paginationPartial = null,
?bool $paginationClientEnabled = null,
?bool $paginationClientItemsPerPage = null,
?bool $paginationClientPartial = null,
?bool $paginationFetchJoinCollection = null,
?bool $paginationUseOutputWalkers = null,
?array $order = null,
?string $description = null,
?array $normalizationContext = null,
?array $denormalizationContext = null,
?string $security = null,
?string $securityMessage = null,
?string $securityPostDenormalize = null,
?string $securityPostDenormalizeMessage = null,
?string $securityPostValidation = null,
?string $securityPostValidationMessage = null,
?string $deprecationReason = null,
?array $filters = null,
?array $validationContext = null,
$input = null,
$output = null,
$mercure = null,
$messenger = null,
?bool $elasticsearch = null,
?int $urlGenerationStrategy = null,
?bool $read = null,
?bool $deserialize = null,
?bool $validate = null,
?bool $write = null,
?bool $serialize = null,
?bool $fetchPartial = null,
?bool $forceEager = null,
?int $priority = null,
?string $name = null,
$provider = null,
$processor = null,
array $extraProperties = []
) {
parent::__construct(...\func_get_args());
}
}
Loading

0 comments on commit 0154bf1

Please sign in to comment.