Spaces:
Running
Running
Commit
·
acbe5b8
1
Parent(s):
103bb6b
added API for barcode fetch
Browse files- logger_manager.py +0 -6
- routers/product.py +18 -0
logger_manager.py
CHANGED
|
@@ -24,21 +24,15 @@ logger.addHandler(console_handler)
|
|
| 24 |
|
| 25 |
def log_debug(message: str):
|
| 26 |
logger.debug(message)
|
| 27 |
-
log_info(f"Debug: {message}")
|
| 28 |
-
log_error(f"Debug: {message}")
|
| 29 |
|
| 30 |
def log_info(message: str):
|
| 31 |
logger.info(message)
|
| 32 |
|
| 33 |
def log_warning(message: str):
|
| 34 |
logger.warning(message)
|
| 35 |
-
log_info(f"Warning: {message}")
|
| 36 |
-
log_error(f"Warning: {message}")
|
| 37 |
|
| 38 |
def log_error(message: str):
|
| 39 |
logger.error(message)
|
| 40 |
|
| 41 |
def log_critical(message: str):
|
| 42 |
logger.critical(message)
|
| 43 |
-
log_info(f"Critical: {message}")
|
| 44 |
-
log_error(f"Critical: {message}")
|
|
|
|
| 24 |
|
| 25 |
def log_debug(message: str):
|
| 26 |
logger.debug(message)
|
|
|
|
|
|
|
| 27 |
|
| 28 |
def log_info(message: str):
|
| 29 |
logger.info(message)
|
| 30 |
|
| 31 |
def log_warning(message: str):
|
| 32 |
logger.warning(message)
|
|
|
|
|
|
|
| 33 |
|
| 34 |
def log_error(message: str):
|
| 35 |
logger.error(message)
|
| 36 |
|
| 37 |
def log_critical(message: str):
|
| 38 |
logger.critical(message)
|
|
|
|
|
|
routers/product.py
CHANGED
|
@@ -17,6 +17,7 @@ from dotenv import load_dotenv
|
|
| 17 |
import requests
|
| 18 |
import json
|
| 19 |
from services.ingredients import IngredientService
|
|
|
|
| 20 |
|
| 21 |
load_dotenv()
|
| 22 |
|
|
@@ -174,3 +175,20 @@ async def create_product(
|
|
| 174 |
return JSONResponse({"error": e.detail}, status_code=e.status_code)
|
| 175 |
except Exception as e:
|
| 176 |
return JSONResponse({"error": str(e)}, status_code=500)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
import requests
|
| 18 |
import json
|
| 19 |
from services.ingredients import IngredientService
|
| 20 |
+
from utils.fetch_data import fetch_product_data_from_api
|
| 21 |
|
| 22 |
load_dotenv()
|
| 23 |
|
|
|
|
| 175 |
return JSONResponse({"error": e.detail}, status_code=e.status_code)
|
| 176 |
except Exception as e:
|
| 177 |
return JSONResponse({"error": str(e)}, status_code=500)
|
| 178 |
+
|
| 179 |
+
|
| 180 |
+
@router.get("/find_barcode/{barcode_number}")
|
| 181 |
+
async def find_product_by_barcode(barcode_number: str):
|
| 182 |
+
"""Endpoint to find product data using a barcode number."""
|
| 183 |
+
log_info(f"Find product by barcode endpoint called for barcode: {barcode_number}")
|
| 184 |
+
try:
|
| 185 |
+
product_data = await fetch_product_data_from_api(barcode_number)
|
| 186 |
+
if product_data:
|
| 187 |
+
# dump to log file
|
| 188 |
+
log_debug(string(product_data))
|
| 189 |
+
return JSONResponse(product_data)
|
| 190 |
+
else:
|
| 191 |
+
raise HTTPException(status_code=404, detail=f"Product not found for barcode: {barcode_number}")
|
| 192 |
+
except Exception as e:
|
| 193 |
+
log_error(f"Error fetching product data for barcode {barcode_number}: {e}")
|
| 194 |
+
raise HTTPException(status_code=500, detail=f"Error fetching product data: {e}")
|