Class UserService
java.lang.Object
br.com.receitaquedoimenos.ReceitaQueDoiMenos.services.UserService
A classe UserService fornece métodos para realizar operações relacionadas a usuários, incluindo recuperação de informações,
manipulação de refeições e bebidas criadas e favoritas, atualização de perfil e interações de "curtir" e "descurtir" com
refeições e bebidas. Interage com os repositórios UserRepository, MealRepository e DrinkRepository para persistência e
recuperação de dados de usuários, refeições e bebidas, respectivamente. Além disso, utiliza o UserMapper e os validadores
de palavras proibidas (ForbiddenWordsValidator) para mapeamento de dados e validação de informações do usuário.
- Since:
- 2023.2
- Version:
- 1.0
- Author:
- Pedro Henrique Pereira de Oliveira
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddeleteAccount(String userID) Exclui a conta de um usuário com base no ID do usuário, juntamente com todas as suas refeições associadasgetAllCreatedDrinks(String userID) Obtém todas as bebidas criadas por um usuário com base no ID do usuário.getAllCreatedMeals(String userID) Obtém todas as refeições criadas por um usuário com base no ID do usuário.getAllFavoriteDrinks(String userID) Obtém todas as bebidas favoritas de um usuário com base no ID do usuário.getAllFavoriteMeals(String userID) Obtém todas as refeições favoritas de um usuário com base no ID do usuário.Obtém as informações de um usuário com base no ID do usuário.voidAdiciona uma bebida à lista de bebidas favoritas de um usuário.voidAdiciona uma refeição à lista de refeições favoritas de um usuário.voidunlikeDrink(String userID, String drinkID) Remove uma bebida da lista de bebidas favoritas de um usuário.voidunlikeMeal(String userID, String mealID) Remove uma refeição da lista de refeições favoritas de um usuário.updateProfileInfo(String userID, UserRequestDTO userRequestDTO) Atualiza as informações do perfil de um usuário com base no ID do usuário e nas informações fornecidas.
-
Constructor Details
-
UserService
public UserService()
-
-
Method Details
-
getInfo
Obtém as informações de um usuário com base no ID do usuário.- Parameters:
userID- O ID do usuário para o qual as informações estão sendo recuperadas.- Returns:
- As informações do usuário como um UserResponseDTO.
- Throws:
DataNotFoundException- Se o usuário com o ID especificado não for encontrado.
-
getAllCreatedMeals
Obtém todas as refeições criadas por um usuário com base no ID do usuário.- Parameters:
userID- O ID do usuário para o qual as refeições estão sendo recuperadas.- Returns:
- Uma lista de refeições criadas pelo usuário como MealResponseDTO.
- Throws:
DataNotFoundException- Se o usuário com o ID especificado não for encontrado ou não tiver refeições criadas.
-
getAllFavoriteMeals
Obtém todas as refeições favoritas de um usuário com base no ID do usuário.- Parameters:
userID- O ID do usuário para o qual as refeições favoritas estão sendo recuperadas.- Returns:
- Uma lista de refeições favoritas do usuário como MealResponseDTO.
- Throws:
DataNotFoundException- Se o usuário com o ID especificado não for encontrado ou não tiver refeições favoritas.
-
getAllCreatedDrinks
Obtém todas as bebidas criadas por um usuário com base no ID do usuário.- Parameters:
userID- O ID do usuário para o qual as bebidas estão sendo recuperadas.- Returns:
- Uma lista de bebidas criadas pelo usuário como DrinkResponseDTO.
- Throws:
DataNotFoundException- Se o usuário com o ID especificado não for encontrado ou não tiver bebidas criadas.
-
getAllFavoriteDrinks
Obtém todas as bebidas favoritas de um usuário com base no ID do usuário.- Parameters:
userID- O ID do usuário para o qual as bebidas favoritas estão sendo recuperadas.- Returns:
- Uma lista de bebidas favoritas do usuário como DrinkResponseDTO.
- Throws:
DataNotFoundException- Se o usuário com o ID especificado não for encontrado ou não tiver bebidas favoritas.
-
updateProfileInfo
Atualiza as informações do perfil de um usuário com base no ID do usuário e nas informações fornecidas.- Parameters:
userID- O ID do usuário cujo perfil está sendo atualizado.userRequestDTO- O DTO contendo as informações atualizadas do usuário.- Returns:
- As informações do usuário atualizadas como um UserResponseDTO.
- Throws:
ConflictDataException- Se já existir um usuário com o mesmo e-mail no sistema.DataNotFoundException- Se o usuário com o ID especificado não for encontrado.
-
deleteAccount
Exclui a conta de um usuário com base no ID do usuário, juntamente com todas as suas refeições associadas- Parameters:
userID- O ID do usuário cuja conta está sendo excluÃda.- Throws:
DataNotFoundException- Se o usuário com o ID especificado não for encontrado.
-
likeMeal
Adiciona uma refeição à lista de refeições favoritas de um usuário.- Parameters:
userID- O ID do usuário que está adicionando a refeição aos favoritos.mealID- O ID da refeição que está sendo adicionada aos favoritos.- Throws:
UnauthorizedOperationException- Se o usuário estiver tentando curtir sua própria refeição.DataNotFoundException- Se o usuário ou a refeição não for encontrado.
-
unlikeMeal
Remove uma refeição da lista de refeições favoritas de um usuário.- Parameters:
userID- O ID do usuário que está removendo a refeição dos favoritos.mealID- O ID da refeição que está sendo removida dos favoritos.- Throws:
DataNotFoundException- Se o usuário ou a refeição não for encontrado.
-
likeDrink
Adiciona uma bebida à lista de bebidas favoritas de um usuário.- Parameters:
userID- O ID do usuário que está adicionando a bebida aos favoritos.drinkID- O ID da bebida que está sendo adicionada aos favoritos.- Throws:
UnauthorizedOperationException- Se o usuário estiver tentando curtir sua própria bebida.DataNotFoundException- Se o usuário ou a bebida não for encontrado.
-
unlikeDrink
Remove uma bebida da lista de bebidas favoritas de um usuário.- Parameters:
userID- O ID do usuário que está removendo a bebida dos favoritos.drinkID- O ID da bebida que está sendo removida dos favoritos.- Throws:
DataNotFoundException- Se o usuário ou a bebida não for encontrado.
-