36 lines
1.5 KiB
Python
36 lines
1.5 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from sqlalchemy.orm import Session
|
|
from src.Usuario.usuario_mmr import UsuarioRepo, Usuario, UsuarioModel
|
|
from backend.db.conexion import get_conexion
|
|
|
|
router = APIRouter()
|
|
|
|
@router.post("/usuarios/", response_model=dict)
|
|
def crear_usuario(nombre: str, email: str, db: Session = Depends(get_conexion)):
|
|
repo = UsuarioRepo(db)
|
|
usuario = Usuario(id=None, nombre=nombre, email=email)
|
|
usuario_id = repo.add(usuario)
|
|
return {"id": usuario_id}
|
|
|
|
@router.get("/usuarios/{usuario_id}", response_model=dict)
|
|
def obtener_usuario(usuario_id: int, db: Session = Depends(get_conexion)):
|
|
repo = UsuarioRepo(db)
|
|
usuario = repo.get_by_id(usuario_id)
|
|
if not usuario:
|
|
raise HTTPException(status_code=404, detail="Usuario no encontrado")
|
|
return {"id": usuario.id, "nombre": usuario.nombre, "email": usuario.email, "activo": usuario.activo}
|
|
|
|
@router.get("/usuarios/", response_model=list)
|
|
def listar_usuarios(db: Session = Depends(get_conexion)):
|
|
repo = UsuarioRepo(db)
|
|
usuarios = repo.get_all()
|
|
return [{"id": u.id, "nombre": u.nombre, "email": u.email, "activo": u.activo} for u in usuarios]
|
|
|
|
@router.delete("/usuarios/{usuario_id}", response_model=dict)
|
|
def eliminar_usuario(usuario_id: int, db: Session = Depends(get_conexion)):
|
|
repo = UsuarioRepo(db)
|
|
exito = repo.delete_by_id(usuario_id)
|
|
if not exito:
|
|
raise HTTPException(status_code=404, detail="Usuario no encontrado")
|
|
return {"ok": True}
|