mirror of
https://github.com/langgenius/dify.git
synced 2026-11-13 06:41:07 +08:00
37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
"""Compose Account consumer operations using existing App and Connection owners."""
|
|
|
|
from sqlalchemy.orm import Session, sessionmaker
|
|
|
|
from clients.plugin.auth import PluginCredentialAuthClient
|
|
from repositories.app.console_repository import ConsoleAppRepository
|
|
from repositories.end_user_connection_repository import EndUserConnectionRepository
|
|
from services.consumer_adapters import PluginConsumerConnectionProviders, SharedConsumerAppDiscovery
|
|
from services.consumer_service import ConsumerAppAccess, ConsumerService
|
|
from services.end_user_connection_adapters import PluginApiKeyCredentialGateway
|
|
from services.end_user_connections.management import ConnectionService
|
|
from services.web_identity_service import WebIdentityService
|
|
from services.web_passport_service import WebPassportTokenGateway
|
|
|
|
|
|
def build_consumer_service(
|
|
*,
|
|
database_client: sessionmaker[Session],
|
|
access: ConsumerAppAccess,
|
|
shared_apps_enabled: bool,
|
|
management: ConnectionService,
|
|
identities: WebIdentityService,
|
|
tokens: WebPassportTokenGateway,
|
|
) -> ConsumerService:
|
|
return ConsumerService(
|
|
apps=ConsoleAppRepository(session_factory=database_client),
|
|
connections=EndUserConnectionRepository(session_factory=database_client),
|
|
providers=PluginConsumerConnectionProviders(
|
|
providers=PluginApiKeyCredentialGateway(auth=PluginCredentialAuthClient())
|
|
),
|
|
access=access,
|
|
shared_apps=SharedConsumerAppDiscovery(enabled=shared_apps_enabled),
|
|
management=management,
|
|
identities=identities,
|
|
tokens=tokens,
|
|
)
|