Fix new services implementation 10
This commit is contained in:
@@ -151,6 +151,7 @@ async def list_ingredients(
|
||||
skip: int = Query(0, ge=0, description="Number of records to skip"),
|
||||
limit: int = Query(100, ge=1, le=1000, description="Number of records to return"),
|
||||
category: Optional[str] = Query(None, description="Filter by category"),
|
||||
product_type: Optional[str] = Query(None, description="Filter by product type (ingredient or finished_product)"),
|
||||
is_active: Optional[bool] = Query(None, description="Filter by active status"),
|
||||
is_low_stock: Optional[bool] = Query(None, description="Filter by low stock status"),
|
||||
needs_reorder: Optional[bool] = Query(None, description="Filter by reorder needed"),
|
||||
@@ -171,6 +172,8 @@ async def list_ingredients(
|
||||
filters = {}
|
||||
if category:
|
||||
filters['category'] = category
|
||||
if product_type:
|
||||
filters['product_type'] = product_type
|
||||
if is_active is not None:
|
||||
filters['is_active'] = is_active
|
||||
if is_low_stock is not None:
|
||||
|
||||
@@ -101,6 +101,22 @@ class IngredientRepository(BaseRepository[Ingredient, IngredientCreate, Ingredie
|
||||
if filters:
|
||||
if filters.get('category'):
|
||||
query_filters['category'] = filters['category']
|
||||
if filters.get('product_type'):
|
||||
# Convert string to enum object
|
||||
from app.models.inventory import ProductType
|
||||
product_type_value = filters['product_type']
|
||||
try:
|
||||
# Find the enum member by value
|
||||
for enum_member in ProductType:
|
||||
if enum_member.value == product_type_value:
|
||||
query_filters['product_type'] = enum_member
|
||||
break
|
||||
else:
|
||||
# If not found, skip this filter
|
||||
logger.warning(f"Invalid product_type value: {product_type_value}")
|
||||
except Exception as e:
|
||||
logger.warning(f"Error converting product_type: {e}")
|
||||
# Skip invalid product_type filter
|
||||
if filters.get('is_active') is not None:
|
||||
query_filters['is_active'] = filters['is_active']
|
||||
if filters.get('is_perishable') is not None:
|
||||
|
||||
Reference in New Issue
Block a user