mirror of
https://github.com/langgenius/dify.git
synced 2026-05-04 01:18:05 +08:00
fix(trigger): enhance subscription retrieval error handling in TriggerService
- Added exception handling for `get_subscription_by_endpoint` to return a 404 response when the plugin is not found and a 500 response for other errors. - Improved overall robustness of the subscription retrieval process.
This commit is contained in:
@ -11,6 +11,7 @@ from sqlalchemy.orm import Session
|
|||||||
|
|
||||||
from core.plugin.entities.plugin_daemon import CredentialType
|
from core.plugin.entities.plugin_daemon import CredentialType
|
||||||
from core.plugin.entities.request import TriggerDispatchResponse, TriggerInvokeEventResponse
|
from core.plugin.entities.request import TriggerDispatchResponse, TriggerInvokeEventResponse
|
||||||
|
from core.plugin.impl.exc import PluginNotFoundError
|
||||||
from core.plugin.utils.http_parser import deserialize_request, serialize_request
|
from core.plugin.utils.http_parser import deserialize_request, serialize_request
|
||||||
from core.trigger.debug.events import PluginTriggerDebugEvent
|
from core.trigger.debug.events import PluginTriggerDebugEvent
|
||||||
from core.trigger.entities.entities import EventEntity
|
from core.trigger.entities.entities import EventEntity
|
||||||
@ -227,7 +228,14 @@ class TriggerService:
|
|||||||
request: Request
|
request: Request
|
||||||
"""
|
"""
|
||||||
timestamp = int(time.time())
|
timestamp = int(time.time())
|
||||||
subscription: TriggerSubscription | None = TriggerProviderService.get_subscription_by_endpoint(endpoint_id)
|
subscription: TriggerSubscription | None = None
|
||||||
|
try:
|
||||||
|
subscription = TriggerProviderService.get_subscription_by_endpoint(endpoint_id)
|
||||||
|
except PluginNotFoundError:
|
||||||
|
return Response(status=404, response="Trigger provider not found")
|
||||||
|
except Exception:
|
||||||
|
return Response(status=500, response="Failed to get subscription by endpoint")
|
||||||
|
|
||||||
if not subscription:
|
if not subscription:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
@ -235,9 +243,6 @@ class TriggerService:
|
|||||||
controller: PluginTriggerProviderController = TriggerManager.get_trigger_provider(
|
controller: PluginTriggerProviderController = TriggerManager.get_trigger_provider(
|
||||||
tenant_id=subscription.tenant_id, provider_id=provider_id
|
tenant_id=subscription.tenant_id, provider_id=provider_id
|
||||||
)
|
)
|
||||||
if not controller:
|
|
||||||
return None
|
|
||||||
|
|
||||||
encrypter, _ = create_trigger_provider_encrypter_for_subscription(
|
encrypter, _ = create_trigger_provider_encrypter_for_subscription(
|
||||||
tenant_id=subscription.tenant_id,
|
tenant_id=subscription.tenant_id,
|
||||||
controller=controller,
|
controller=controller,
|
||||||
|
|||||||
Reference in New Issue
Block a user