main.py
unknown
python
a year ago
3.7 kB
12
Indexable
from fastapi import FastAPI, Depends, HTTPException
from sqlalchemy.orm import Session
from . import crud, models, schemas
from .database import SessionLocal, engine
models.Base.metadata.create_all(bind=engine)
app = FastAPI()
# Dependency
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.post("/standalone-products/", response_model=schemas.Product, tags=["Standalone Products"])
def create_standalone_product(product: schemas.ProductCreate, db: Session = Depends(get_db)):
"""Create a new standalone product and assign it to multiple categories."""
return crud.create_standalone_product(db=db, product=product)
@app.put("/standalone-products/{product_id}", response_model=schemas.Product, tags=["Standalone Products"])
def update_standalone_product(product_id: int, product: schemas.ProductCreate, db: Session = Depends(get_db)):
"""Update an existing standalone product and reassign it to multiple categories."""
db_product = crud.update_standalone_product(db, product_id=product_id, product=product)
if db_product is None:
raise HTTPException(status_code=404, detail="Product not found")
return db_product
@app.post("/standalone-configurable-products/", response_model=schemas.Product, tags=["Standalone Configurable Products"])
def create_standalone_configurable_product(product: schemas.ProductCreate, db: Session = Depends(get_db)):
"""Create a new standalone configurable product and assign it to multiple categories."""
return crud.create_standalone_configurable_product(db=db, product=product)
@app.put("/standalone-configurable-products/{product_id}", response_model=schemas.Product, tags=["Standalone Configurable Products"])
def update_standalone_configurable_product(product_id: int, product: schemas.ProductCreate, db: Session = Depends(get_db)):
"""Update an existing standalone configurable product and reassign it to multiple categories."""
db_product = crud.update_standalone_configurable_product(db, product_id=product_id, product=product)
if db_product is None:
raise HTTPException(status_code=404 raise HTTPException(status_code=404, detail="Product not found")
return db_product
@app.post("/standalone-group-products/", response_model=schemas.Product, tags=["Standalone Group Products"])
def create_standalone_group_product(product: schemas.ProductCreate, db: Session = Depends(get_db)):
"""Create a new standalone group product and assign it to multiple categories."""
return crud.create_standalone_group_product(db=db, product=product)
@app.put("/standalone-group-products/{product_id}", response_model=schemas.Product, tags=["Standalone Group Products"])
def update_standalone_group_product(product_id: int, product: schemas.ProductCreate, db: Session = Depends(get_db)):
"""Update an existing standalone group product and reassign it to multiple categories."""
db_product = crud.update_standalone_group_product(db, product_id=product_id, product=product)
if db_product is None:
raise HTTPException(status_code=404, detail="Product not found")
return db_product
@app.get("/menu-details/", response_model=dict, tags=["Menu"])
def get_menu_details(menu_id: int, menu_temp_id: int, brand: str, concept_id: int, db: Session = Depends(get_db)):
"""Get menu details along with categories, products, services, display days, and steps."""
result = crud.get_menu_details(db, menu_id, menu_temp_id, brand, concept_id)
if result is None:
raise HTTPException(status_code=404, detail="Menu not found")
return result
Editor is loading...
Leave a Comment