diff options
Diffstat (limited to 'app/routers/user.py')
-rw-r--r-- | app/routers/user.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/routers/user.py b/app/routers/user.py new file mode 100644 index 0000000..1afe06e --- /dev/null +++ b/app/routers/user.py @@ -0,0 +1,27 @@ +from fastapi import FastAPI, Response, status, HTTPException, Depends, APIRouter +from .. import models, schemas, utils +from sqlalchemy.orm import Session +from ..database import get_db + +router = APIRouter(prefix = "/users", tags=["Users"]) + +@router.post("/", status_code=status.HTTP_201_CREATED, response_model=schemas.UserOut) +def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)): + #hash the password <-> user.password + hashed_password= utils.hash(user.password) + user.password = hashed_password + + new_user = models.User(**user.dict()) + db.add(new_user) + db.commit() # not sure why have to add+commit, but hey + db.refresh(new_user) # sama mis SQL: "RESPONDING *" + return new_user + +@router.get("/{id}", response_model=schemas.UserOut) +def get_user(id: int, db: Session = Depends(get_db)): + user = db.query(models.User).filter(models.User.id == id).first() + + if not user: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"User with id: {id} not found") + + return user |