mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-10-18 11:12:50 +00:00
63 lines
2.2 KiB
PHP
63 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Chill\MainBundle\Serializer\Normalizer;
|
|
|
|
use Chill\MainBundle\Entity\Address;
|
|
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
|
|
use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface;
|
|
use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait;
|
|
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
|
|
|
|
class AddressNormalizer implements NormalizerAwareInterface, NormalizerInterface
|
|
{
|
|
use NormalizerAwareTrait;
|
|
|
|
/**
|
|
* @param Address $address
|
|
*/
|
|
public function normalize($address, string $format = null, array $context = [])
|
|
{
|
|
$data = [
|
|
'address_id' => $address->getId(),
|
|
'text' => $address->isNoAddress() ? '' : $address->getStreetNumber().', '.$address->getStreet(),
|
|
'street' => $address->getStreet(),
|
|
'streetNumber' => $address->getStreetNumber(),
|
|
'postcode' => [
|
|
'id' => $address->getPostCode()->getId(),
|
|
'name' => $address->getPostCode()->getName(),
|
|
'code' => $address->getPostCode()->getCode(),
|
|
],
|
|
'country' => [
|
|
'id' => $address->getPostCode()->getCountry()->getId(),
|
|
'name' => $address->getPostCode()->getCountry()->getName(),
|
|
'code' => $address->getPostCode()->getCountry()->getCountryCode(),
|
|
],
|
|
'floor' => $address->getFloor(),
|
|
'corridor' => $address->getCorridor(),
|
|
'steps' => $address->getSteps(),
|
|
'flat' => $address->getFlat(),
|
|
'buildingName' => $address->getBuildingName(),
|
|
'distribution' => $address->getDistribution(),
|
|
'extra' => $address->getExtra(),
|
|
'validFrom' => $address->getValidFrom(),
|
|
'validTo' => $address->getValidTo(),
|
|
'addressReference' => $this->normalizer->normalize(
|
|
$address->getAddressReference(),
|
|
$format,
|
|
[AbstractNormalizer::GROUPS => ['read']]
|
|
),
|
|
];
|
|
|
|
return $data;
|
|
}
|
|
|
|
public function supportsNormalization($data, string $format = null)
|
|
{
|
|
return $data instanceof Address;
|
|
}
|
|
|
|
|
|
}
|