suna/backend/triggers/support/factory.py

36 lines
1.5 KiB
Python

from typing import Tuple
from services.supabase import DBConnection
from .dependency_injection import TriggerContainer, get_trigger_container
from ..services.trigger_service import TriggerService
from ..services.execution_service import TriggerExecutionService
from ..services.provider_service import ProviderService
class TriggerModuleFactory:
@staticmethod
async def create_trigger_module(db_connection: DBConnection) -> Tuple[TriggerService, TriggerExecutionService, ProviderService]:
container = get_trigger_container(db_connection)
provider_service = container.get_provider_service()
await provider_service.initialize()
trigger_service = container.get_trigger_service()
execution_service = container.get_execution_service()
return trigger_service, execution_service, provider_service
@staticmethod
def get_trigger_service(db_connection: DBConnection) -> TriggerService:
container = get_trigger_container(db_connection)
return container.get_trigger_service()
@staticmethod
def get_execution_service(db_connection: DBConnection) -> TriggerExecutionService:
container = get_trigger_container(db_connection)
return container.get_execution_service()
@staticmethod
def get_provider_service(db_connection: DBConnection) -> ProviderService:
container = get_trigger_container(db_connection)
return container.get_provider_service()