<?php namespace App\Mappers;

use App\Entities\CEP\CEP;
use App\Utils\BrasilUtils;

class CEPMapper
{
    public static function getCEPfromData (array $data) : CEP {
          $cep = CEP::builder()
            ->setId($data['id'])
            ->setCep($data['cep'])
            ->setCidade($data['cidade'])
            ->setEstado($data['estado'])
            ->setLogradouro($data['logradouro'])
            ->setBairro($data['bairro'])
            ->build();
        return $cep;
    }

    public static function getCEPFromCURL ($curl) : ?CEP {
        $response = json_decode(curl_exec($curl), true);
        return !$response || $response['erro']
            ? null
            : CEP::builder()
                ->setCep($response['cep'])
                ->setEstado(BrasilUtils::uf_to_estado($response['uf']))
                ->setCidade($response['localidade'])
                ->setBairro($response['bairro'])
                ->setLogradouro($response['logradouro'])
                ->build();
    }
}
