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:
Harry 2025-10-13 17:47:29 +08:00
parent d19ce15f3d
commit 46e7e99c5a
4 changed files with 10 additions and 2 deletions

View File

@ -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,
},

View File

@ -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(

View File

@ -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:

View File

@ -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: