mirror of https://github.com/langgenius/dify.git
feat(trigger): add subscription parameter to trigger invocation methods
- Enhanced `PluginTriggerManager`, `PluginTriggerProviderController`, and `TriggerManager` to accept a `subscription` parameter in their trigger invocation methods. - Updated `TriggerService` to pass the subscription entity when invoking trigger events, improving the handling of subscription-related data during trigger execution.
This commit is contained in:
parent
d19ce15f3d
commit
46e7e99c5a
|
|
@ -89,6 +89,7 @@ class PluginTriggerManager(BasePluginClient):
|
|||
credential_type: CredentialType,
|
||||
request: Request,
|
||||
parameters: Mapping[str, Any],
|
||||
subscription: Subscription,
|
||||
) -> TriggerInvokeEventResponse:
|
||||
"""
|
||||
Invoke a trigger with the given parameters.
|
||||
|
|
@ -105,6 +106,7 @@ class PluginTriggerManager(BasePluginClient):
|
|||
"event": event_name,
|
||||
"credentials": credentials,
|
||||
"credential_type": credential_type,
|
||||
"subscription": subscription,
|
||||
"raw_http_request": binascii.hexlify(serialize_request(request)).decode(),
|
||||
"parameters": parameters,
|
||||
},
|
||||
|
|
|
|||
|
|
@ -289,6 +289,7 @@ class PluginTriggerProviderController:
|
|||
parameters: Mapping[str, Any],
|
||||
credentials: Mapping[str, str],
|
||||
credential_type: CredentialType,
|
||||
subscription: Subscription,
|
||||
request: Request,
|
||||
) -> TriggerInvokeEventResponse:
|
||||
"""
|
||||
|
|
@ -315,6 +316,7 @@ class PluginTriggerProviderController:
|
|||
credential_type=credential_type,
|
||||
request=request,
|
||||
parameters=parameters,
|
||||
subscription=subscription,
|
||||
)
|
||||
|
||||
def subscribe_trigger(
|
||||
|
|
|
|||
|
|
@ -159,6 +159,7 @@ class TriggerManager:
|
|||
parameters: Mapping[str, Any],
|
||||
credentials: Mapping[str, str],
|
||||
credential_type: CredentialType,
|
||||
subscription: Subscription,
|
||||
request: Request,
|
||||
) -> TriggerInvokeEventResponse:
|
||||
"""
|
||||
|
|
@ -171,6 +172,7 @@ class TriggerManager:
|
|||
:param parameters: Trigger parameters
|
||||
:param credentials: Provider credentials
|
||||
:param credential_type: Credential type
|
||||
:param subscription: Subscription
|
||||
:param request: Request
|
||||
:return: Trigger execution result
|
||||
"""
|
||||
|
|
@ -184,6 +186,7 @@ class TriggerManager:
|
|||
parameters=parameters,
|
||||
credentials=credentials,
|
||||
credential_type=credential_type,
|
||||
subscription=subscription,
|
||||
request=request,
|
||||
)
|
||||
except PluginInvokeError as e:
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from sqlalchemy import and_, func, select
|
|||
from sqlalchemy.orm import Session
|
||||
|
||||
from core.plugin.entities.plugin_daemon import CredentialType
|
||||
from core.plugin.entities.request import TriggerDispatchResponse
|
||||
from core.plugin.entities.request import TriggerDispatchResponse, TriggerInvokeEventResponse
|
||||
from core.plugin.utils.http_parser import deserialize_request, serialize_request
|
||||
from core.trigger.entities.entities import EventEntity
|
||||
from core.trigger.provider import PluginTriggerProviderController
|
||||
|
|
@ -124,7 +124,7 @@ class TriggerService:
|
|||
continue
|
||||
|
||||
# invoke triger
|
||||
invoke_response = TriggerManager.invoke_trigger_event(
|
||||
invoke_response: TriggerInvokeEventResponse = TriggerManager.invoke_trigger_event(
|
||||
tenant_id=subscription.tenant_id,
|
||||
user_id=subscription.user_id,
|
||||
provider_id=TriggerProviderID(subscription.provider_id),
|
||||
|
|
@ -132,6 +132,7 @@ class TriggerService:
|
|||
parameters=event_node.get("config", {}),
|
||||
credentials=subscription.credentials,
|
||||
credential_type=CredentialType.of(subscription.credential_type),
|
||||
subscription=subscription.to_entity(),
|
||||
request=request,
|
||||
)
|
||||
if invoke_response.cancelled:
|
||||
|
|
|
|||
Loading…
Reference in New Issue