Files
back-end/src/main.py
2023-03-28 15:12:11 -06:00

41 lines
939 B
Python

from typing import List
from fastapi import Depends, FastAPI, HTTPException
from sqlalchemy.orm import Session
import crud
from database import SessionLocal, engine
from models import Base
from schemas import users
app = FastAPI()
Base.metadata.create_all(bind=engine)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.get("/")
async def root():
return {"message": "Hello world!"}
@app.post("/users", response_model=users.User)
async def create_user(user: users.UserCreate, db: Session = Depends(get_db)):
db_user = crud.get_user_by_username(db, username=user.username)
if db_user:
raise HTTPException(status_code=400, detail="Username already registered")
return crud.create_user(db=db, user=user)
@app.get("/users", response_model=List[users.User])
async def read_users(db: Session = Depends(get_db)):
users = crud.get_users(db)
return users