Fix generating id in statistics

This commit is contained in:
Michał Pysiak 2024-07-24 12:07:15 +02:00
parent ca34aff2a9
commit 0a7ac37f57
No known key found for this signature in database
GPG key ID: 9C1F2D0F99830187
3 changed files with 53 additions and 1 deletions

View file

@ -87,5 +87,12 @@
>
<argument type="service" id=".inner" />
</service>
<service
id="Sylius\Bundle\ApiBundle\SerializerContextBuilder\AnonymousContextBuilder"
decorates="api_platform.jsonld.context_builder"
>
<argument type="service" id=".inner" />
</service>
</services>
</container>

View file

@ -0,0 +1,46 @@
<?php
declare(strict_types=1);
namespace Sylius\Bundle\ApiBundle\SerializerContextBuilder;
use ApiPlatform\JsonLd\AnonymousContextBuilderInterface;
use ApiPlatform\JsonLd\ContextBuilder;
use ApiPlatform\Metadata\UrlGeneratorInterface;
use Sylius\Component\Core\Customer\Statistics\PerChannelCustomerStatistics;
final class AnonymousContextBuilder implements AnonymousContextBuilderInterface
{
public function __construct(private readonly AnonymousContextBuilderInterface $baseContextBuilder)
{
}
public function getAnonymousResourceContext($object, array $context = [], int $referenceType = UrlGeneratorInterface::ABS_PATH): array
{
if ($object instanceof PerChannelCustomerStatistics) {
$context['gen_id'] = false;
}
return $this->baseContextBuilder->getAnonymousResourceContext($object, $context, $referenceType);
}
public function getBaseContext(int $referenceType = UrlGeneratorInterface::ABS_PATH): array
{
$this->baseContextBuilder->getBaseContext($referenceType);
}
public function getEntrypointContext(int $referenceType = UrlGeneratorInterface::ABS_PATH): array
{
return $this->baseContextBuilder->getEntrypointContext($referenceType);
}
public function getResourceContext(string $resourceClass, int $referenceType = UrlGeneratorInterface::ABS_PATH): array
{
return $this->baseContextBuilder->getResourceContext($resourceClass, $referenceType);
}
public function getResourceContextUri(string $resourceClass, int $referenceType = UrlGeneratorInterface::ABS_PATH): string
{
return $this->baseContextBuilder->getResourceContextUri($resourceClass, $referenceType);
}
}

View file

@ -13,7 +13,6 @@
"@type": "hydra:Collection",
"hydra:member": [
{
"@id": "\/api\/v2\/.well-known\/genid\/@string@",
"@type": "PerChannelCustomerStatistics",
"ordersCount": 1,
"ordersValue": 0,