Class DrinkService
java.lang.Object
br.com.receitaquedoimenos.ReceitaQueDoiMenos.services.DrinkService
A classe DrinkService fornece métodos para gerenciar operações relacionadas a bebidas, incluindo criação,
recuperação, atualização e exclusão de bebidas. Ela interage com o DrinkRepository e o UserRepository
para lidar com a persistência e recuperação de dados de bebidas e usuários. Além disso, ela utiliza o
ForbiddenWordsValidator para garantir que as bebidas sigam certas restrições de conteúdo.
- Since:
- 2023.2
- Version:
- 1.0
- Author:
- Pedro Henrique Pereira de Oliveira
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateDrink(DrinkRequestDTO drinkRequestDTO) Cria uma nova bebida com base no DrinkRequestDTO fornecido, valida seu conteúdo e a associa ao usuário correspondente que a criou.voiddeleteDrink(String drinkID, String userID) Exclui uma bebida especÃfica, garantindo que o usuário solicitante tenha a autorização necessária.Recupera uma lista de todas as bebidas no sistema.getDrinkById(String drinkID) Recupera informações sobre uma bebida especÃfica com base em seu ID.getDrinksByName(String drinkName) Recupera uma lista de bebidas com o nome especificado.getDrinksByType(TypeDrink type) Recupera uma lista de bebidas do tipo especificado.updateDrink(String drinkID, String userID, DrinkRequestDTO drinkRequestDTO) Atualiza as informações de uma bebida especÃfica, validando o conteúdo e garantindo que o usuário solicitante tenha a autorização necessária.
-
Constructor Details
-
DrinkService
public DrinkService()
-
-
Method Details
-
createDrink
Cria uma nova bebida com base no DrinkRequestDTO fornecido, valida seu conteúdo e a associa ao usuário correspondente que a criou. Retorna a bebida criada como um DrinkResponseDTO.- Parameters:
drinkRequestDTO- O DTO contendo informações para criar a bebida.- Returns:
- A bebida criada como um DrinkResponseDTO.
- Throws:
DataNotFoundException- Se o usuário criador não for encontrado.
-
getDrinksByName
Recupera uma lista de bebidas com o nome especificado.- Parameters:
drinkName- O nome das bebidas a serem recuperadas.- Returns:
- Uma lista de bebidas que correspondem ao nome especificado.
-
getDrinksByType
Recupera uma lista de bebidas do tipo especificado.- Parameters:
type- O tipo de bebidas a serem recuperadas.- Returns:
- Uma lista de bebidas que correspondem ao tipo especificado.
-
getAllDrinks
Recupera uma lista de todas as bebidas no sistema.- Returns:
- Uma lista contendo todas as bebidas no sistema.
-
getDrinkById
Recupera informações sobre uma bebida especÃfica com base em seu ID.- Parameters:
drinkID- O ID da bebida a ser recuperada.- Returns:
- Informações sobre a bebida especificada como um DrinkResponseDTO.
- Throws:
DataNotFoundException- Se a bebida com o ID especificado não for encontrada.
-
updateDrink
Atualiza as informações de uma bebida especÃfica, validando o conteúdo e garantindo que o usuário solicitante tenha a autorização necessária. Retorna a bebida atualizada como um DrinkResponseDTO.- Parameters:
drinkID- O ID da bebida a ser atualizada.userID- O ID do usuário que está fazendo a solicitação de atualização.drinkRequestDTO- O DTO contendo as informações atualizadas para a bebida.- Returns:
- A bebida atualizada como um DrinkResponseDTO.
- Throws:
UnauthorizedOperationException- Se a operação de atualização não for autorizada para o usuário solicitante.DataNotFoundException- Se a bebida com o ID especificado não for encontrada.
-
deleteDrink
Exclui uma bebida especÃfica, garantindo que o usuário solicitante tenha a autorização necessária.Após a exclusão, uma operação em cascada é executada, apagando o ID do drinks em outras possÃveis collections.
- Parameters:
drinkID- O ID da bebida a ser excluÃda.userID- O ID do usuário que está fazendo a solicitação de exclusão.- Throws:
UnauthorizedOperationException- Se a operação de exclusão não for autorizada para o usuário solicitante.DataNotFoundException- Se a bebida com o ID especificado não for encontrada.
-