barbershop / cruds /UsuarioCrud.py
winderoman's picture
Add application file
35c6a2c
raw
history blame contribute delete
No virus
3.07 kB
import sys # Mandar mensajes de error al log
from models.UsuarioM import User
from fastapi import HTTPException
from schemas.UsuarioSh import UserCreate,UserRead, UserUpdate, UserUpdateStatus
from sqlalchemy.orm import Session
from core.seguridad import get_hashed_password,verify_password
from core.utils import generate_user_id
def create_new_user(user:UserCreate,db:Session):
db_user = User(
id_usuario = generate_user_id(),
correo = user.correo,
contrasenia = get_hashed_password(user.contrasenia),
rol = "BARBERO"
)
try:
db.add(db_user)
db.commit()
db.refresh(db_user)
db.close()
return db_user
except Exception as e :
db.rollback()
# Imprimir el error en la consola
print(f"Error al crear un usuario: {str(e)}",file=sys.stderr)
raise HTTPException(status_code=500,detail=f"Error al crear usuario: {str(e)} ")
def get_user_by_email(email:str,db:Session):
user = db.query(User).filter(User.correo == email).first()
return user
# def get_user_by_email_verify(user_id : str,email:str,db:Session):
# user_db = db.query(User).filter(User.user_id == user_id).first()
# if user_db.mail != email:
# validation = get_user_by_email(email,db)
# if validation is None:
# return True
# else:
# return False
# return True
def get_user_by_id(id:str,db:Session):
user = db.query(User).filter(User.id_usuario == id).first()
return user
def get_all_users_bd(db:Session):
users = db.query(User).filter(User.rol == "BARBERO").all()
return users
def authenticate_user(username:str,password:str,db:Session):
user = get_user_by_email(username,db)
if not user:
return False
if not verify_password(password,user.contrasenia):
return False
return user
def update_user_crud(user:UserUpdate,db:Session):
user_db = get_user_by_id(user.id_usuario,db)
if user_db:
try:
if user.contrasenia:
user_db.contrasenia = get_hashed_password(user.contrasenia)
user_db.correo = user.correo
db.add(user_db)
db.commit()
db.refresh(user_db)
return user_db
except Exception as e :
db.rollback()
print(f"Error al crear un usuario: {str(e)}",file=sys.stderr)
raise HTTPException(status_code=500,detail=f"Error al crear usuario: {str(e)} ")
return None
def update_user_status_crud(user:UserUpdateStatus, db:Session):
user_db = get_user_by_id(user.user_id, db)
if user_db:
try:
user_db.estado_usuario = user.estado_usuario
db.add(user_db)
db.commit()
return True
except Exception as e :
db.rollback()
print(f"Error al crear un usuario: {str(e)}",file=sys.stderr)
raise HTTPException(status_code=500,detail=f"Error al crear usuario: {str(e)} ")
return False