Skip to main content

ServicesRemedio

Visão Geral

'ServicesRemedio' é uma classe de serviço dentro da arquitetura Spring que gerencia operações de alto nível relacionadas a remédios. Esta classe encapsula a lógica de negócios e interage com o repositório para executar operações CRUD, garantindo a separação entre a camada de apresentação e a camada de persistência.

Componentes

  • repository ('RemediosRepository'): Um componente autowired que facilita a interação com a base de dados para operações sobre a entidade 'Remedio'.

Métodos

A classe 'ServicesRemedio' oferece os seguintes métodos para manipulação de remédios:

cadastrar

  • Descrição: Cadastra um novo remédio no sistema.
  • Parâmetros: 'DadosCadastroRemedio dados' - DTO que contém os dados necessários para cadastro.
  • etorno: 'ResponseEntity' contendo os dados do remédio cadastrado.
  • Anotações Específicas: '@Transactional' - Garante que a operação seja realizada dentro de uma transação.

listar

  • Descrição: Lista todos os remédios ativos no sistema.
  • Retorno: 'ResponseEntity<List<DadosListagemRemedios>>' com uma lista dos remédios ativos.
  • Transformação: Converte entidades 'Remedio' em 'DadosListagemRemedios' usando a função 'map'.

atualizar

  • Descrição: Atualiza as informações de um remédio existente.
  • Parâmetros: 'DadosAtualizarRemedio dados' - DTO com os dados para atualização.
  • Retorno: 'ResponseEntity<DadosDetalhamentoRemedio>' com os detalhes atualizados do remédio.

reativar

  • Descrição: Reativa um remédio que foi previamente inativado.
  • Parâmetros: 'Long id - ID do remédio a ser reativado.
  • Retorno: 'ResponseEntity<Void>' indicando o resultado da operação.

excluir

  • Descrição: Remove um remédio do sistema.
  • Parâmetros: 'Long id' - ID do remédio a ser excluído.
  • Retorno: 'ResponseEntity<Void>' indicando o resultado da operação.

inativar

  • Descrição: Inativa um remédio sem removê-lo do sistema.
  • Parâmetros: 'Long id' - ID do remédio a ser inativado.
  • Retorno: 'ResponseEntity<Void>' indicando o resultado da operação.

Segurança e Transações

  • Métodos como 'cadastrar', 'atualizar', 'excluir' e 'inativar' são marcados com '@Transactional para garantir que as operações sejam completadas integralmente ou revertidas em caso de falha.
  • Deve-se garantir que o acesso aos métodos seja controlado por meio de autenticação e autorizações apropriadas, provavelmente configuradas através do Spring Security.

Práticas de Código

  • Utilização de '@Autowired' para injeção de dependências, simplificando a configuração e garantindo a integridade do componente.
  • Uso de 'ResponseEntity' para oferecer flexibilidade na resposta HTTP, permitindo a fácil manipulação dos códigos de status e das mensagens de resposta.