mirror of https://github.com/langgenius/dify.git
58 lines
2.2 KiB
Python
58 lines
2.2 KiB
Python
from typing import Union
|
|
|
|
from core.helper.provider_cache import TriggerProviderCredentialsCache, TriggerProviderOAuthClientParamsCache
|
|
from core.helper.provider_encryption import ProviderConfigCache, ProviderConfigEncrypter, create_provider_encrypter
|
|
from core.plugin.entities.plugin_daemon import CredentialType
|
|
from core.trigger.entities.api_entities import TriggerProviderSubscriptionApiEntity
|
|
from core.trigger.provider import PluginTriggerProviderController
|
|
from models.trigger import TriggerSubscription
|
|
|
|
|
|
def create_trigger_provider_encrypter_for_subscription(
|
|
tenant_id: str,
|
|
controller: PluginTriggerProviderController,
|
|
subscription: Union[TriggerSubscription, TriggerProviderSubscriptionApiEntity],
|
|
) -> tuple[ProviderConfigEncrypter, ProviderConfigCache]:
|
|
cache = TriggerProviderCredentialsCache(
|
|
tenant_id=tenant_id,
|
|
provider_id=str(controller.get_provider_id()),
|
|
credential_id=subscription.id,
|
|
)
|
|
encrypter, _ = create_provider_encrypter(
|
|
tenant_id=tenant_id,
|
|
config=controller.get_credential_schema_config(subscription.credential_type),
|
|
cache=cache,
|
|
)
|
|
return encrypter, cache
|
|
|
|
|
|
def create_trigger_provider_encrypter(
|
|
tenant_id: str, controller: PluginTriggerProviderController, credential_id: str, credential_type: CredentialType
|
|
) -> tuple[ProviderConfigEncrypter, ProviderConfigCache]:
|
|
cache = TriggerProviderCredentialsCache(
|
|
tenant_id=tenant_id,
|
|
provider_id=str(controller.get_provider_id()),
|
|
credential_id=credential_id,
|
|
)
|
|
encrypter, _ = create_provider_encrypter(
|
|
tenant_id=tenant_id,
|
|
config=controller.get_credential_schema_config(credential_type),
|
|
cache=cache,
|
|
)
|
|
return encrypter, cache
|
|
|
|
|
|
def create_trigger_provider_oauth_encrypter(
|
|
tenant_id: str, controller: PluginTriggerProviderController
|
|
) -> tuple[ProviderConfigEncrypter, ProviderConfigCache]:
|
|
cache = TriggerProviderOAuthClientParamsCache(
|
|
tenant_id=tenant_id,
|
|
provider_id=str(controller.get_provider_id()),
|
|
)
|
|
encrypter, _ = create_provider_encrypter(
|
|
tenant_id=tenant_id,
|
|
config=[x.to_basic_provider_config() for x in controller.get_oauth_client_schema()],
|
|
cache=cache,
|
|
)
|
|
return encrypter, cache
|