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 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 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_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[RecipeComment]: BaseService.is_object_exist(Recipe, recipe_id) return RecipeCommentQuery.get_all_by_recipe_id(recipe_id)
def add(tag: Tag) -> Tag: return BaseService.add(tag)
def get(recipe_comment_id: int) -> RecipeComment: return BaseService.get(RecipeComment, recipe_comment_id)
def delete(user_id, recipe_comment_id: int): return BaseService.delete(RecipeComment, user_id, recipe_comment_id)
def get(product_id: int) -> Product: return BaseService.get(Product, product_id)
def add(ingredient: Ingredient) -> Ingredient: return BaseService.add(ingredient)
def get_or_create(kwargs) -> Ingredient: return BaseService.get_or_create(Ingredient, kwargs)
def get_all() -> List[Ingredient]: return BaseService.get_all(Ingredient)
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() -> List[Tag]: return BaseService.get_all(Tag)
def get(recipe_rating_id: int) -> RecipeRating: return BaseService.get(RecipeRating, recipe_rating_id)
def add(recipe_rating: RecipeRating) -> RecipeRating: return BaseService.add(recipe_rating)
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_or_create(kwargs): return BaseService.get_or_create(Tag, kwargs)
def add(product: Product) -> Product: BaseService.is_duplicated(Product, "name", product.name) return BaseService.add(product)
def get(tag_id: int) -> Tag: return BaseService.get(Tag, tag_id)
def get(ingredient_id: int) -> Ingredient: return BaseService.get(Ingredient, ingredient_id)
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 add(recipe_step: RecipeStep) -> RecipeStep: return BaseService.add(recipe_step)
def get(recipe_step_id: int) -> RecipeStep: BaseService.is_object_exist(RecipeStep, recipe_step_id) return BaseService.get(RecipeStep, recipe_step_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_or_create(kwargs) -> Product: return BaseService.get_or_create(Product, kwargs)
def add(recipe_comment: RecipeComment) -> RecipeComment: return BaseService.add(recipe_comment)
def get_all() -> List[Product]: return BaseService.get_all(Product)
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)