# 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}") nodes = session.run(query) # Convert the nodes to a list of bioguideids bioguideids = [record['n.bioguideid'] for record in nodes] cache['bioguideids'] = bioguideids neo4j_logger.info(f"Cached bioguideids: {len(bioguideids)}") save_cache(cache) return jsonify({"message": "Bioguideids cached successfully", "cached_bioguideids_count": len(cache['bioguideids'])}), 200