Class AddressEntityServiceImpl
- All Implemented Interfaces:
AddressEntityService
AddressEntityServiceImpl é responsável por fornecer serviços relacionados ao endereço.
Isso compreende a criação e armazenamento de um objeto endereço.
Para o armazenamento é utilizado um repositório de endereços injetado no serviço como dependência.
Ao iniciar, o serviço valida se o objeto endereço não é nulo nem vazio.
Em caso de falha na validação, é lançada uma exceção AddressEntityFailuresException com a mensagem específica.
Depois, é criada uma nova instância de Address usando AddressServiceContract, que pode gerar exceções durante a criação,
as quais são capturadas e tratadas, emitindo novas AddressEntityFailuresException em caso de erros.
Por fim, o serviço faz uso do objeto Address criado para armazená-lo no repositório correspondente,
e retorna o objeto armazenado.
A classe oferece dois métodos principais:
createAndSaveAddressFromDtoque cria um endereço a partir de um DTO e o salva no repositório.mapAddressAndSaveToRepositoryque trata do mapeamento do objeto endereço para a entidade correspondente e posterior armazenamento no repositório.
Implementa a interface AddressEntityService.
- Since:
- 1.1.0
- Author:
- diegoneves
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Integerstatic final Stringstatic final Stringprivate final RetrieveAddressAdapterprivate final AddressServiceContractstatic final Stringstatic final Integerprivate final AddressRepositorystatic final int -
Constructor Summary
ConstructorsConstructorDescriptionAddressEntityServiceImpl(AddressRepository repository, RetrieveAddressAdapter addressAdapter) -
Method Summary
Modifier and TypeMethodDescriptioncreateAndSaveAddressFromDto(AddressDTO address) Cria e salva uma entidade de endereçoAddresscom base nas informações fornecidas no DTO de EndereçoAddressDTO.private voidmapAddressAndSaveToRepository(Address address) Este método é responsável por mapear um objeto de endereço para a entidade relevante e salvá-lo no repositório.restrieveAddress(String zipcode) Recupera um endereço usando o CEP fornecido.
-
Field Details
-
ADDRESS_CREATION_ERROR
-
ERROR_MAPPING_ADDRESS
-
CREATION_FAILURE_LOG
- See Also:
-
ADDRESS_MAPPING_ERROR_LOG
- See Also:
-
ADDRESS_REGISTRATION_SUCCESS_LOG
- See Also:
-
ZIPCODE_INVALID_FAILURE
public static final int ZIPCODE_INVALID_FAILURE- See Also:
-
repository
-
addressServiceContract
-
addressAdapter
-
-
Constructor Details
-
AddressEntityServiceImpl
public AddressEntityServiceImpl(AddressRepository repository, RetrieveAddressAdapter addressAdapter)
-
-
Method Details
-
createAndSaveAddressFromDto
public Address createAndSaveAddressFromDto(AddressDTO address) throws AddressEntityFailuresException Description copied from interface:AddressEntityServiceCria e salva uma entidade de endereçoAddresscom base nas informações fornecidas no DTO de EndereçoAddressDTO.Este método recebe um objeto
AddressDTO, que contém as informações de endereço, e retorna um objetoAddress, que representa a entidade de endereço criada e salva.O processamento inclui a conversão do DTO de endereço em uma entidade de endereço, validando as informações e salvando a entidade na base de dados. Em caso de falha na criação da entidade de endereço, uma exceção
AddressEntityFailuresExceptionserá lançada.- Specified by:
createAndSaveAddressFromDtoin interfaceAddressEntityService- Parameters:
address- Um objetoAddressDTOcontendo as informações do endereço para criação da entidade de endereço.- Returns:
- A entidade de endereço
Addresscriada e salva. - Throws:
AddressEntityFailuresException- Se ocorrer uma falha durante a criação da entidade de endereço.
-
mapAddressAndSaveToRepository
Este método é responsável por mapear um objeto de endereço para a entidade relevante e salvá-lo no repositório. Usa oBuilderMapperpara mapear o endereço, depois salva no repositório.- Parameters:
address- - Um objeto de endereço que precisa ser mapeado e salvo.- Throws:
AddressEntityFailuresException- - Se ocorrer uma exceção durante o mapeamento, será lançada umaAddressEntityFailuresException. A exceção original será anexada como causa.
-
restrieveAddress
Description copied from interface:AddressEntityServiceRecupera um endereço usando o CEP fornecido.Este método tem como objetivo fazer uma requisição para recuperar um endereço através de um CEP fornecido como parâmetro, retornando um objeto
AddressApiResponseDTOcontendo os detalhes do endereço.O método interage com um serviço
RetrieveAddressAdapterpara realizar a requisição e obter a resposta correspondente. Após obter a resposta, a mesma é convertida paraAddressApiResponseDTOe retorna ao chamador. Em caso de falha na recuperação do endereço, como por exemplo CEP nulo ou vazio, uma exceçãoAddressEntityFailuresExceptionserá lançada.- Specified by:
restrieveAddressin interfaceAddressEntityService- Parameters:
zipcode- UmStringque representa o CEP para o qual o endereço precisa ser recuperado.- Returns:
- Um objeto
AddressApiResponseDTOque representa o endereço recuperado do CEP fornecido.
-