sales.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. from logging import getLogger
  2. from venv import logger
  3. from fastapi.responses import JSONResponse
  4. from config.messages import ErrorResponse, UserResponse
  5. from services.data_service import DataServiceFactory
  6. from fastapi import APIRouter, Depends
  7. from models.sales import Sale
  8. sale_data_service = DataServiceFactory.get_sales_service()
  9. user_data_service = DataServiceFactory.get_user_service()
  10. logger = getLogger(__name__)
  11. sales_router = APIRouter()
  12. @sales_router.get("/user/{user_id}", response_model=list[Sale])
  13. def get_user_sales(user_id: int):
  14. user = user_data_service.get_by_id(user_id)
  15. if not user:
  16. return JSONResponse(
  17. status_code=404,
  18. content={"message": UserResponse.USER_NOT_FOUND}
  19. )
  20. sales = sale_data_service.get_by_user(user_id)
  21. if not sales:
  22. return JSONResponse(status_code=200, content={
  23. "sales": [],
  24. "message": "No se encontraron ventas para el usuario."
  25. })
  26. logger.info(f"Sales found for user {user_id}: {len(sales)} sales")
  27. return JSONResponse(
  28. status_code=200,
  29. content={"sales": [sale.model_dump() for sale in sales], "message": "Ventas obtenidas correctamente."}
  30. )