From dfc5e3609d20c21091984dcf556911df46bb036c Mon Sep 17 00:00:00 2001 From: Harry Date: Wed, 29 Oct 2025 14:22:56 +0800 Subject: [PATCH] refactor(trigger): streamline OAuth client existence check Replaced the method for checking the existence of a system OAuth client with a new dedicated method `is_oauth_system_client_exists` in the TriggerProviderService. This improves code clarity and encapsulates the logic for verifying the presence of a system-level OAuth client. Updated the TriggerOAuthClientManageApi to utilize the new method for better readability. --- .../console/workspace/trigger_providers.py | 8 +++----- .../trigger/trigger_provider_service.py | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/api/controllers/console/workspace/trigger_providers.py b/api/controllers/console/workspace/trigger_providers.py index 631b82979b..3f398fbbc3 100644 --- a/api/controllers/console/workspace/trigger_providers.py +++ b/api/controllers/console/workspace/trigger_providers.py @@ -469,9 +469,7 @@ class TriggerOAuthClientManageApi(Resource): tenant_id=user.current_tenant_id, provider_id=provider_id, ) - - # Check if there's a system OAuth client - system_client = TriggerProviderService.get_oauth_client( + system_client_exists = TriggerProviderService.is_oauth_system_client_exists( tenant_id=user.current_tenant_id, provider_id=provider_id, ) @@ -479,8 +477,8 @@ class TriggerOAuthClientManageApi(Resource): redirect_uri = f"{dify_config.CONSOLE_API_URL}/console/api/oauth/plugin/{provider}/trigger/callback" return jsonable_encoder( { - "configured": bool(custom_params or system_client), - "system_configured": bool(system_client), + "configured": bool(custom_params or system_client_exists), + "system_configured": system_client_exists, "custom_configured": bool(custom_params), "oauth_client_schema": provider_controller.get_oauth_client_schema(), "custom_enabled": is_custom_enabled, diff --git a/api/services/trigger/trigger_provider_service.py b/api/services/trigger/trigger_provider_service.py index 0e543bb039..f701f44eab 100644 --- a/api/services/trigger/trigger_provider_service.py +++ b/api/services/trigger/trigger_provider_service.py @@ -471,7 +471,7 @@ class TriggerProviderService: is_verified = PluginService.is_plugin_verified(tenant_id, provider_id.plugin_id) if not is_verified: - return oauth_params + return None # Check for system-level OAuth client system_client: TriggerOAuthSystemClient | None = ( @@ -488,6 +488,22 @@ class TriggerProviderService: return oauth_params + @classmethod + def is_oauth_system_client_exists(cls, tenant_id: str, provider_id: TriggerProviderID) -> bool: + """ + Check if system OAuth client exists for a trigger provider. + """ + is_verified = PluginService.is_plugin_verified(tenant_id, provider_id.plugin_id) + if not is_verified: + return False + with Session(db.engine, expire_on_commit=False) as session: + system_client: TriggerOAuthSystemClient | None = ( + session.query(TriggerOAuthSystemClient) + .filter_by(plugin_id=provider_id.plugin_id, provider=provider_id.provider_name) + .first() + ) + return system_client is not None + @classmethod def save_custom_oauth_client_params( cls,