Files
ssii-cai-3/backend/app/routes/users.py
2025-11-10 19:49:26 +01:00

44 lines
1.4 KiB
Python

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