from math import prod from fastapi.responses import JSONResponse from auth.security import get_current_user from services.data_service import ProductDataService from logging import getLogger from fastapi import APIRouter, Depends from config.messages import SuccessResponse logger = getLogger(__name__) product_data_service = ProductDataService() product_router = APIRouter() @product_router.get("/") async def get_products(current_user = Depends(get_current_user)): """Get products""" logger.debug(f"Current user: {current_user.email if current_user else 'Anonymous'}") logger.info("Fetching all products") all_products = list(map(lambda p: p.model_dump(), product_data_service.get_all())) return JSONResponse({"products": all_products, "message": SuccessResponse.PRODUCTS_FETCH_SUCCESS})