policymap/api/endpoints/store_sponsors.py

54 lines
1.5 KiB
Python
Raw Permalink Normal View History

2025-03-06 20:00:45 -08:00
# 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()
2025-03-08 13:22:48 -08:00
if 'bioguideIds' in cache and len(cache['bioguideIds']) > 0:
return jsonify({"message": "bioguideIds already cached"}), 200
2025-03-06 20:00:45 -08:00
driver = get_driver()
with driver.session() as session:
2025-03-08 13:22:48 -08:00
query = "MATCH (n:Person) RETURN n.bioguideId"
2025-03-06 20:00:45 -08:00
neo4j_logger.info(f"Executing query: {query}")
# Fetch the records
records = session.run(query)
2025-03-08 13:22:48 -08:00
bioguideIds = []
for record in records:
2025-03-08 13:22:48 -08:00
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:
2025-03-08 13:22:48 -08:00
print("Found a record with None bioguideId") # Log any None values
2025-03-08 13:22:48 -08:00
cache['bioguideIds'] = bioguideIds
2025-03-06 20:00:45 -08:00
2025-03-08 13:22:48 -08:00
neo4j_logger.info(f"Cached bioguideIds: {len(bioguideIds)}")
2025-03-06 20:00:45 -08:00
# Save the updated cache
2025-03-06 20:00:45 -08:00
save_cache(cache)
2025-03-08 13:22:48 -08:00
return jsonify({"message": "bioguideIds cached successfully", "cached_bioguideIds_count": len(cache['bioguideIds'])}), 200