sql_app: another api app to test
In sql_app/main.py, new path fucntions are tested for database connections, quary. Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
parent
b0dc22070e
commit
0d66c6f50f
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@ server.key
|
||||
server.orig.key
|
||||
__pycache__
|
||||
venv/
|
||||
*.db
|
||||
|
1
sql_app/.gitignore
vendored
Normal file
1
sql_app/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
__pycache__/
|
@ -0,0 +1,53 @@
|
||||
from fastapi import Depends, FastAPI, 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("/users/", response_model=schemas.User)
|
||||
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)
|
||||
|
||||
|
||||
@app.get("/users/", response_model=list[schemas.User])
|
||||
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
|
||||
|
||||
|
||||
@app.get("/users/{user_id}", response_model=schemas.User)
|
||||
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
|
||||
|
||||
|
||||
@app.post("/users/{user_id}/items/", response_model=schemas.IotEntity)
|
||||
def create_item_for_user(
|
||||
user_id: int, item: schemas.IotEntityCreate, db: Session = Depends(get_db)
|
||||
):
|
||||
return crud.create_user_item(db=db, item=item, user_id=user_id)
|
||||
|
||||
|
||||
@app.get("/items/", response_model=list[schemas.IotEntity])
|
||||
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
|
@ -12,7 +12,7 @@ class User(Base):
|
||||
hashed_password = Column(String)
|
||||
is_active = Column(Boolean, default=True)
|
||||
|
||||
items = relationship("Item", back_populates="owner")
|
||||
#items = relationship("Item", back_populates="owner")
|
||||
|
||||
|
||||
class IotEntity(Base):
|
||||
@ -20,6 +20,6 @@ class IotEntity(Base):
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
description = Column(String, index=True)
|
||||
owner_id = Column(Integer, ForeignKey("users.id"))
|
||||
owner_id = Column(Integer, ForeignKey("user_accounts.id"))
|
||||
|
||||
owner = relationship("User", back_populates="items")
|
||||
#owner = relationship("User", back_populates="items")
|
||||
|
Loading…
Reference in New Issue
Block a user