Initial Python rewrite
This commit is contained in:
99
src/capa_de_integracion/dependencies.py
Normal file
99
src/capa_de_integracion/dependencies.py
Normal file
@@ -0,0 +1,99 @@
|
||||
from functools import lru_cache
|
||||
|
||||
from .config import settings
|
||||
from .services import (
|
||||
ConversationManagerService,
|
||||
DLPService,
|
||||
NotificationManagerService,
|
||||
QuickReplyContentService,
|
||||
)
|
||||
from .services.firestore_service import FirestoreService
|
||||
from .services.rag_service import RAGService
|
||||
from .services.redis_service import RedisService
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_redis_service() -> RedisService:
|
||||
"""Get Redis service instance."""
|
||||
return RedisService(settings)
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_firestore_service() -> FirestoreService:
|
||||
"""Get Firestore service instance."""
|
||||
return FirestoreService(settings)
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_dlp_service() -> DLPService:
|
||||
"""Get DLP service instance."""
|
||||
return DLPService(settings)
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_quick_reply_content_service() -> QuickReplyContentService:
|
||||
"""Get quick reply content service instance."""
|
||||
return QuickReplyContentService(settings)
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_notification_manager() -> NotificationManagerService:
|
||||
"""Get notification manager instance."""
|
||||
return NotificationManagerService(
|
||||
settings,
|
||||
redis_service=get_redis_service(),
|
||||
firestore_service=get_firestore_service(),
|
||||
dlp_service=get_dlp_service(),
|
||||
)
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_rag_service() -> RAGService:
|
||||
"""Get RAG service instance."""
|
||||
return RAGService(settings)
|
||||
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_conversation_manager() -> ConversationManagerService:
|
||||
"""Get conversation manager instance."""
|
||||
return ConversationManagerService(
|
||||
settings,
|
||||
redis_service=get_redis_service(),
|
||||
firestore_service=get_firestore_service(),
|
||||
dlp_service=get_dlp_service(),
|
||||
rag_service=get_rag_service(),
|
||||
)
|
||||
|
||||
|
||||
# Lifecycle management functions
|
||||
|
||||
|
||||
def init_services(settings) -> None:
|
||||
"""Initialize services (placeholder for compatibility)."""
|
||||
# Services are lazy-loaded via lru_cache, no explicit init needed
|
||||
|
||||
|
||||
async def startup_services() -> None:
|
||||
"""Connect to external services on startup."""
|
||||
# Connect to Redis
|
||||
redis = get_redis_service()
|
||||
await redis.connect()
|
||||
|
||||
|
||||
async def shutdown_services() -> None:
|
||||
"""Close all service connections on shutdown."""
|
||||
# Close Redis
|
||||
redis = get_redis_service()
|
||||
await redis.close()
|
||||
|
||||
# Close Firestore
|
||||
firestore = get_firestore_service()
|
||||
await firestore.close()
|
||||
|
||||
# Close DLP
|
||||
dlp = get_dlp_service()
|
||||
await dlp.close()
|
||||
|
||||
# Close RAG
|
||||
rag = get_rag_service()
|
||||
await rag.close()
|
||||
Reference in New Issue
Block a user