import os from modules.logger_tool import initialise_logger logger = initialise_logger(__name__, os.getenv("LOG_LEVEL"), os.getenv("LOG_PATH"), 'default', True) from fastapi import FastAPI # Import all routers here from routers.health import router as health_router from routers.msgraph import router_onenote from routers.dev.tests import timetable_test from routers.admin_routes import router as admin_routes_router from routers.database.init import entity_init, calendar, timetables, curriculum, get_data, schools from routers.database.tools import get_nodes, get_nodes_and_edges, tldraw_filesystem, get_events, calendar_structure_router, default_nodes_router, worker_structure_router from routers.assets import powerpoint, word, pdf from routers.llm.private.ollama import ollama from routers.llm.public.openai import openai from routers.connections.arbor_router import router as arbor_router from routers.langchain.neo4j_graph_qa import router as graph_qa_router from routers.langchain.interactive_langgraph_query import router as interactive_langgraph_query_router from routers.rpi import rpi_whisperlive_client from routers.external import youtube from routers.solid.pod_provisioner import router as solid_pod_router from routers.dev.document_conversion import router as document_conversion_router from routers.dev.test_analysis import router as test_analysis_router def register_routes(app: FastAPI): logger.info("Starting to register routes...") # Health check route app.include_router(health_router, prefix="/health", tags=["Health"]) # Admin Routes app.include_router(admin_routes_router, prefix="/admin", tags=["Admin"]) # Microsoft Graph Routes app.include_router(router_onenote.router, prefix="/msgraph", tags=["Microsoft Graph"]) # Database Routes app.include_router(get_data.router, prefix="/database/upload", tags=["Upload"]) app.include_router(get_events.router, prefix="/calendar", tags=["Calendar"]) app.include_router(get_nodes.router, prefix="/database/tools", tags=["Tools"]) app.include_router(get_nodes_and_edges.router, prefix="/database/tools", tags=["Tools"]) app.include_router(entity_init.router, prefix="/database/entity", tags=["Entity"]) app.include_router(calendar.router, prefix="/database/calendar", tags=["Calendar"]) app.include_router(schools.router, prefix="/database/schools", tags=["Schools"]) app.include_router(timetables.router, prefix="/database/timetables", tags=["Timetables"]) app.include_router(curriculum.router, prefix="/database/curriculum", tags=["Curriculum"]) # Navigation Routes app.include_router(calendar_structure_router.router, prefix="/database/calendar-structure", tags=["Calendar"]) app.include_router(worker_structure_router.router, prefix="/database/worker-structure", tags=["Worker"]) app.include_router(default_nodes_router.router, prefix="/database/tools", tags=["Navigation"]) # Database Filesystem Routes app.include_router(tldraw_filesystem.router, prefix="/database/tldraw_fs", tags=["TLDraw Filesystem"]) # Assets Routes app.include_router(powerpoint.router, prefix="/assets/powerpoint", tags=["PowerPoint"]) app.include_router(word.router, prefix="/assets/word", tags=["Word"]) app.include_router(pdf.router, prefix="/assets/pdf", tags=["PDF"]) # LLM Routes app.include_router(ollama.router, prefix="/llm/private/ollama", tags=["LLM"]) app.include_router(openai.router, prefix="/llm/public/openai", tags=["LLM"]) # Langchain Routes app.include_router(graph_qa_router, prefix="/langchain/graph_qa", tags=["Langchain"]) app.include_router(interactive_langgraph_query_router, prefix="/langchain/interactive_langgraph_query", tags=["Langchain"]) # External Routes app.include_router(youtube.router, prefix="/external", tags=["External"]) # Arbor Data Routes app.include_router(arbor_router, prefix="/arbor", tags=["Arbor Data"]) # RPi Routes app.include_router(rpi_whisperlive_client.router, prefix="/rpi", tags=["RPi"]) # Solid Pod Provisioner Routes app.include_router(solid_pod_router, prefix="/solid", tags=["Solid"]) # Document Conversion Routes app.include_router(document_conversion_router, prefix="/dev/documents", tags=["Document Conversion"]) # Test Analysis Routes app.include_router(test_analysis_router, prefix="/dev/tests", tags=["Test Analysis"]) # Test Routes app.include_router(timetable_test.router, prefix="/tests", tags=["Tests"])