Add helper functions for Meal
This commit is contained in:
parent
060c7ca0b2
commit
0bcf4903d8
76
helpers/meal_helpers.py
Normal file
76
helpers/meal_helpers.py
Normal file
@ -0,0 +1,76 @@
|
||||
from typing import List, Dict, Optional
|
||||
from sqlalchemy.orm import Session
|
||||
from models.meal import Meal
|
||||
|
||||
def get_all_meals(db: Session) -> List[Meal]:
|
||||
"""
|
||||
Get a list of all available meals.
|
||||
|
||||
Args:
|
||||
db: Database session
|
||||
|
||||
Returns:
|
||||
List of Meal objects
|
||||
"""
|
||||
return db.query(Meal).all()
|
||||
|
||||
def filter_meals_by_category(db: Session, category: str) -> List[Meal]:
|
||||
"""
|
||||
Get a list of meals filtered by category.
|
||||
|
||||
Args:
|
||||
db: Database session
|
||||
category: Category to filter by
|
||||
|
||||
Returns:
|
||||
List of Meal objects matching the category
|
||||
"""
|
||||
return db.query(Meal).filter(Meal.category == category).all()
|
||||
|
||||
def filter_meals_by_price_range(db: Session, min_price: float, max_price: float) -> List[Meal]:
|
||||
"""
|
||||
Get a list of meals filtered by price range.
|
||||
|
||||
Args:
|
||||
db: Database session
|
||||
min_price: Minimum price
|
||||
max_price: Maximum price
|
||||
|
||||
Returns:
|
||||
List of Meal objects within the specified price range
|
||||
"""
|
||||
return db.query(Meal).filter(Meal.price >= min_price, Meal.price <= max_price).all()
|
||||
|
||||
def get_meal_by_id(db: Session, meal_id: int) -> Optional[Meal]:
|
||||
"""
|
||||
Get a meal by its ID.
|
||||
|
||||
Args:
|
||||
db: Database session
|
||||
meal_id: ID of the meal
|
||||
|
||||
Returns:
|
||||
Meal object if found, None otherwise
|
||||
"""
|
||||
return db.query(Meal).filter(Meal.id == meal_id).first()
|
||||
|
||||
def update_meal_details(db: Session, meal_id: int, meal_data: Dict) -> Optional[Meal]:
|
||||
"""
|
||||
Update details of a meal.
|
||||
|
||||
Args:
|
||||
db: Database session
|
||||
meal_id: ID of the meal to update
|
||||
meal_data: Dictionary containing updated meal data
|
||||
|
||||
Returns:
|
||||
Updated Meal object if successful, None otherwise
|
||||
"""
|
||||
meal = get_meal_by_id(db, meal_id)
|
||||
if meal:
|
||||
for key, value in meal_data.items():
|
||||
setattr(meal, key, value)
|
||||
db.commit()
|
||||
db.refresh(meal)
|
||||
return meal
|
||||
return None
|
Loading…
x
Reference in New Issue
Block a user