Coverage for opt/mealie/lib/python3.12/site-packages/mealie/routes/recipe/shared_routes.py: 41%
25 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-25 15:32 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-25 15:32 +0000
1from fastapi import APIRouter, Depends, HTTPException 1a
2from pydantic import UUID4 1a
3from sqlalchemy.orm.session import Session 1a
5from mealie.core.root_logger import get_logger 1a
6from mealie.db.db_setup import generate_session 1a
7from mealie.repos.all_repositories import get_repositories 1a
8from mealie.schema.recipe import Recipe 1a
9from mealie.schema.response import ErrorResponse 1a
11router = APIRouter() 1a
13logger = get_logger() 1a
16@router.get("/shared/{token_id}", response_model=Recipe) 1a
17def get_shared_recipe(token_id: UUID4, session: Session = Depends(generate_session)): 1a
18 db = get_repositories(session, group_id=None, household_id=None)
20 token_summary = db.recipe_share_tokens.get_one(token_id)
21 if token_summary and token_summary.is_expired:
22 try:
23 db.recipe_share_tokens.delete(token_id)
24 session.commit()
25 except Exception:
26 logger.exception(f"Failed to delete expired token {token_id}")
27 session.rollback()
28 token_summary = None
30 if token_summary is None:
31 raise HTTPException(status_code=404, detail=ErrorResponse.respond("Token Not Found"))
33 return token_summary.recipe