summaryrefslogtreecommitdiff
path: root/app/routers/user.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/routers/user.py')
-rw-r--r--app/routers/user.py27
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