59 lines
2.0 KiB
Python
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)
|
|
}
|