mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
48 lines
1.7 KiB
PHP
48 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Chill\ThirdPartyBundle\Serializer\Normalizer;
|
|
|
|
use Chill\ThirdPartyBundle\Entity\ThirdParty;
|
|
use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender;
|
|
use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface;
|
|
use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait;
|
|
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
|
|
|
|
|
|
class ThirdPartyNormalizer implements NormalizerInterface, NormalizerAwareInterface
|
|
{
|
|
use NormalizerAwareTrait;
|
|
|
|
private ThirdPartyRender $thirdPartyRender;
|
|
|
|
public function __construct(ThirdPartyRender $thirdPartyRender)
|
|
{
|
|
$this->thirdPartyRender = $thirdPartyRender;
|
|
}
|
|
|
|
public function normalize($thirdParty, string $format = null, array $context = [])
|
|
{
|
|
/** @var $thirdParty ThirdParty */
|
|
$data['type'] = 'thirdparty';
|
|
$data['text'] = $this->thirdPartyRender->renderString($thirdParty, []);
|
|
$data['id'] = $thirdParty->getId();
|
|
$data['kind'] = $thirdParty->getKind();
|
|
$data['address'] = $this->normalizer->normalize($thirdParty->getAddress(), $format,
|
|
[ 'address_rendering' => 'short' ]);
|
|
$data['phonenumber'] = $thirdParty->getTelephone();
|
|
$data['email'] = $thirdParty->getEmail();
|
|
$data['isChild'] = $thirdParty->isChild();
|
|
$data['parent'] = $this->normalizer->normalize($thirdParty->getParent(), $format, $context);
|
|
$data['civility'] = $this->normalizer->normalize($thirdParty->getCivility(), $format, $context);
|
|
$data['contactDataAnonymous'] = $thirdParty->isContactDataAnonymous();
|
|
|
|
return $data;
|
|
}
|
|
|
|
public function supportsNormalization($data, string $format = null)
|
|
{
|
|
return $data instanceof ThirdParty;
|
|
}
|
|
|
|
}
|