Coverage for opt/mealie/lib/python3.12/site-packages/mealie/routes/parser/ingredient_parser.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 03:04 +0000

1from fastapi import APIRouter 

2 

3from mealie.routes._base import BaseUserController, controller 

4from mealie.schema.recipe import ParsedIngredient 

5from mealie.schema.recipe.recipe_ingredient import IngredientRequest, IngredientsRequest 

6from mealie.services.parser_services import get_parser 

7 

8router = APIRouter(prefix="/parser") 

9 

10 

11@controller(router) 

12class IngredientParserController(BaseUserController): 

13 @router.post("/ingredient", response_model=ParsedIngredient) 

14 async def parse_ingredient(self, ingredient: IngredientRequest): 

15 parser = get_parser(ingredient.parser, self.group_id, self.session) 

16 response = await parser.parse([ingredient.ingredient]) 

17 return response[0] 

18 

19 @router.post("/ingredients", response_model=list[ParsedIngredient]) 

20 async def parse_ingredients(self, ingredients: IngredientsRequest): 

21 parser = get_parser(ingredients.parser, self.group_id, self.session) 

22 return await parser.parse(ingredients.ingredients)