Skip to content
Snippets Groups Projects
app.py 1.55 KiB
Newer Older
from flask import Flask, jsonify, request
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
Noah Jefferson Baumann's avatar
Noah Jefferson Baumann committed
from backend.models import Node, Edge
from dotenv import load_dotenv
import os
from flask_cors import CORS

# Load environment variables from .env file
load_dotenv()
Noah Jefferson Baumann's avatar
Noah Jefferson Baumann committed

app = Flask(__name__)

# Enable CORS for all routes and origins
CORS(app)

# Get the database URL from the environment
Noah Jefferson Baumann's avatar
Noah Jefferson Baumann committed
DATABASE_URL = "os.getenv('DATABASE_URL')"
if not DATABASE_URL:
    raise ValueError("DATABASE_URL is not set in the environment variables")
engine = create_engine(DATABASE_URL)
Session = sessionmaker(bind=engine)
@app.route('/nodes', methods=['GET'])
def get_nodes():
    try:
        year = request.args.get('year')
        with Session() as session:
            query = session.query(Node)
            if year:
                query = query.filter(Node.year == year)
            nodes = query.all()
            node_list = [node.to_dict() for node in nodes]
    except Exception as e:
        return jsonify({'error': str(e)}), 500
@app.route('/edges', methods=['GET'])
def get_edges():
    try:
        year = request.args.get('year')
        with Session() as session:
            query = session.query(Edge)
            if year:
                query = query.filter(Edge.year == year)
            edges = query.all()
            edge_list = [edge.to_dict() for edge in edges]
            return jsonify(edge_list)
    except Exception as e:
        return jsonify({'error': str(e)}), 500
Noah Jefferson Baumann's avatar
Noah Jefferson Baumann committed
if __name__ == '__main__':
    app.run(debug=True)