main.py
main.py
try:
models.Base.metadata.create_all(bind=engine)
except Exception as e:
print(f"Error creating database tables: {e}")
raise
app = FastAPI()
# Dependency session
# function will stop where it will see yield
# Finally will call after sending the data in response
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
"""
Food APIs are below here:
"""
# Delete food
@app.delete("/food_menu/{food_id}/", tags=["Food Menu"])
def delete_food(food_id: int, db: Session = Depends(get_db)):
return crud.delete_food(db=db, food_id=food_id)
"""
Customer APIs are below here:
"""
# Delete Customer
@app.delete("/customer/", tags=["Customer"])
def delete_customer(customer_id: int, db: Session = Depends(get_db)):
return crud.delete_customer(db=db, customer_id=customer_id)
# Customer relationship
@app.get("/customer_relation/", tags=["Customer"])
def get_customer_relation(db: Session = Depends(get_db)):
return crud.customer_relation(db=db)
# Manual pagination
# Page size = number of result per page
# Page number = which number page you want as a result
@app.get("/custome_pagination", tags=["Customer"])
def customer_pagination(page_number: int, page_size: int, db: Session =
Depends(get_db)):
return crud.customer_pagination(db=db, page_number=page_number,
page_size=page_size)
"""
Food order APIs are below here:
"""
# Delete Order
@app.delete("/order/", tags=["Order"])
def delete_order(order_id: int, db: Session = Depends(get_db)):
return crud.delete_order(db=db, order_id=order_id)
# Add feedback
@app.post("/order_feedback/", tags=["Order"])
def feedback_add(feedback_content: schemas.Feedback_data, db: Session =
Depends(get_db)):
return crud.feedback_add(db=db, feedback_content=feedback_content)
# Delete feedback
@app.delete("/order_feedback/", tags=["Order"])
def delete_feedback(feedback_id: int, db: Session = Depends(get_db)):
return crud.delete_feedback(db=db, feedback_id=feedback_id)
"""
Bill APIs are below here:
"""
# Get bill
@app.get("/bill/{customer_id}/", tags=["Bill"])
def fetch_bill(customer_id: int, coupon_code: Optional[str] = None, db:
Session = Depends(get_db)):
return crud.fetch_bill(db=db, customer_id=customer_id,
coupon_code=coupon_code)
"""
Table APIs are below here:
"""
"""
Reservation APIs are below here:
"""
# Show Reservation
@app.get("/table_reservation/", tags=["Table Reservation"])
def get_reservation(db: Session = Depends(get_db)):
return crud.get_reservation(db=db)
# Add Reservation
@app.post("/table_reservation/", tags=["Table Reservation"])
def create_reservation(reservation_data: schemas.Do_reservation, db:
Session = Depends(get_db)):
return crud.create_reservation(reservation_data=reservation_data,
db=db)
# Delete Reservation
# Add reservation if any customer is waiting for same table for same slot
& date.
@app.delete("/table_reservation/", tags=["Table Reservation"])
def delete_reservation(r_id: int, db: Session = Depends(get_db)):
return crud.delete_reservation(db=db, r_id=r_id)
"""
Waiting APIs are below here:
"""
if __name__ == "__main__":
uvicorn.run("main:app")