Class AdocaoServicoImpl

java.lang.Object
br.com.pawsoncloud.servicos.impl.AdocaoServicoImpl
All Implemented Interfaces:
AdocaoServico

@Service public class AdocaoServicoImpl extends Object implements AdocaoServico
Classe que implementa a interface AdocaoServico.
Author:
Edielson Assis
  • Constructor Details

    • AdocaoServicoImpl

      public AdocaoServicoImpl()
  • Method Details

    • create

      public Adocao create(AdocaoDto adocaoDto)
      Método responsável por realizar uma adoção. Antes da adoção ser realizada, é realizado algumas verificações. 1 - O id do pet informado é válido? Se não, é lançado uma exceção. 2 - O pet está disponivel? Se não, é lançado uma exceção. 3 - Os dados do adotante são os mesmos do doador? Se sim, é lançado uma exceção. 4 - O adotante possui alguma adoção pendente? Se sim, é lançado uma exceção.
      Specified by:
      create in interface AdocaoServico
      Parameters:
      adocaoDto - contém os dados do adotante e do animal que será adotado.
      Returns:
      Adocao
      Throws:
      ObjectNotFoundException - é lançada caso o pet não seja encontrado.
      DataBaseException - é lançada caso o adotante seja o doador ou caso o usuário possua alguma adoçao pendente.
    • findByCpf

      public List<Adocao> findByCpf()
      Lista com todas as adoções realizadas pelo usuário. É utilizado o cpf do usuário para carregar a lista. Caso a lista esteja vazia, é lançado uma exceção.
      Specified by:
      findByCpf in interface AdocaoServico
      Returns:
      lista de adoções
      Throws:
      ObjectNotFoundException - é lançada caso nenhuma adoção seja encontrada.
    • update

      public Adocao update(Long id, AdocaoUpdateDto adocaoDto)
      Atualiza os dados da adoção com base no id informado. Caso a adoção não seja encontrada, é lançãdo uma exceção. Antes de atualizar, verifica se o usuário logado possui os mesmos dados do doador. Se não, outra exceção é lançada. Por fim, verifica se a adoção já foi finalizada. Se sim, uma exceção é lançada, negando a operação.
      Specified by:
      update in interface AdocaoServico
      Parameters:
      adocaoDto - adoção que será atualizada.
      id - parâmetro para atualização.
      Returns:
      adoção recém-atualizada.
      Throws:
      jakarta.persistence.EntityNotFoundException - capturada caso o usuário não seja encotrado.
      org.springframework.security.authentication.BadCredentialsException - é lançada caso as credenciais do usuário sejam inválidas.
      DataBaseException - é lançada caso a adoção tenha sido finalizada.
    • delete

      public void delete(Long id)
      Cancela uma adoção com base no id informado. Caso a adoção não seja encontrada, é lançãdo uma exceção. Antes de cancelar, verifica se o usuário logado possui os mesmos dados do doador. Se não, outra exceção é lançada. Por fim, verifica se a adoção já foi finalizada. Se sim, uma exceção é lançada, negando a operação.
      Specified by:
      delete in interface AdocaoServico
      Parameters:
      id - d da adoção que será cancelada.
      Throws:
      jakarta.persistence.EntityNotFoundException - capturada caso o usuário não seja encotrado.
      org.springframework.security.authentication.BadCredentialsException - é lançada caso as credenciais do usuário sejam inválidas.
      DataBaseException - é lançada caso a adoção tenha sido finalizada.