Objetivo
Este documento tem por objetivo explicitar os objetos responsáveis por realizar as consultas nacionais de CNPJ.
Namespaces
O desenvolvimento foi distribuído nos seguintes namespaces:
- Cbanet.Server.Core.ConsultasNacionais.CNPJ
- Cbanet.Server.Models.ConsultasNacionais.CNPJ
V.O.s
O objeto ResultadoConsultaVO é o V.O. principal da consulta .
Este objeto possui a propriedade filha Endereco que corresponde a conversão da seguinte estrutura JSON gerada pelo provedor:
{ "info": { "resultado": 1, "cep": "", "logradouro": "", "bairro": "", "cidade": "", "uf": "", "pais": "", "lat": -15.0, "lng": -56.0, "cod_gia": "", "link_mapa": "", "img_mapa": "", "embed_mapa": "", "ecapital": "S", "capital": "", "ddd": "", "cod_ibge_estado": 0, "cod_ibge_municipio": "", "area_municipio": "", "populacao_homens": "", "populacao_mulheres": "", "populacao_total": "", "densidade": "", "gentilico": "", "regiao": "", "mesorregiao": "", "microregiao": "", "rendimento_medio_mensal_rural": "", "rendimento_medio_mensal_urbana": "", "bioma": "", "fundada": "" } }
As propriedades referentes a Data, o provedor sempre disponibilizará no formato DD/MM/YYYY.
Business
Todas as regras de consulta estão concentradas no objeto ConsultadorCep.
Este objeto possui dependência com as interfaces IWebClient, IBairroBusiness e ICidadeBusiness.
Ele possui apenas uma função pública chamada Consultar que sempre retorna um objeto do tipo ResultadoConsultaVO.
Regras
A função de consulta exige apenas um parâmetro chamado cep.
- Este CEP deve ser válido e ter exatamente 8 dígitos.
- A função aceita CEP formatado ou sem formato;
- Ela cadastra automaticamente tanto o bairro quanto a cidade, quando os mesmos não existirem;
- A consulta sempre retornará uma instância válida;
- Quando ocorrerem erros de conversão JSON ou Timeout de comunicação com o provedor, o resultado da consulta terá a propriedade Status igual a falso;
Ocorrendo a conversão corretamente, o sistema irá gerar a propriedade Endereco com uma instância válida;