diff --git a/src/Mapping/AutoMapper.php b/src/Mapping/AutoMapper.php index 42bcf0b6..9e871b27 100644 --- a/src/Mapping/AutoMapper.php +++ b/src/Mapping/AutoMapper.php @@ -7,6 +7,8 @@ class AutoMapper implements AutoMapperInterface { + public const SKIP_NULL_VALUES = 'skip_null_values'; + private AutoMapperInterface $innerMapper; public function __construct( @@ -19,6 +21,11 @@ public function __construct( public function map(array|object $source, string|array|object $target, array $context = []): array|object|null { + $context = [ + self::SKIP_NULL_VALUES => true, + ...$context + ]; + return $this->innerMapper->map($source, $target, $context); } } diff --git a/src/State/ApiResourceStateProcessor.php b/src/State/ApiResourceStateProcessor.php index 8bbfbb5d..f2994ce0 100644 --- a/src/State/ApiResourceStateProcessor.php +++ b/src/State/ApiResourceStateProcessor.php @@ -42,7 +42,7 @@ public function process(mixed $data, Operation $operation, array $uriVariables = public function getEntity(mixed $data, Options $options): object { /** @var object */ - $entity = $this->autoMapper->map($data, $options->getEntityClass(), ['skip_null_values' => true]); + $entity = $this->autoMapper->map($data, $options->getEntityClass()); return $entity; } diff --git a/src/State/Project/ProjectStateProcessor.php b/src/State/Project/ProjectStateProcessor.php index 0934a4e9..38994ace 100644 --- a/src/State/Project/ProjectStateProcessor.php +++ b/src/State/Project/ProjectStateProcessor.php @@ -34,7 +34,7 @@ public function __construct( public function process(mixed $data, Operation $operation, array $uriVariables = [], array $context = []) { /** @var Project */ - $project = $this->autoMapper->map($data, Project::class, ['skip_null_values' => true]); + $project = $this->autoMapper->map($data, Project::class); if (!isset($data->id)) { $user = $this->security->getUser();