Backend finished
Co-authored-by: Álvaro <alvaro6gv@users.noreply.github.com>
This commit is contained in:
44
backend/app/routes/users.py
Normal file
44
backend/app/routes/users.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
from app.db.database import get_db
|
||||
from app.models.user import UserModel
|
||||
from app.schemas.user import UserRead, UserRegister
|
||||
from app.core.security import hash_password
|
||||
import pyotp
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/users", response_model=List[UserRead])
|
||||
def get_all_users(db: Session = Depends(get_db)):
|
||||
users = db.query(UserModel).all()
|
||||
if not users:
|
||||
raise HTTPException(status_code=404, detail="No hay usuarios registrados")
|
||||
return users
|
||||
|
||||
@router.get("/users/{user_id}", response_model=UserRead)
|
||||
def get_user_by_id(user_id: int, db: Session = Depends(get_db)):
|
||||
user = db.query(UserModel).filter(UserModel.user_id == user_id).first()
|
||||
if not user:
|
||||
raise HTTPException(status_code=404, detail="No se ha encontrado el usuario.")
|
||||
|
||||
return user
|
||||
|
||||
@router.post("/users", response_model=UserRead)
|
||||
async def create_user(user: UserRegister, db: Session = Depends(get_db)):
|
||||
existing_user = db.query(UserModel).filter(UserModel.user_name == user.user_name).first()
|
||||
if existing_user:
|
||||
raise HTTPException(status_code=400, detail="El nombre de usuario ya existe")
|
||||
|
||||
hashed_password = hash_password(user.password)
|
||||
|
||||
new_user = UserModel(
|
||||
user_name=user.user_name,
|
||||
password=hashed_password,
|
||||
)
|
||||
|
||||
db.add(new_user)
|
||||
db.commit()
|
||||
db.refresh(new_user)
|
||||
|
||||
return new_user
|
||||
Reference in New Issue
Block a user