def add_ingredient(user_id: int, recipe_id: int, ingredient: Ingredient) -> Recipe: BaseService.is_object_exist(Recipe, recipe_id) BaseService.is_has_rights(Recipe, user_id, recipe_id) recipe = RecipeService.get(recipe_id) recipe.ingredients.add(ingredient) return recipe
def remove_from_recipe(user_id: int, recipe_id: int, tag: Tag) -> Tag: BaseService.is_object_exist(Recipe, recipe_id) BaseService.is_has_rights(Recipe, user_id, recipe_id) recipe = RecipeService.get(recipe_id) recipe.tags.remove(tag) TagService._decrease_tag_popularity(tag.pk) return tag
def add_to_recipe(user_id: int, recipe_id: int, tag: Tag) -> Tag: BaseService.is_object_exist(Recipe, recipe_id) BaseService.is_has_rights(Recipe, user_id, recipe_id) recipe = RecipeService.get(recipe_id) recipe.tags.add(tag) TagService._increase_tag_popularity(tag.pk) return tag
def add_recipe_step(user_id: int, recipe_id: int, recipe_step: RecipeStep) -> Recipe: BaseService.is_object_exist(Recipe, recipe_id) BaseService.is_has_rights(Recipe, user_id, recipe_id) recipe = RecipeService.get(recipe_id) RecipeService._increase_steps_count(recipe) RecipeService._set_step_number(recipe, recipe_step) recipe.recipe_steps.add(recipe_step) return recipe
def update(recipe_id: int, kwargs) -> RecipeRating: BaseService.is_object_exist(Recipe, recipe_id) recipe = RecipeService.get(recipe_id) rating = RecipeRatingService.get_by_recipe_id(recipe.rating.pk) mark = kwargs["rating"] mark_sum = rating.mark_sum + mark mark_count = rating.mark_count + 1 rating = RecipeRatingService._calculate_new_rating( mark_sum, mark_count) kwargs["rating"] = rating kwargs["mark_sum"] = mark_sum kwargs["mark_count"] = mark_count return BaseQuery.update(RecipeRating, recipe.rating.pk, kwargs)
def get_all_by_recipe_id(recipe_id: int) -> List[Tag]: BaseService.is_object_exist(Recipe, recipe_id) return TagQuery.get_all_by_recipe_id(recipe_id)
def get_all_by_recipe_id(recipe_id: int) -> List[RecipeComment]: BaseService.is_object_exist(Recipe, recipe_id) return RecipeCommentQuery.get_all_by_recipe_id(recipe_id)
def get_all_by_recipe_id(recipe_id: int): BaseService.is_object_exist(Recipe, recipe_id) return RecipeStepQuery.get_all_by_recipe_id(recipe_id)
def get(recipe_step_id: int) -> RecipeStep: BaseService.is_object_exist(RecipeStep, recipe_step_id) return BaseService.get(RecipeStep, recipe_step_id)
def get_by_recipe_id(recipe_id: int) -> RecipeRating: BaseService.is_object_exist(Recipe, recipe_id) return RecipeRatingQuery.get_by_recipe_id(recipe_id)
def get_all_by_recipe_id(recipe_id): BaseService.is_object_exist(Recipe, recipe_id) return IngredientQuery.get_all_by_recipe_id(recipe_id)
def get_all_by_tag_id(tag_id: int) -> List[Recipe]: BaseService.is_object_exist(Tag, tag_id) return RecipeQuery.get_all_by_tag_id(tag_id)