data_service.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import json
  2. import os
  3. from typing import List, Dict
  4. from venv import logger
  5. from config.settings import BG_DATA_PATH, PRODUCTS_PATH, EXCLUDED_BEER_IDS
  6. from logging import getLogger
  7. logger = getLogger(__name__)
  8. def load_bg_data() -> List[Dict[str, str]]:
  9. """Load background data for AI assistant"""
  10. try:
  11. with open(BG_DATA_PATH, 'r', encoding='utf-8') as f:
  12. return json.load(f)
  13. except FileNotFoundError:
  14. logger.error(f"Data file not found at {BG_DATA_PATH}. Serving with empty data.")
  15. return []
  16. except json.JSONDecodeError:
  17. logger.error(f"Could not decode JSON from {BG_DATA_PATH}. Serving with empty data.")
  18. return []
  19. def load_products() -> List[Dict[str, str]]:
  20. """Load products data excluding beer IDs"""
  21. try:
  22. with open(PRODUCTS_PATH, 'r', encoding='utf-8') as f:
  23. products = json.load(f)
  24. return list(filter(lambda product: product['id'] not in EXCLUDED_BEER_IDS, products))
  25. except FileNotFoundError:
  26. logger.error(f"Data file not found at {PRODUCTS_PATH}. Serving with empty data.")
  27. return []
  28. except json.JSONDecodeError:
  29. logger.error(f"Could not decode JSON from {PRODUCTS_PATH}. Serving with empty data.")
  30. return []
  31. def load_users() -> List[Dict[str, str]]:
  32. """Load users data"""
  33. try:
  34. with open('users.json', 'r') as f:
  35. return json.load(f)
  36. except FileNotFoundError:
  37. logger.error("ERROR: users.json file not found.")
  38. return []
  39. except json.JSONDecodeError:
  40. logger.error("ERROR: Could not decode JSON from users.json.")
  41. return []
  42. # Load data at module level
  43. bg_data_loaded = load_bg_data()
  44. all_products = load_products()