Wrap JSON serialization for any kind of visit in Visit entity itself

This commit is contained in:
Alejandro Celaya
2024-03-24 17:06:11 +01:00
parent a327e6c0a7
commit d948543d5c
9 changed files with 71 additions and 135 deletions

View File

@@ -9,12 +9,10 @@ use Shlinkio\Shlink\Common\UpdatePublishing\Update;
use Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl;
use Shlinkio\Shlink\Core\Visit\Entity\Visit;
final class PublishingUpdatesGenerator implements PublishingUpdatesGeneratorInterface
final readonly class PublishingUpdatesGenerator implements PublishingUpdatesGeneratorInterface
{
public function __construct(
private readonly DataTransformerInterface $shortUrlTransformer,
private readonly DataTransformerInterface $orphanVisitTransformer,
) {
public function __construct(private DataTransformerInterface $shortUrlTransformer)
{
}
public function newVisitUpdate(Visit $visit): Update
@@ -28,7 +26,7 @@ final class PublishingUpdatesGenerator implements PublishingUpdatesGeneratorInte
public function newOrphanVisitUpdate(Visit $visit): Update
{
return Update::forTopicAndPayload(Topic::NEW_ORPHAN_VISIT->value, [
'visit' => $this->orphanVisitTransformer->transform($visit),
'visit' => $visit->jsonSerialize(),
]);
}

View File

@@ -1,19 +0,0 @@
<?php
declare(strict_types=1);
namespace Shlinkio\Shlink\Core\Visit\Transformer;
use Shlinkio\Shlink\Common\Rest\DataTransformerInterface;
use Shlinkio\Shlink\Core\Visit\Entity\Visit;
class OrphanVisitDataTransformer implements DataTransformerInterface
{
/**
* @param Visit $visit
*/
public function transform($visit): array // phpcs:ignore
{
return $visit->jsonSerialize();
}
}