| | from fastapi import Depends, FastAPI, HTTPException |
| | from sqlalchemy.orm import Session |
| | import crud |
| | import models |
| | import schemas |
| | from database import SessionLocal, engine |
| | from app import llm_router |
| | from fastapi import APIRouter, FastAPI |
| | models.Base.metadata.create_all(bind=engine) |
| |
|
| | |
| | def get_db(): |
| | db = SessionLocal() |
| | try: |
| | yield db |
| | finally: |
| | db.close() |
| |
|
| | user_router = APIRouter(prefix="/user") |
| |
|
| | @user_router.post("/users/", response_model=schemas.User, tags=["users"]) |
| | def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)): |
| | db_user = crud.get_user_by_email(db, email=user.email) |
| | if db_user: |
| | raise HTTPException(status_code=400, detail="Email already registered") |
| | return crud.create_user(db=db, user=user) |
| |
|
| |
|
| | @user_router.get("/users/", response_model=list[schemas.User], tags=["users"]) |
| | def read_users(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
| | users = crud.get_users(db, skip=skip, limit=limit) |
| | return users |
| |
|
| |
|
| | @user_router.get("/users/{user_id}", response_model=schemas.User, tags=["users"] ) |
| | def read_user(user_id: int, db: Session = Depends(get_db)): |
| | db_user = crud.get_user(db, user_id=user_id) |
| | if db_user is None: |
| | raise HTTPException(status_code=404, detail="User not found") |
| | return db_user |
| |
|
| |
|
| | @user_router.post("/users/{user_id}/items/", response_model=schemas.Item, tags=["users"] ) |
| | def create_item_for_user( |
| | user_id: int, item: schemas.ItemCreate, db: Session = Depends(get_db) |
| | ): |
| | return crud.create_user_item(db=db, item=item, user_id=user_id) |
| |
|
| |
|
| | @user_router.get("/items/", response_model=list[schemas.Item], tags=["users"] ) |
| | def read_items(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): |
| | items = crud.get_items(db, skip=skip, limit=limit) |
| | return items |
| |
|
| |
|
| | app = FastAPI( |
| | docs_url="/", |
| | title="OpenGenAI", |
| | description="Your Excellect AI Physician") |
| |
|
| | app.include_router(user_router) |
| | app.include_router(llm_router) |