java.lang.Object
br.com.receitaquedoimenos.ReceitaQueDoiMenos.services.UserService

@Service public class UserService extends Object
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 Details

    • UserService

      public UserService()
  • Method Details

    • getInfo

      public UserResponseDTO getInfo(String userID)
      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

      public List<MealResponseDTO> getAllCreatedMeals(String userID)
      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

      public List<MealResponseDTO> getAllFavoriteMeals(String userID)
      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

      public List<DrinkResponseDTO> getAllCreatedDrinks(String userID)
      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

      public List<DrinkResponseDTO> getAllFavoriteDrinks(String userID)
      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

      public UserResponseDTO 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.
      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

      public void deleteAccount(String userID)
      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

      public void likeMeal(String userID, String mealID)
      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

      public void unlikeMeal(String userID, String mealID)
      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

      public void likeDrink(String userID, String drinkID)
      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

      public void unlikeDrink(String userID, String drinkID)
      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.