|
@@ -1,23 +1,32 @@
|
|
|
from logging import getLogger
|
|
from logging import getLogger
|
|
|
from venv import logger
|
|
from venv import logger
|
|
|
from fastapi.responses import JSONResponse
|
|
from fastapi.responses import JSONResponse
|
|
|
-from config.messages import ErrorResponse
|
|
|
|
|
-from services.data_service import SalesDataService
|
|
|
|
|
|
|
+from config.messages import ErrorResponse, UserResponse
|
|
|
|
|
+from services.data_service import DataServiceFactory
|
|
|
from fastapi import APIRouter, Depends
|
|
from fastapi import APIRouter, Depends
|
|
|
from models.sales import Sale
|
|
from models.sales import Sale
|
|
|
-sale_data_service = SalesDataService()
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+sale_data_service = DataServiceFactory.get_sales_service()
|
|
|
|
|
+user_data_service = DataServiceFactory.get_user_service()
|
|
|
|
|
|
|
|
logger = getLogger(__name__)
|
|
logger = getLogger(__name__)
|
|
|
sales_router = APIRouter()
|
|
sales_router = APIRouter()
|
|
|
|
|
|
|
|
@sales_router.get("/user/{user_id}", response_model=list[Sale])
|
|
@sales_router.get("/user/{user_id}", response_model=list[Sale])
|
|
|
def get_user_sales(user_id: int):
|
|
def get_user_sales(user_id: int):
|
|
|
- sales = sale_data_service.get_by_user(user_id)
|
|
|
|
|
- if not sales:
|
|
|
|
|
|
|
+ user = user_data_service.get_by_id(user_id)
|
|
|
|
|
+ if not user:
|
|
|
return JSONResponse(
|
|
return JSONResponse(
|
|
|
status_code=404,
|
|
status_code=404,
|
|
|
- content={"message": ErrorResponse.SALE_NOT_FOUND}
|
|
|
|
|
|
|
+ content={"message": UserResponse.USER_NOT_FOUND}
|
|
|
)
|
|
)
|
|
|
|
|
+ sales = sale_data_service.get_by_user(user_id)
|
|
|
|
|
+ if not sales:
|
|
|
|
|
+ return JSONResponse(status_code=200, content={
|
|
|
|
|
+ "sales": [],
|
|
|
|
|
+ "message": "No se encontraron ventas para el usuario."
|
|
|
|
|
+ })
|
|
|
logger.info(f"Sales found for user {user_id}: {len(sales)} sales")
|
|
logger.info(f"Sales found for user {user_id}: {len(sales)} sales")
|
|
|
return JSONResponse(
|
|
return JSONResponse(
|
|
|
status_code=200,
|
|
status_code=200,
|