Some updates for backend thingies

This commit is contained in:
2026-03-20 15:59:07 -06:00
parent 84e9d3001a
commit 76156955b9
16 changed files with 1027 additions and 100 deletions

View File

@@ -8,12 +8,12 @@ from infrastructure.adapters.persistence.user_repository_sql import UserReposito
router = APIRouter()
user_repo = UserRepositorySQL()
@router.post("/", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
@router.post("/", status_code=status.HTTP_202_ACCEPTED)
async def create_user(user_data: UserCreateRequest):
"""Crea un nuevo usuario"""
"""Crea un nuevo usuario - envía a cola de procesamiento"""
try:
create_use_case = CreateUser(user_repo)
user = create_use_case.execute(
result = create_use_case.execute(
nombre=user_data.nombre,
apellido=user_data.apellido,
email=user_data.email,
@@ -21,7 +21,14 @@ async def create_user(user_data: UserCreateRequest):
url_foto_perfil=user_data.url_foto_perfil,
biografia=user_data.biografia
)
return user
if result["status"] == "error":
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
detail=result["message"]
)
return result
except HTTPException:
raise
except Exception as e:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
@@ -58,32 +65,32 @@ async def list_users():
list_use_case = ListAllUsers(user_repo)
return list_use_case.execute()
@router.put("/{user_id}", response_model=UserResponse)
@router.put("/{user_id}", status_code=status.HTTP_202_ACCEPTED)
async def update_user(user_id: int, user_data: UserUpdateRequest):
"""Actualiza un usuario"""
"""Actualiza un usuario - envía a cola de procesamiento"""
update_use_case = UpdateUser(user_repo)
user = update_use_case.execute(
result = update_use_case.execute(
user_id=user_id,
nombre=user_data.nombre,
apellido=user_data.apellido,
url_foto_perfil=user_data.url_foto_perfil,
biografia=user_data.biografia
)
if not user:
if result["status"] == "error":
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail=f"Usuario con ID {user_id} no encontrado"
status_code=status.HTTP_400_BAD_REQUEST,
detail=result["message"]
)
return user
return result
@router.delete("/{user_id}", status_code=status.HTTP_204_NO_CONTENT)
@router.delete("/{user_id}", status_code=status.HTTP_202_ACCEPTED)
async def delete_user(user_id: int):
"""Elimina un usuario"""
"""Elimina un usuario - envía a cola de procesamiento"""
delete_use_case = DeleteUser(user_repo)
success = delete_use_case.execute(user_id)
if not success:
result = delete_use_case.execute(user_id)
if result["status"] == "error":
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail=f"Usuario con ID {user_id} no encontrado"
status_code=status.HTTP_400_BAD_REQUEST,
detail=result["message"]
)
return None
return result