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

@Service public class MealService extends Object
A classe MealService fornece métodos para gerenciar operações relacionadas a refeições, incluindo criação, recuperação, atualização e exclusão de refeições. Ela interage com o MealRepository e o UserRepository para lidar com a persistência e recuperação de dados de refeições e usuários. Além disso, ela utiliza o ForbiddenWordsValidator para garantir que as refeições sigam certas restrições de conteúdo.
Since:
2023.2
Version:
1.0
Author:
Pedro Henrique Pereira de Oliveira
See Also:
  • Constructor Details

    • MealService

      public MealService()
  • Method Details

    • createMeal

      public MealResponseDTO createMeal(MealRequestDTO mealRequestDTO)
      Cria uma nova refeição com base no MealRequestDTO fornecido, valida seu conteúdo e a associa ao usuário correspondente que a criou. Retorna a refeição criada como um MealResponseDTO.
      Parameters:
      mealRequestDTO - O DTO contendo informações para criar a refeição.
      Returns:
      A refeição criada como um MealResponseDTO.
      Throws:
      DataNotFoundException - Se o usuário criador não for encontrado.
    • getAll

      public List<MealResponseDTO> getAll()
      Recupera uma lista de todas as refeições no sistema.
      Returns:
      Uma lista contendo todas as refeições no sistema.
    • getMealsByName

      public List<MealResponseDTO> getMealsByName(String name)
      Recupera uma lista de refeições com o nome especificado.
      Parameters:
      name - O nome das refeições a serem recuperadas.
      Returns:
      Uma lista de refeições que correspondem ao nome especificado.
    • getMealsById

      public MealResponseDTO getMealsById(String mealID)
      Recupera informações sobre uma refeição específica com base em seu ID.
      Parameters:
      mealID - O ID da refeição a ser recuperada.
      Returns:
      Informações sobre a refeição especificada como um MealResponseDTO.
      Throws:
      DataNotFoundException - Se a refeição com o ID especificado não for encontrada.
    • getMealsByTypeMeal

      public List<MealResponseDTO> getMealsByTypeMeal(TypeMeal typeMeal)
      Recupera uma lista de refeições do tipo especificado.
      Parameters:
      typeMeal - O tipo de refeições a serem recuperadas.
      Returns:
      Uma lista de refeições que correspondem ao tipo especificado.
    • updateMealInfo

      public MealResponseDTO updateMealInfo(String mealID, String userID, MealRequestDTO mealRequestDTO)
      Atualiza as informações de uma refeição específica, validando o conteúdo e garantindo que o usuário solicitante tenha a autorização necessária. Retorna a refeição atualizada como um MealResponseDTO.
      Parameters:
      mealID - O ID da refeição a ser atualizada.
      userID - O ID do usuário que está fazendo a solicitação de atualização.
      mealRequestDTO - O DTO contendo as informações atualizadas para a refeição.
      Returns:
      A refeição atualizada como um MealResponseDTO.
      Throws:
      UnauthorizedOperationException - Se a operação de atualização não for autorizada para o usuário solicitante.
      DataNotFoundException - Se a refeição com o ID especificado não for encontrada.
    • deleteMeal

      public void deleteMeal(String mealID, String userID)
      Exclui uma refeição específica, garantindo que o usuário solicitante tenha a autorização necessária.
      Parameters:
      mealID - O ID da refeição 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 refeição com o ID especificado não for encontrada.