diff --git a/api/controllers/console/workspace/trigger_providers.py b/api/controllers/console/workspace/trigger_providers.py index 95828bc32b..3e6654cfc1 100644 --- a/api/controllers/console/workspace/trigger_providers.py +++ b/api/controllers/console/workspace/trigger_providers.py @@ -37,6 +37,20 @@ class TriggerProviderListApi(Resource): return jsonable_encoder(TriggerProviderService.list_trigger_providers(user.current_tenant_id)) +class TriggerProviderInfoApi(Resource): + @setup_required + @login_required + @account_initialization_required + def get(self, provider): + """Get info for a trigger provider""" + user = current_user + assert isinstance(user, Account) + assert user.current_tenant_id is not None + return jsonable_encoder( + TriggerProviderService.get_trigger_provider(user.current_tenant_id, TriggerProviderID(provider)) + ) + + class TriggerSubscriptionListApi(Resource): @setup_required @login_required @@ -533,6 +547,7 @@ class TriggerOAuthClientManageApi(Resource): # Trigger Subscription api.add_resource(TriggerProviderListApi, "/workspaces/current/triggers") +api.add_resource(TriggerProviderInfoApi, "/workspaces/current/trigger-provider//info") api.add_resource(TriggerSubscriptionListApi, "/workspaces/current/trigger-provider//subscriptions/list") api.add_resource( TriggerSubscriptionDeleteApi, diff --git a/api/services/trigger/trigger_provider_service.py b/api/services/trigger/trigger_provider_service.py index 92733b1274..4a24db0db7 100644 --- a/api/services/trigger/trigger_provider_service.py +++ b/api/services/trigger/trigger_provider_service.py @@ -43,6 +43,11 @@ class TriggerProviderService: ########################## __MAX_TRIGGER_PROVIDER_COUNT__ = 10 + @classmethod + def get_trigger_provider(cls, tenant_id: str, provider: TriggerProviderID) -> TriggerProviderApiEntity: + """Get info for a trigger provider""" + return TriggerManager.get_trigger_provider(tenant_id, provider).to_api_entity() + @classmethod def list_trigger_providers(cls, tenant_id: str) -> list[TriggerProviderApiEntity]: """List all trigger providers for the current tenant""" @@ -94,7 +99,7 @@ class TriggerProviderService: return subscriptions @classmethod - def add_trigger_provider( + def add_trigger_subscription( cls, tenant_id: str, user_id: str, diff --git a/api/services/trigger/trigger_subscription_builder_service.py b/api/services/trigger/trigger_subscription_builder_service.py index ccde48a71d..2717fa14cc 100644 --- a/api/services/trigger/trigger_subscription_builder_service.py +++ b/api/services/trigger/trigger_subscription_builder_service.py @@ -93,7 +93,7 @@ class TriggerSubscriptionBuilderService: credential_type = CredentialType.of(subscription_builder.credential_type or CredentialType.UNAUTHORIZED.value) if credential_type == CredentialType.UNAUTHORIZED: # manually create - TriggerProviderService.add_trigger_provider( + TriggerProviderService.add_trigger_subscription( subscription_id=subscription_builder.id, tenant_id=tenant_id, user_id=user_id, @@ -118,7 +118,7 @@ class TriggerSubscriptionBuilderService: credentials=subscription_builder.credentials, ) - TriggerProviderService.add_trigger_provider( + TriggerProviderService.add_trigger_subscription( subscription_id=subscription_builder.id, tenant_id=tenant_id, user_id=user_id,