# endpoints/store_sponsors.py from flask import Blueprint, jsonify from app import get_driver, neo4j_logger import json import os bp = Blueprint('store_sponsors', __name__) CACHE_FILE = 'cache.json' def load_cache(): if os.path.exists(CACHE_FILE): with open(CACHE_FILE, 'r') as f: return json.load(f) return {} def save_cache(cache_data): with open(CACHE_FILE, 'w') as f: json.dump(cache_data, f) @bp.route('/store_sponsors') def store_sponsors(): cache = load_cache() if 'bioguideIds' in cache and len(cache['bioguideIds']) > 0: return jsonify({"message": "bioguideIds already cached"}), 200 driver = get_driver() with driver.session() as session: query = "MATCH (n:Person) RETURN n.bioguideId" neo4j_logger.info(f"Executing query: {query}") # Fetch the records records = session.run(query) bioguideIds = [] for record in records: bioguideId = record['n.bioguideId'] if bioguideId is not None: bioguideIds.append(bioguideId) print(f"Storing bioguideId: {bioguideId}") # Print each bioguideId as it's added else: print("Found a record with None bioguideId") # Log any None values cache['bioguideIds'] = bioguideIds neo4j_logger.info(f"Cached bioguideIds: {len(bioguideIds)}") # Save the updated cache save_cache(cache) return jsonify({"message": "bioguideIds cached successfully", "cached_bioguideIds_count": len(cache['bioguideIds'])}), 200