api/run/initialization/infrastructure.py
2025-11-14 14:47:19 +00:00

59 lines
2.0 KiB
Python

"""
Infrastructure initialization module for ClassroomCopilot
Handles Neo4j database, schema, calendar structure, and Supabase storage buckets
"""
import os
from typing import Dict, Any
from modules.logger_tool import initialise_logger
logger = initialise_logger(__name__, os.getenv("LOG_LEVEL"), os.getenv("LOG_PATH"), 'default', True)
def initialize_infrastructure() -> Dict[str, Any]:
"""
Initialize infrastructure: Neo4j database, schema, calendar structure, and Supabase buckets
Returns:
dict: Result status and message
"""
logger.info("Starting infrastructure initialization...")
try:
# 1. Initialize Neo4j database, schema, and calendar structure
logger.info("Step 1: Initializing Neo4j infrastructure...")
from .neo4j import initialize_neo4j
neo4j_result = initialize_neo4j()
if not neo4j_result["success"]:
return {
"success": False,
"message": f"Neo4j infrastructure initialization failed: {neo4j_result['message']}"
}
# 2. Initialize Supabase storage buckets
logger.info("Step 2: Initializing Supabase storage buckets...")
from .buckets import initialize_buckets
buckets_result = initialize_buckets()
if not buckets_result["success"]:
return {
"success": False,
"message": f"Storage buckets initialization failed: {buckets_result['message']}"
}
logger.info("Infrastructure initialization completed successfully!")
return {
"success": True,
"message": "Infrastructure initialization completed successfully",
"neo4j": neo4j_result,
"buckets": buckets_result
}
except Exception as e:
error_msg = f"Failed to initialize infrastructure: {str(e)}"
logger.error(error_msg)
return {
"success": False,
"message": error_msg,
"error": str(e)
}