Desk-Back2 / app /routes /menu.py
Fred808's picture
Upload 77 files
5111c4b verified
from fastapi import APIRouter, Depends, HTTPException
from typing import List
from ..models.menu import MenuItem, Category
from ..core.auth import get_current_user
from ..services.menu_service import MenuService
router = APIRouter(prefix="/api/menu", tags=["menu"])
@router.get("", response_model=List[MenuItem])
async def get_menu_items(
current_user = Depends(get_current_user),
menu_service: MenuService = Depends()
):
return await menu_service.get_menu_items()
@router.post("", response_model=MenuItem)
async def create_menu_item(
item: MenuItem,
current_user = Depends(get_current_user),
menu_service: MenuService = Depends()
):
return await menu_service.create_menu_item(item)
@router.put("/{item_id}", response_model=MenuItem)
async def update_menu_item(
item_id: int,
item: MenuItem,
current_user = Depends(get_current_user),
menu_service: MenuService = Depends()
):
updated_item = await menu_service.update_menu_item(item_id, item)
if not updated_item:
raise HTTPException(status_code=404, detail="Menu item not found")
return updated_item
@router.delete("/{item_id}")
async def delete_menu_item(
item_id: int,
current_user = Depends(get_current_user),
menu_service: MenuService = Depends()
):
success = await menu_service.delete_menu_item(item_id)
if not success:
raise HTTPException(status_code=404, detail="Menu item not found")
return {"message": "Menu item deleted successfully"}
@router.get("/categories", response_model=List[Category])
async def get_categories(
current_user = Depends(get_current_user),
menu_service: MenuService = Depends()
):
return await menu_service.get_categories()