products.py 813 B

123456789101112131415161718192021
  1. from math import prod
  2. from fastapi.responses import JSONResponse
  3. from auth.security import get_current_user
  4. from services.data_service import ProductDataService
  5. from logging import getLogger
  6. from fastapi import APIRouter, Depends
  7. from config.messages import SuccessResponse
  8. logger = getLogger(__name__)
  9. product_data_service = ProductDataService()
  10. product_router = APIRouter()
  11. @product_router.get("/")
  12. async def get_products(current_user = Depends(get_current_user)):
  13. """Get products"""
  14. logger.debug(f"Current user: {current_user.email if current_user else 'Anonymous'}")
  15. logger.info("Fetching all products")
  16. all_products = list(map(lambda p: p.model_dump(), product_data_service.get_all()))
  17. return JSONResponse({"products": all_products, "message": SuccessResponse.PRODUCTS_FETCH_SUCCESS})