district09/php_package_dg-flanders-basicregisters

View on GitHub
src/Normalizer/FromJson/Municipality/MunicipalityNamesNormalizer.php

Summary

Maintainability
A
1 hr
Test Coverage
A
100%
<?php

declare(strict_types=1);

namespace DigipolisGent\Flanders\BasicRegisters\Normalizer\FromJson\Municipality;

use DigipolisGent\Flanders\BasicRegisters\Value\Municipality\MunicipalityNames;

/**
 * Normalizes JSON data into a MunicipalityNames collection.
 */
final class MunicipalityNamesNormalizer
{
    /**
     * Normalize the json data.
     *
     * @param object $jsonData
     *
     * @return \DigipolisGent\Flanders\BasicRegisters\Value\Municipality\MunicipalityNames
     */
    public function normalize(object $jsonData): MunicipalityNames
    {
        $nameNormalizer = new MunicipalityNameNormalizer();
        $municipalityNames = [];
        foreach ($jsonData->gemeenten as $municipalityData) {
            $municipalityNames[] = $nameNormalizer->normalize($municipalityData);
        }

        return new MunicipalityNames(...$municipalityNames);
    }
}