This is an automated email from the ASF dual-hosted git repository.

shenlin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/rocketmq-eventbridge.git


The following commit(s) were added to refs/heads/main by this push:
     new b506031  add connection check
b506031 is described below

commit b506031bb78c01c23b5607e2b185dfb73c8597d4
Author: zh378814 <[email protected]>
AuthorDate: Mon Apr 10 18:15:59 2023 +0800

    add connection check
---
 .../domain/model/apidestination/ApiDestinationService.java   | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
index 9b87181..94f2931 100644
--- 
a/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
+++ 
b/domain/src/main/java/org/apache/rocketmq/eventbridge/domain/model/apidestination/ApiDestinationService.java
@@ -24,6 +24,7 @@ import 
org.apache.rocketmq.eventbridge.domain.common.EventBridgeConstants;
 import 
org.apache.rocketmq.eventbridge.domain.common.exception.EventBridgeErrorCode;
 import org.apache.rocketmq.eventbridge.domain.model.AbstractResourceService;
 import org.apache.rocketmq.eventbridge.domain.model.PaginationResult;
+import 
org.apache.rocketmq.eventbridge.domain.model.connection.ConnectionService;
 import org.apache.rocketmq.eventbridge.domain.model.quota.QuotaService;
 import 
org.apache.rocketmq.eventbridge.domain.model.apidestination.parameter.HttpApiParameters;
 import 
org.apache.rocketmq.eventbridge.domain.repository.ApiDestinationRepository;
@@ -43,11 +44,14 @@ public class ApiDestinationService extends 
AbstractResourceService {
 
     private final ApiDestinationRepository apiDestinationRepository;
 
+    private final ConnectionService connectionService;
+
     private final QuotaService quotaService;
 
-    public ApiDestinationService(ApiDestinationRepository 
apiDestinationRepository, QuotaService quotaService) {
+    public ApiDestinationService(ApiDestinationRepository 
apiDestinationRepository, QuotaService quotaService, ConnectionService 
connectionService) {
         this.apiDestinationRepository = apiDestinationRepository;
         this.quotaService = quotaService;
+        this.connectionService = connectionService;
     }
 
     @Transactional(rollbackFor = Exception.class, propagation = 
Propagation.REQUIRED)
@@ -58,6 +62,7 @@ public class ApiDestinationService extends 
AbstractResourceService {
         
super.checkQuota(this.getApiDestinationCount(eventApiDestinationDTO.getAccountId()),
 quotaService.getTotalQuota(eventApiDestinationDTO.getAccountId(), 
TotalQuotaEnum.API_DESTINATION_COUNT),
                 ApiDestinationCountExceedLimit);
         checkHttpApiParameters(eventApiDestinationDTO.getApiParams());
+        checkConnection(eventApiDestinationDTO);
         final Boolean apiDestination = 
apiDestinationRepository.createApiDestination(eventApiDestinationDTO);
         if (apiDestination) {
             return eventApiDestinationDTO.getName();
@@ -65,6 +70,10 @@ public class ApiDestinationService extends 
AbstractResourceService {
         return null;
     }
 
+    private void checkConnection(ApiDestinationDTO eventApiDestinationDTO) {
+        connectionService.getConnection(eventApiDestinationDTO.getAccountId(), 
eventApiDestinationDTO.getConnectionName());
+    }
+
     private void checkHttpApiParameters(HttpApiParameters httpApiParameters) {
         if (httpApiParameters == null) {
             throw new 
EventBridgeException(EventBridgeErrorCode.HttpApiParametersIsNull);
@@ -87,6 +96,7 @@ public class ApiDestinationService extends 
AbstractResourceService {
             throw new 
EventBridgeException(EventBridgeErrorCode.ApiDestinationNotExist, 
apiDestinationDTO.getName());
         }
         checkHttpApiParameters(apiDestinationDTO.getApiParams());
+        checkConnection(apiDestinationDTO);
         return 
apiDestinationRepository.updateApiDestination(apiDestinationDTO);
     }
 

Reply via email to